From b406b4b121eeb2e732d04c31d071ed53d0a8103a Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 8 Jun 2022 16:57:42 -0400 Subject: [PATCH 01/13] buildNet bug --- scratch.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scratch.js b/scratch.js index d479c0929..b7226e2aa 100644 --- a/scratch.js +++ b/scratch.js @@ -14,11 +14,16 @@ nlp.plugin(plg) // console.log(b) +let matches = [ + { match: '(he|she|they|#Noun) (has|have) (a|an)' } +] +let net = nlp.buildNet(matches) -let doc = nlp(`let's not`) +let doc = nlp(`you have a appointment`) // doc.debug() // doc.verbs().toFutureTense() -doc.debug() +doc.match(net).debug() +// doc.debug() // console.log(doc.has('re-purpose')) // let txt = `follow-up` From 3fc6d9ee60f8a2e3f4432c5c6afde597fc464fc3 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 10 Jun 2022 16:49:05 -0400 Subject: [PATCH 02/13] tagging bugs from today --- scratch.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/scratch.js b/scratch.js index b7226e2aa..98580f47b 100644 --- a/scratch.js +++ b/scratch.js @@ -13,6 +13,38 @@ nlp.plugin(plg) // // b.debug() // console.log(b) +// 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" + +// Let’s get you into wardrobe for a fitting. + +// "My pants don't even fit right", +// "In a baseball hat fit for a queen" +// "Srinath will be fit in three weeks" +// "does the different part fit together" + +// License fee for beach vendors hiked +// "TTC to hike fares by 10 cents in March" + +// "He deserted from the Dragoons at", +// "Offices; banks wear deserted look" + +// "CBI catches DD acting director taking bribe" +// "How do I keep kissing you and catch my breath?" + +// "who were always throwing stones at me." +// "People in glass houses should not throw stones, Dick, said Jaqueline." +// +// "Why did the mechanic sleep under the car?" + +// Loblaws reducing food prices at Toronto stores +// "Stock prices closed higher in Stockholm + +// Upload documents required to verify your eligibility let matches = [ { match: '(he|she|they|#Noun) (has|have) (a|an)' } From cc55e3e9504b4374f97e5b6514a2375998fc1403 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 13 Jun 2022 10:30:07 -0400 Subject: [PATCH 03/13] test for single-noun cache --- scratch.js | 8 ++++---- src/1-one/sweep/methods/buildNet/index.js | 4 ++-- tests/one/match/sweep.test.js | 2 ++ tests/three/sweep-tag.test.js | 13 +++++++++++++ 4 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 tests/three/sweep-tag.test.js diff --git a/scratch.js b/scratch.js index 98580f47b..46b6c0bdf 100644 --- a/scratch.js +++ b/scratch.js @@ -1,7 +1,7 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/one.js' -import plg from './plugins/dates/src/plugin.js' -nlp.plugin(plg) +import nlp from './src/two.js' +// import plg from './plugins/dates/src/plugin.js' +// nlp.plugin(plg) // nlp.verbose('tagger') @@ -50,11 +50,11 @@ let matches = [ { match: '(he|she|they|#Noun) (has|have) (a|an)' } ] let net = nlp.buildNet(matches) - let doc = nlp(`you have a appointment`) // doc.debug() // doc.verbs().toFutureTense() doc.match(net).debug() +console.log(doc.has(net)) // doc.debug() // console.log(doc.has('re-purpose')) diff --git a/src/1-one/sweep/methods/buildNet/index.js b/src/1-one/sweep/methods/buildNet/index.js index c4b4a39f0..df4c406e7 100644 --- a/src/1-one/sweep/methods/buildNet/index.js +++ b/src/1-one/sweep/methods/buildNet/index.js @@ -23,8 +23,8 @@ const compile = function (matches, world) { // 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'] + // delete byGroup['#Noun'] + // delete byGroup['#Verb'] // console.log(matches.filter(o => o.needs.length === 1)) //check! return { diff --git a/tests/one/match/sweep.test.js b/tests/one/match/sweep.test.js index 5752ae31c..dca251694 100644 --- a/tests/one/match/sweep.test.js +++ b/tests/one/match/sweep.test.js @@ -89,9 +89,11 @@ test('cache-checks:', function (t) { m = nlp('will Smith').sweep(net).view t.equal(m.has('#Celebrity'), false, here + 'and true-negative') + t.end() }) + test('multi-fast-OR:', function (t) { let net = nlp.buildNet([ { match: '(one|two|three) (a|b|c)', tag: 'Found' } diff --git a/tests/three/sweep-tag.test.js b/tests/three/sweep-tag.test.js new file mode 100644 index 000000000..8001ca3ce --- /dev/null +++ b/tests/three/sweep-tag.test.js @@ -0,0 +1,13 @@ +import test from 'tape' +import nlp from './_lib.js' +const here = '[three/sweep-tag] ' + +test('cache-one:', function (t) { + let matches = [ + { match: '(he|she|they|#Noun) (has|have) (a|an)' } + ] + let net = nlp.buildNet(matches) + let doc = nlp(`you have a appointment`) + t.equal(doc.has(net), true, here + 'Noun cache') + t.end() +}) \ No newline at end of file From 02ee1b04997c6617530bf47613ed124e9d3c804d Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 13 Jun 2022 10:42:20 -0400 Subject: [PATCH 04/13] support root in sweep cache --- 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 | 4 ++-- scratch.js | 13 +++++++++---- src/1-one/cache/methods/cacheDoc.js | 3 +++ src/1-one/sweep/methods/sweep/02-trim-down.js | 1 - tests/three/sweep-tag.test.js | 11 +++++++++++ 11 files changed, 31 insertions(+), 13 deletions(-) diff --git a/builds/compromise.js b/builds/compromise.js index e347d073e..9b62e9e76 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.0";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.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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}},In=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};function Gn(e,t,n){return e.splice(t,1,...n),e}const Tn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Cn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Dn=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=>Cn(e.regs[n],t)),a.regs=Gn(a.regs,n,r),t.push(a)})}t.push(e)}),t};const On=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Bn=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=On(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=On(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Vn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t},zn=function(e,t){return e.map(e=>{let n=[];return e.forEach(e=>{t.hasOwnProperty(e)&&(n=n.concat(t[e]))}),new Set(n)})},$n=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},Fn=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},Sn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=In(e,t),e=Dn(e);let n=(e=Bn(e)).filter(e=>0===e.needs.length),r=Vn(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=zn(a,t.index);return o=$n(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),Fn(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&&Sn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(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 Jn=/ /,Ln=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Wn=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],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(/^#/,""),Wn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nqn(e,t,n,r))};var Kn=qn,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: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=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},tr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return _n(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=_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},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=>{_n(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 _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 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=_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 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},pr={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 mr=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||""),mr(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 mr(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)}},fr=function(e){Object.assign(e.prototype,gr)},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 vr=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(vr.has(e)||!t.hasOwnProperty(n))return 1;if(vr.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:fr,lib:br};const wr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,kr=/((?:\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.0";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.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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}},In=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};function Gn(e,t,n){return e.splice(t,1,...n),e}const Tn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Cn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Dn=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=>Cn(e.regs[n],t)),a.regs=Gn(a.regs,n,r),t.push(a)})}t.push(e)}),t};const On=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Bn=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=On(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=On(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Vn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t},zn=function(e,t){return e.map(e=>{let n=[];return e.forEach(e=>{t.hasOwnProperty(e)&&(n=n.concat(t[e]))}),new Set(n)})},$n=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},Fn=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},Sn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=In(e,t),e=Dn(e);let n=(e=Bn(e)).filter(e=>0===e.needs.length);return{index:Vn(e),always:n}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=zn(a,t.index);return o=$n(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),Fn(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&&Sn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(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 Jn=/ /,Ln=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Wn=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],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(/^#/,""),Wn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nqn(e,t,n,r))};var Kn=qn,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: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=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},tr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return _n(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=_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},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=>{_n(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 _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 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=_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 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},pr={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 mr=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||""),mr(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 mr(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)}},fr=function(e){Object.assign(e.prototype,gr)},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 vr=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(vr.has(e)||!t.hasOwnProperty(n))return 1;if(vr.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:fr,lib:br};const wr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,kr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var Pr=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 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]+$/,Jr=/['’]/,Lr=/^[a-z]\.([a-z]\.)+/i,Wr=/^[-+.][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||!Wr.test(e)?"'"===n&&qr.test(e)?(n="",t):"":(n="",t)))).replace(Mr,a=>(r=a,Jr.test(a)&&/[sn]['’]$/.test(t)&&!1===Jr.test(n)?(r=r.replace(Jr,""),"'"):!0===Lr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},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]\.,?$/,Zr=/[A-Z]{2,}('s|,)?$/,_r=/([a-z]\.)+[a-z]\.?$/;var Yr=function(e){return function(e){return!0===Rr.test(e)||!0===_r.test(e)||!0===Qr.test(e)||!0===Zr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},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},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:Tr,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||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Xr(e,t)}),n})}}}},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","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=>{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;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)},pa=function(e){let t=0,n=0,r=e.document;for(let e=0;ema(e,ca),machine:e=>ma(e,da),normal:e=>ma(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 va={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({},va,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ba(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(fn),m.extend(St),m.extend(Nn),m.extend(yr),m.plugin(be),m.extend(ga),m.plugin(f),m.extend(Ge),m.extend(ya),m.extend(Pe),m.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"},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",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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 Pa=36,Aa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ja=Aa.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ea=function(e){if(void 0!==ja[e])return ja[e];let t=0,n=1,r=Pa,a=1;for(;n=0;n--,a*=Pa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},xa=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=Ia(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ga(ka[e]);Oa.test(e)?Object.keys(t).forEach(t=>{if(Va[t]=e,"Noun|Verb"===e){let e=Da(t,za);Va[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 $a="Adjective";var Fa={beforeTags:{Determiner:$a,Possessive:$a},afterTags:{Adjective:$a},beforeWords:{seem:$a,seemed:$a,seems:$a,feel:$a,feels:$a,felt:$a,appear:$a,appears:$a,appeared:$a,also:$a,over:$a,under:$a,too:$a,it:$a,but:$a,still:$a,really:$a,quite:$a,well:$a,very:$a,deeply:$a,profoundly:$a,extremely:$a,so:$a,badly:$a,mostly:$a,totally:$a,awfully:$a,rather:$a,nothing:$a,something:$a,anything:$a},afterWords:{too:$a,also:$a,or:$a}};const Sa="Gerund";var Ha={beforeTags:{Adverb:Sa,Preposition:Sa,Conjunction:Sa},afterTags:{Adverb:Sa,Possessive:Sa,Person:Sa,Pronoun:Sa,Determiner:Sa,Copula:Sa,Preposition:Sa,Conjunction:Sa,Comparative:Sa},beforeWords:{been:Sa,keep:Sa,continue:Sa,stop:Sa,am:Sa,be:Sa,me:Sa,began:Sa,start:Sa,starts:Sa,started:Sa,stops:Sa,stopped:Sa,help:Sa,helps:Sa,avoid:Sa,avoids:Sa,love:Sa,loves:Sa,loved:Sa,hate:Sa,hates:Sa,hated:Sa},afterWords:{you:Sa,me:Sa,her:Sa,him:Sa,them:Sa,their:Sa,it:Sa,this:Sa,there:Sa,on:Sa,about:Sa,for:Sa}},Ma={beforeTags:Object.assign({},Fa.beforeTags,Ha.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Fa.afterTags,Ha.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Fa.beforeWords,Ha.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Fa.afterWords,Ha.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ja="Singular";var La={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 Wa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var qa={beforeTags:Object.assign({},Fa.beforeTags,La.beforeTags,Wa.beforeTags),afterTags:Object.assign({},Fa.afterTags,La.afterTags),beforeWords:Object.assign({},Fa.beforeWords,La.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fa.afterWords,La.afterWords)};const Ka={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ua={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ra={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 Za={beforeTags:Object.assign({},Fa.beforeTags,Ka),afterTags:Object.assign({},Fa.afterTags,Ua),beforeWords:Object.assign({},Fa.beforeWords,Ra),afterWords:Object.assign({},Fa.afterWords,Qa)};const _a="Infinitive";var Ya={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,when:_a,all:_a,to:_a,because:_a,although:_a,before:_a,how:_a,otherwise:_a,though:_a,yet:_a}};const Xa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var eo={beforeTags:Object.assign({},Fa.beforeTags,Ya.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Fa.afterTags,Ya.afterTags,Xa.afterTags),beforeWords:Object.assign({},Fa.beforeWords,Ya.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fa.afterWords,Ya.afterWords,{to:void 0})};const to={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},no={},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"},ao={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oo={beforeTags:Object.assign({},Ha.beforeTags,La.beforeTags,to),afterTags:Object.assign({},Ha.afterTags,La.afterTags,no),beforeWords:Object.assign({},Ha.beforeWords,La.beforeWords,ro),afterWords:Object.assign({},Ha.afterWords,La.afterWords,ao)},io={beforeTags:Object.assign({},Ya.beforeTags,La.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ya.afterTags,La.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ya.beforeWords,La.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ya.afterWords,La.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const so="Person";var lo={beforeTags:{Honorific:so,Person:so,Preposition:so},afterTags:{Person:so,ProperNoun:so,Verb:so},ownTags:{ProperNoun:so},beforeWords:{hi:so,hey:so,yo:so,dear:so,hello:so},afterWords:{said:so,says:so,told:so,tells:so,feels:so,felt:so,seems:so,thinks:so,thought:so,spends:so,spendt:so,plays:so,played:so,sing:so,sang:so,learn:so,learned:so,wants:so,wanted:so}};const uo="Month",co={beforeTags:{Date:uo,Value:uo},afterTags:{Date:uo,Value:uo},beforeWords:{by:uo,in:uo,on:uo,during:uo,after:uo,before:uo,between:uo,until:uo,til:uo,sometime:uo,of:uo,this:uo,next:uo,last:uo,previous:uo,following:uo},afterWords:{sometime:uo,in:uo,of:uo,until:uo,the:uo}};var ho={beforeTags:Object.assign({},lo.beforeTags,co.beforeTags),afterTags:Object.assign({},lo.afterTags,co.afterTags),beforeWords:Object.assign({},lo.beforeWords,co.beforeWords),afterWords:Object.assign({},lo.afterWords,co.afterWords)};const po={Place:"Place"},mo={Place:"Place",Abbreviation:"Place"},go={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},bo={"Adj|Gerund":Ma,"Adj|Noun":qa,"Adj|Past":Za,"Adj|Present":eo,"Noun|Verb":io,"Noun|Gerund":oo,"Person|Noun":{beforeTags:Object.assign({},La.beforeTags,lo.beforeTags),afterTags:Object.assign({},La.afterTags,lo.afterTags),beforeWords:Object.assign({},La.beforeWords,lo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},La.afterWords,lo.afterWords)},"Person|Date":ho,"Person|Verb":{beforeTags:Object.assign({},lo.beforeTags,Ya.beforeTags),afterTags:Object.assign({},lo.afterTags,Ya.afterTags),beforeWords:Object.assign({},lo.beforeWords,Ya.beforeWords),afterWords:Object.assign({},lo.afterWords,Ya.afterWords)},"Person|Place":{beforeTags:Object.assign({},po,lo.beforeTags),afterTags:Object.assign({},mo,lo.afterTags),beforeWords:Object.assign({},go,lo.beforeWords),afterWords:Object.assign({},fo,lo.afterWords)}},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",jo="PastTense",Eo="Adverb",xo="Plural",No="Actor",Io="Verb",Go="Noun",To="LastName",Co="Modal",Do="Participle";var Oo=[null,null,{ea:Ao,ia:Go,ic:wo,ly:Eo,"'n":Io,"'t":Io},{oed:jo,ued:jo,xed:jo," so":Eo,"'ll":Co,"'re":"Copula",azy:wo,eer:Go,end:Io,ped:jo,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:jo,ken:Do,ven:Do,ten:Do,ect:ko,ict:ko,ign:ko,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:To,cede:ko,chuk:To,czyk:To,ects:Po,ends:Io,enko:To,ette:Ao,wner:Ao,fies:Po,fore:Eo,gate:ko,gone:wo,ices:xo,ints:xo,ruct:ko,ines:xo,ions:xo,less:wo,llen:wo,made:wo,nsen:To,oses:Po,ould:Co,some:wo,sson:To,tion:Ao,tage:Go,ique:Ao,tive:wo,tors:Go,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:ko,ract:ko,duce:ko,pose:ko,eive:ko,lyze:ko,lyse:ko,iant:wo,nary:wo},{elist:Ao,holic:Ao,phite:Ao,tized:jo,urned:jo,eased:jo,ances:xo,bound:wo,ettes:xo,fully:Eo,ishes:Po,ities:xo,marek:To,nssen:To,ology:Go,osome:Ao,tment:Ao,ports:xo,rough:wo,tches:Po,tieth:"Ordinal",tures:xo,wards:Eo,where:Eo,archy:Go,pathy:Go,opoly:Go,embly:Go,phate:Go,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:To,parent:Ao,cedent:Ao,ionary:Ao,cklist:Ao,keeper:No,logist:No,teenth:"Value"},{opoulos:To,borough:"Place",sdottir:To}];const Bo="Adjective",Vo="Noun",zo="Verb";var $o=[null,null,{},{neo:Vo,bio:Vo,"de-":zo,"re-":zo,"un-":zo},{anti:Vo,auto:Vo,faux:Bo,hexa:Vo,kilo:Vo,mono:Vo,nano:Vo,octa:Vo,poly:Vo,semi:Bo,tele:Vo,"pro-":Bo,"mis-":zo,"dis-":zo,"pre-":Bo},{anglo:Vo,centi:Vo,ethno:Vo,ferro:Vo,grand:Vo,hepta:Vo,hydro:Vo,intro:Vo,macro:Vo,micro:Vo,milli:Vo,nitro:Vo,penta:Vo,quasi:Bo,radio:Vo,tetra:Vo,"omni-":Bo,"post-":Bo},{pseudo:Bo,"extra-":Bo,"hyper-":Bo,"inter-":Bo,"intra-":Bo,"deca-":Bo},{electro:Vo}];const Fo="Adjective",So="Infinitive",Ho="PresentTense",Mo="Singular",Jo="PastTense",Lo="Adverb",Wo="Expression",qo="Actor",Ko="Verb",Uo="Noun",Ro="LastName";var Qo={a:[[/.[aeiou]na$/,Uo,"tuna"],[/.[oau][wvl]ska$/,Ro],[/.[^aeiou]ica$/,Mo,"harmonica"],[/^([hyj]a+)+$/,Wo,"haha"]],c:[[/.[^aeiou]ic$/,Fo]],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$/,Mo,"steward"],[/[aeiou][^aeiou]id$/,Fo,""],[/.[vrl]id$/,Fo,"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$/,So,"antagonize"],[/.[^aeiou]ise$/,So,"antagonise"],[/.[aeiou]te$/,So,"bite"],[/.[^aeiou][ai]ble$/,Fo,"fixable"],[/.[^aeiou]eable$/,Fo,"maleable"],[/.[ts]ive$/,Fo,"festive"],[/[a-z]-like$/,Fo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Fo,"cornish"],[/.v[iy]ch$/,Ro,"..ovich"],[/^ug?h+$/,Wo,"ughh"],[/^uh[ -]?oh$/,Wo,"uhoh"],[/[a-z]-ish$/,Fo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ro,"polish-male"]],k:[[/^(k){2}$/,Wo,"kkkk"]],l:[[/.[gl]ial$/,Fo,"familial"],[/.[^aeiou]ful$/,Fo,"fitful"],[/.[nrtumcd]al$/,Fo,"natal"],[/.[^aeiou][ei]al$/,Fo,"familial"]],m:[[/.[^aeiou]ium$/,Mo,"magnesium"],[/[^aeiou]ism$/,Mo,"schism"],[/^[hu]m+$/,Wo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Fo,"republican"],[/[^aeiou]ician$/,qo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Wo,"noooo"],[/^(yo)+$/,Wo,"yoo"],[/^wo{2,}[pt]?$/,Wo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mo],[/[^i]fer$/,So],[/.[^aeiou][ao]pher$/,qo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Fo],[/[aeiou].*ist$/,Fo],[/^[a-z]et$/,Ko]],s:[[/.[^aeiou]ises$/,Ho],[/.[rln]ates$/,Ho],[/.[^z]ens$/,Ko],[/.[lstrn]us$/,Mo],[/.[aeiou]sks$/,Ho],[/.[aeiou]kes$/,Ho],[/[aeiou][^aeiou]is$/,Mo],[/[a-z]'s$/,Uo],[/^yes+$/,Wo]],v:[[/.[^aeiou][ai][kln]ov$/,Ro]],y:[[/.[cts]hy$/,Fo],[/.[st]ty$/,Fo],[/.[tnl]ary$/,Fo],[/.[oe]ry$/,Mo],[/[rdntkbhs]ly$/,Lo],[/.(gg|bb|zz)ly$/,Fo],[/...lly$/,Lo],[/.[gk]y$/,Fo],[/[bszmp]{2}y$/,Fo],[/.[ai]my$/,Fo],[/[ea]{2}zy$/,Fo],[/.[^aeiou]ity$/,Mo]]};const Zo="Verb",_o="Noun";var Yo={leftTags:[["Adjective",_o],["Possessive",_o],["Determiner",_o],["Adverb",Zo],["Pronoun",Zo],["Value",_o],["Ordinal",_o],["Modal",Zo],["Superlative",_o],["Demonym",_o],["Honorific","Person"]],leftWords:[["i",Zo],["first",_o],["it",Zo],["there",Zo],["not",Zo],["because",_o],["if",_o],["but",_o],["who",Zo],["this",_o],["his",_o],["when",_o],["you",Zo],["very","Adjective"],["old",_o],["never",Zo],["before",_o],["a","Singular"],["the",_o],["been",Zo]],rightTags:[["Copula",_o],["PastTense",_o],["Conjunction",_o],["Modal",_o]],rightWords:[["there",Zo],["me",Zo],["man","Adjective"],["only",Zo],["him",Zo],["it",Zo],["were",_o],["took",_o],["himself",Zo],["went",_o],["who",_o],["jr","Person"]]},Xo={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"},ei={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"},ti={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"},ni={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"},ri={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 oi=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},si=/^([0-9]+)/,li=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(si);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(si,"")]}(n[0],n[1])})};var ui=function(e={}){return(e=Object.assign({},e)).rules=li(e.rules),e.rules=ii(e.rules),e.rev&&(e.rev=li(e.rev),e.rev=ii(e.rev)),e.exceptions=li(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ci=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 hi=ui({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"}),di=ui(ni),pi=ui(ei),mi=ui(ti),gi=ci(hi),fi=ci(di),bi=ci(pi),vi=ci(mi),yi=ui(Xo),wi=ui(ri);var ki={fromPast:hi,fromPresent:di,fromGerund:pi,fromParticiple:mi,toPast:gi,toPresent:fi,toGerund:bi,toParticiple:vi,toComparative:yi,toSuperlative:wi,fromComparative:ci(yi),fromSuperlative:ci(wi)},Pi=["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),{}),Ai=[[/([^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,""]],ji=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(Ei[t].forEach(n=>e[n]=t),e),{});var xi=Ei,Ni=function(e){let t=e.substring(e.length-3);if(!0===xi.hasOwnProperty(t))return xi[t];let n=e.substring(e.length-2);return!0===xi.hasOwnProperty(n)?xi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ii={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Gi=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=Ni(e)),Ii.hasOwnProperty(e))c=Ii[e];else if("Participle"===n)c=oi(l,i);else if("PastTense"===n)c=oi(l,r);else if("PresentTense"===n)c=oi(l,a);else{if("Gerund"!==n)return e;c=oi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ti=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:oi(i,n),PresentTense:oi(i,r),Gerund:oi(i,a),FutureTense:"will "+e},u=oi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Ci=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 Di="ically",Oi=new Set(["analyt"+Di,"chem"+Di,"class"+Di,"clin"+Di,"crit"+Di,"ecolog"+Di,"electr"+Di,"empir"+Di,"frant"+Di,"grammat"+Di,"ident"+Di,"ideolog"+Di,"log"+Di,"mag"+Di,"mathemat"+Di,"mechan"+Di,"med"+Di,"method"+Di,"method"+Di,"mus"+Di,"phys"+Di,"phys"+Di,"polit"+Di,"pract"+Di,"rad"+Di,"satir"+Di,"statist"+Di,"techn"+Di,"technolog"+Di,"theoret"+Di,"typ"+Di,"vert"+Di,"whims"+Di]),Bi=[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"}],Vi=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"]),zi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var $i=function(e){return e.endsWith("ly")?Oi.has(e)?e.replace(/ically/,"ical"):Vi.has(e)?null:zi.hasOwnProperty(e)?zi[e]:Ci(e,Bi)||e:null};const Fi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Si={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Hi=function(e){if(Si.hasOwnProperty(e))return Si[e];let t=Ci(e,Fi);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"}],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"},Li=new Set(["terrible","annoying"]),Wi=function(e,t){const n=t.two.models.toSuperlative;return oi(e,n)},qi=function(e,t){const n=t.two.models.toComparative;return oi(e,n)};var Ki={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"]}},Ui={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===Ki.hasOwnProperty(i)&&Ki[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:ji,verbToInfinitive:Gi,getTense:Ni,verbConjugate:Ti,adjToSuperlative:Wi,adjToComparative:qi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return oi(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return oi(e,n)},advToAdjective:$i,adjToAdverb:Hi,adjToNoun:function(e){if(Ji.hasOwnProperty(e))return Ji[e];if(Li.has(e))return null;let t=Ci(e,Mi);return t||e+"ness"}}}},Ri=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 Zi=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 _i={two:{models:ki}};const Yi={"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"},Xi=function(e,t){const n={model:t,methods:Ui};let{lex:r,_multi:a}=Ui.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},es=function(e,t,n){let r=Ti(e,_i);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ts=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Yi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||es(a,r,!1),"Adj|Present"===o&&(es(a,r,!0),function(e,t,n){let r=Wi(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=Gi(a,_i,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Gi(a,_i,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Xi(n,t)};let ns={one:{_multiCache:{},lexicon:Ba},two:{irregularPlurals:wa,models:ki,suffixPatterns:Oo,prefixPatterns:$o,endsWith:Qo,neighbours:Yo,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:Pi}};ns=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=Xi(e.one.lexicon,e)).one.lexicon,e),e=ts(e.two.switches,e),e=Zi(e),e=Ri(e)}(ns);var rs=ns;const as=/^(under|over|mis|re|un|dis|semi)-?/;var os=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])}},is=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 ss={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ls=new Set(["formulas","koalas","israelis","menus"]),us=["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 cs=function(e){if(!e||e.length<=3)return!1;if(ls.has(e))return!0;let t=e[e.length-1];return ss.hasOwnProperty(t)?ss[t].find(t=>e.endsWith(t)):"s"===t&&!us.find(t=>e.endsWith(t))};const hs=["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))||(cs(e.normal)?is(e,"Plural","3-plural-guess"):is(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ni(e.normal);t&&is(e,t,"3-verb-tense-guess")}}(r)};const ps=/^\p{Lu}[\p{Ll}'’]/u,ms=/[0-9]/,gs=["Date","Month","WeekDay","Unit"],fs=/^[IVXLCDM]{2,}$/,bs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,vs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ys=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===ps.test(o)&&!1===ms.test(o)?gs.find(e=>r.tags.has(e))?null:(ds(e,t,n),r.tags.has("Noun")||r.tags.clear(),is(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&fs.test(o)&&bs.test(o)&&!vs[r.normal]?(is(r,"RomanNumeral","2-xvii"),!0):null};const ws=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 ks=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ws(r.normal,n.two.suffixPatterns);if(null!==e)return is(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ws(r.implicit,n.two.suffixPatterns),null!==e))return is(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Ps=/['‘’‛‵′`´]/,As=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 is(r,e,"2-prefix"),r.confidence=.5,!0}return null};const xs=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"]),Ns=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!xs.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Is=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Gs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Ts=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(Ns(a)||Ns(o))return is(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Is(a)||Is(o))return is(n,"Year","2-tagYear-close");if(Gs(e[t-2])||Gs(e[t+2]))return is(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 is(n,"Year","2-tagYear-noun")}}}return null};const Cs=/^[A-Z]('s|,)?$/,Ds=/^[A-Z-]+$/,Os=/([A-Z]\.)+[A-Z]?,?$/,Bs=/[A-Z]{2,}('s|,)?$/,Vs=/([a-z]\.)+[a-z]\.?$/,zs={I:!0,A:!0};var $s=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===Ds.test(n)||n.length>5||zs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Os.test(n)&&!0!==Vs.test(n)&&!0!==Cs.test(n)&&!0!==Bs.test(n))}(r,n)?(r.tags.clear(),is(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!zs.hasOwnProperty(r.text)&&Cs.test(r.text)?(r.tags.clear(),is(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(is(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ds.test(r.text)&&r.text.length<=6?(is(r,"Acronym","3-titlecase-acronym"),!0):null};const Fs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ss=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Hs=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||Fs(e[t-1],a),l=l||Fs(e[t+1],o),l=l||Ss(e[t-1],r),l=l||Ss(e[t+1],i),l)return is(s,l,"3-[neighbour]"),ds(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 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]&&Ms(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ms(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ls=function(e,t,n){0===e[t].tags.size&&(is(e[t],"Noun","3-[fallback]"),ds(e,t,n),e[t].confidence=.1)};const Ws=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,qs=(e,t,n)=>0!==t||e[1]?null:n;var Ks={"Adj|Gerund":(e,t)=>Ws(e,t),"Adj|Noun":(e,t)=>Ws(e,t),"Adj|Past":(e,t)=>Ws(e,t),"Adj|Present":(e,t)=>Ws(e,t),"Noun|Gerund":(e,t)=>Ws(e,t),"Noun|Verb":(e,t)=>Ws(e,t)||qs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ws(e,t)||qs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ws(e,t),"Person|Verb":(e,t)=>0!==t&&Ws(e,t)};const Us="undefined"!=typeof process&&process.env?process.env:self.env||{},Rs=/^(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&&Us.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Zs=(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&&Us.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},_s={tagSwitch:os,checkSuffix:ks,checkRegex:js,checkCase:ys,checkPrefix:Es,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")&&(is(o,"Verb","3-[prefix]"),is(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(is(o,"Adjective","3-[prefix]"),is(o,"Prefix","3-[prefix]")))},checkYear:Ts},Ys={checkAcronym:$s,neighbours:Hs,orgWords:Js,nounFallback:Ls,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(Rs.test(l)&&!o[l]&&(l=l.replace(Rs,"")),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||Zs(e[t-1],n.beforeTags,a),o=o||Zs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ks[o]&&(u=Ks[o](e,t)||u),u?(Us.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):Us.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Xs=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)},nl={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 rl={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 ml=/'/;var gl=function(e,t){let n=e[t].normal.split(ml)[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 fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[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"]},vl=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 yl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},wl={in:!0,by:!0,for:!0};var kl=(e,t)=>{let n=e[t];if(yl.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===wl[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 Pl=/'/,Al=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)},jl={d:(e,t)=>bl(e,t),t:(e,t)=>vl(e,t),s:(e,t,n)=>kl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):gl(e,t)},El=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var xl={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===Pl.test(r[o].normal)&&([,i]=r[o].normal.split(Pl));let s=null;jl.hasOwnProperty(i)&&(s=jl[i](r,o,t)),s&&(s=El(s,e),pl(n,[a,o],s),Al(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=hl},hooks:["contractionTwo"]};const Nl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Il=["i","we","they"];let Gl=[].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:"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)",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:Nl+" #Person",tag:"Person",reason:"randy-smith"},{match:Nl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Nl}]`,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:Il,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:Il,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Il,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"}]),Tl=null;var Cl={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;Tl=Tl||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(Tl),e.uncache(),e}},model:{two:{matches:Gl}},hooks:["postTagger"]},Dl=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)},Ol=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Dl(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},Bl={api:function(e){e.prototype.swap=Ol}};m.plugin(ll),m.plugin(xl),m.plugin(Cl),m.plugin(Bl);var Vl=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},zl=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 $l={this:"Noun",then:"Pivot"};var Fl=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))})},Kl={compute:{chunks:function(e){const{document:t,world:n}=e;Fl(t),Sl(t),Jl(e,t,n),Wl(t),ql(t)}},api:function(e){e.prototype.chunks=zl,e.prototype.clauses=Vl},hooks:["chunks"]};const Ul=/'s$/;var Rl=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(Ul,""),e.normal=e.normal.replace(Ul,"")})}),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=/\(/,Zl=/\)/,_l=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Ql,"");let t=e[e.length-1];t.post=t.post.replace(Zl,"")}),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 Xl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},eu=RegExp("("+Object.keys(Xl).join("|")+")"),tu=RegExp("("+Object.values(Xl).join("|")+")"),nu=function(e,t){const n=e[t].pre.match(eu)[0]||"";if(!n||!Xl[n])return null;const r=Xl[n];for(;t{e[0].pre=e[0].pre.replace(eu,"");let t=e[e.length-1];t.post=t.post.replace(tu,"")})}(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 au=/\./g;var ou=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(au,""),e.normal=e.normal.replace(au,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(au,""),e.normal=e.normal.replace(au,""),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)}},iu=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 su=(e,t)=>"number"==typeof t?e.eq(t):e,lu=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 uu=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=lu(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 su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=su(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=su(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=su(t,e),new Adjectives(t.document,t.pointer)}};const cu=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},hu=[["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 du=[["emojis","emoji"],["atmentions","atMentions"]];var pu=function(e){hu.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=cu,du.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},mu={api:function(e){pu(e),Rl(e),Yl(e),ru(e),uu(e),iu(e),ou(e)}};const gu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var fu={case:e=>{gu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;gu(e,e=>e.text=n(e.text,t))},whitespace:e=>{gu(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=>{gu(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 bu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),vu="unicode|punctuation|whitespace|acronyms",yu="|case|contractions|parentheses|quotations|emoji|honorifics",wu={light:bu(vu),medium:bu(vu+yu),heavy:bu(vu+yu+"|possessives|adverbs|nouns|verbs")};var ku={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=wu[e]),Object.keys(e).forEach(t=>{fu.hasOwnProperty(t)&&fu[t](this,e[t])}),this}}},Pu=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 Au=["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 ju=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")},xu=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:Eu(e,t),isSubordinate:ju(e),root:t}};const Nu=e=>e.text(),Iu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Gu=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Tu=function(e){let t=xu(e);return{root:Nu(t.root),number:Gu(t.number),determiner:Nu(t.determiner),adjectives:Iu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Cu={tags:!0};var Du=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,Cu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Cu),e};const Ou={tags:!0};var Bu=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,Ou).tag("Singular","toPlural"),e};const Vu=(e,t)=>"number"==typeof t?e.eq(t):e;var zu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Vu(this,e).map(xu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Tu(t)),n},[])}isPlural(e){let t=this.filter(e=>xu(e).isPlural);return Vu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=xu(e).adjectives;n.found&&(t=t.concat(n))}),Vu(t,e)}toPlural(e){return Vu(this,e).map(e=>Du(e,xu(e)))}toSingular(e){return Vu(this,e).map(e=>{let t=xu(e);return Bu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Pu(this);return t=Vu(t,e),new Nouns(this.document,t.pointer)}}},$u=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},Fu=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(Su.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Su.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Su.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Mu=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 Lu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Wu={"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 Ku=function(e){if(!0===Wu.hasOwnProperty(e))return Wu[e];if("a"===e||"an"===e)return 1;const t=Fu(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=Ru(n),r=Ru(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:Ru(n);let a=r.text("reduced");return Uu.test(a)&&(a=a.replace(Uu,""),r=r.replaceWith(a)),r=Qu.hasOwnProperty(a)?Qu[a]:Ru(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:Ru(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},_u=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 Yu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Xu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],ec=[[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"]],tc=function(e){let t=[];if(e>100)return t;for(let n=0;n=Yu[n][1]&&(e-=Yu[n][1],t.push(Yu[n][0]));return Xu[e]&&t.push(Xu[e]),t};var nc=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=_u(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return ec.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(tc(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=_u(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(" ")},rc=function(e){return e.numerator&&e.denominator?`${nc({num:e.numerator})} out of ${nc({num:e.denominator})}`:""};const ac={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 oc=e=>{let t=nc(e).split(" "),n=t[t.length-1];return ac.hasOwnProperty(n)?t[t.length-1]=ac[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},ic=function(e){if(!e.numerator||!e.denominator)return"";let t=nc({num:e.numerator}),n=oc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const sc=(e,t)=>"number"==typeof t?e.eq(t):e;var lc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return sc(this,e).map(Zu)}get(e){return sc(this,e).map(Zu)}json(e){return sc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Zu(t);return n.fraction=r,n},[])}toDecimal(e){return sc(this,e).forEach(e=>{let{decimal:t}=Zu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return sc(this,e).forEach(e=>{let t=Zu(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 sc(this,e).forEach(e=>{let t=Zu(e),n=ic(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return sc(this,e).forEach(e=>{let t=Zu(e),n=rc(t);e.replaceWith(n)}),this}toPercentage(e){return sc(this,e).forEach(e=>{let{decimal:t}=Zu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=$u(this);return t=sc(t,e),new Fractions(this.document,t.pointer)}};const uc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var cc=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("("+uc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+uc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+uc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+uc+")"));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) (${uc})`),r=e.has("("+uc+") #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("("+uc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+uc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},hc=function(e){if("string"==typeof e)return{num:Ku(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=Zu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Ku(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")}},dc=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=_u(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const pc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},mc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var gc=function(e){let t={suffix:"",prefix:e.prefix};return pc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+pc[e.prefix],t.prefix=""),mc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+mc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},fc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=gc(e);return t+oc(e)+n}if("Ordinal"===t)return e.prefix+dc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=gc(e);return t+nc(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const bc=(e,t)=>"number"==typeof t?e.eq(t):e;var vc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return bc(this,e).map(hc)}get(e){return bc(this,e).map(hc).map(e=>e.num)}json(e){return bc(this,e).map(t=>{let n=t.toView().json(e)[0],r=hc(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=hc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=fc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=hc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=fc(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=>hc(t).num===e)}greaterThan(e){return this.filter(t=>hc(t).num>e)}lessThan(e){return this.filter(t=>hc(t).num{let r=hc(n).num;return r>e&&r{let n=hc(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=fc(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=hc(e).num);let t=this.map(t=>{let n=hc(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=fc(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=cc(this);return t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=cc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=cc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},yc={api:function(e){lc(e),vc(e)}};const wc={people:!0,emails:!0,phoneNumbers:!0,places:!0},kc=function(e={}){return!1!==(e=Object.assign({},wc,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 Pc={api:function(e){e.prototype.redact=kc}},Ac=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))})},jc=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))))))},Ec=function(e){let t=e.clauses(),n=jc(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}},xc=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},Nc=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},Ic=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},Gc=function(e){return e.verbs().toInfinitive(),e};const Tc=(e,t)=>"number"==typeof t?e.eq(t):e;var Cc={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}=Ec(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Tc(this,e).map(e=>(Ec(e),xc(e)))}toPresentTense(e){return Tc(this,e).map(e=>(Ec(e),Nc(e)))}toFutureTense(e){return Tc(this,e).map(e=>(Ec(e),e=Ic(e)))}toInfinitive(e){return Tc(this,e).map(e=>(Ec(e),Gc(e)))}toNegative(e){return Tc(this,e).map(e=>(Ec(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Tc(this,e).map(e=>(Ec(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 Tc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Tc(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=Tc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Ac(this);return Tc(t,e)}};Object.assign(e.prototype,t)}},Dc=function(e){return e.match("#Honorific+? #Person+")},Oc=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 Bc="male",Vc="female",zc={mr:Bc,mrs:Vc,miss:Vc,madam:Vc,king:Bc,queen:Vc,duke:Bc,duchess:Vc,baron:Bc,baroness:Vc,count:Bc,countess:Vc,prince:Bc,princess:Vc,sire:Bc,dame:Vc,lady:Vc,ayatullah:Bc,congressman:Bc,congresswoman:Vc,"first lady":Vc,mx:null};var $c=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Vc;if(n.has("#MaleName"))return Bc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),zc.hasOwnProperty(e))return zc[e];if(/^her /.test(e))return Vc;if(/^his /.test(e))return Bc}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 Bc;if(n&&!t)return Vc}return null};const Fc=(e,t)=>"number"==typeof t?e.eq(t):e;var Sc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Fc(this,e).map(Oc)}json(e){return Fc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Oc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:$c(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=Dc(this);return t=Fc(t,e),new People(this.document,t.pointer)}},Hc=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},Mc=function(e){e.prototype.places=function(t){let n=Hc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Jc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Lc=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 Wc=function(e){e.prototype.topics=Lc},qc={api:function(e){Sc(e),Mc(e),Jc(e),Wc(e)}},Kc=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},Uc=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},Rc=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},Zc=function(e){return e.match("#Negative")},_c=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Yc=function(e){let t=e.clone();t.contractions().expand();const n=Uc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Rc(t,n),auxiliary:Qc(t,n),negative:Zc(t),phrasal:_c(n)}};const Xc={tense:"PresentTense"},eh={conditional:!0},th={tense:"FutureTense"},nh={progressive:!0},rh={tense:"PastTense"},ah={complete:!0,progressive:!1},oh={passive:!0},ih=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},sh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Xc]],["^wanted to #Infinitive$",[rh]],["^will want to #Infinitive$",[th]]],"gerund-phrase":[["^#PastTense #Gerund$",[rh]],["^#PresentTense #Gerund$",[Xc]],["^#Infinitive #Gerund$",[Xc]],["^will #Infinitive #Gerund$",[th]],["^have #PastTense #Gerund$",[rh]],["^will have #PastTense #Gerund$",[rh]]],"simple-present":[["^#PresentTense$",[Xc]],["^#Infinitive$",[Xc]]],"simple-past":[["^#PastTense$",[rh]]],"simple-future":[["^will #Adverb? #Infinitive",[th]]],"present-progressive":[["^(is|are|am) #Gerund$",[Xc,nh]]],"past-progressive":[["^(was|were) #Gerund$",[rh,nh]]],"future-progressive":[["^will be #Gerund$",[th,nh]]],"present-perfect":[["^(has|have) #PastTense$",[rh,ah]]],"past-perfect":[["^had #PastTense$",[rh,ah]],["^had #PastTense to #Infinitive",[rh,ah]]],"future-perfect":[["^will have #PastTense$",[th,ah]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[rh,nh]]],"past-perfect-progressive":[["^had been #Gerund$",[rh,nh]]],"future-perfect-progressive":[["^will have been #Gerund$",[th,nh]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[rh,oh]],["^(was|were) being (#PastTense|#Participle)",[rh,oh]],["^(had|have) been (#PastTense|#Participle)",[rh,oh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Xc,oh]],["^(is|are|am) being (#PastTense|#Participle)",[Xc,oh]],["^has been (#PastTense|#Participle)",[Xc,oh]]],"passive-future":[["will have been (#PastTense|#Participle)",[th,oh,eh]],["will be being? (#PastTense|#Participle)",[th,oh,eh]]],"present-conditional":[["would be #PastTense",[Xc,eh]]],"past-conditional":[["would have been #PastTense",[rh,eh]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[th]]],"auxiliary-past":[["^did #Infinitive$",[rh,{plural:!1}]],["^used to #Infinitive$",[rh,ah]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Xc,ah,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[rh]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let lh=[];Object.keys(sh).map(e=>{sh[e].forEach(t=>{lh.push({name:e,match:t[0],data:ih(t[1])})})});var uh=lh,ch=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(),hh(r)&&(n.remove(r),r=n.last()),hh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:dh(t,e)}};const mh=e=>e,gh=(e,t)=>{let n=ph(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},fh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=ph(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},bh=function(e,t){let n=ph(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},vh=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},yh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,vh(e)),r&&e.replace(t.root,r),e},wh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),kh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Ph=function(e){return e&&e.isView?e.text("normal"):""},Ah=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,vh(e))};var jh=function(e){let t=Yc(e);e=e.clone().toView();const n=ch(e,t);return{root:t.root.text(),preAdverbs:kh(t.adverbs.pre),postAdverbs:kh(t.adverbs.post),auxiliary:Ph(t.auxiliary),negative:t.negative.found,prefix:Ph(t.prefix),infinitive:Ah(t.root),grammar:n}};const Eh={tags:!0};var xh=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,vh(r)),i&&e.replace(r,i,Eh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=bh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Nh={tags:!0},Ih={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,vh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=ph(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Nh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ih.simple(e,t),e=Ih.noAux(e,t))},hasHad:e=>(e.replace("has","had",Nh),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,vh(a)),n(o,e.model).Participle}},Gh={infinitive:Ih.simple,"simple-present":Ih.simple,"simple-past":mh,"simple-future":Ih.both,"present-progressive":e=>(e.replace("are","were",Nh),e.replace("(is|are|am)","was",Nh),e),"past-progressive":mh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ih.hasHad,"past-perfect":mh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=wh(e)),e.remove("have"),e),"present-perfect-progressive":Ih.hasHad,"past-perfect-progressive":mh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Nh),e),"passive-past":e=>(e.replace("have","had",Nh),e),"passive-present":e=>(e.replace("(is|are)","was",Nh),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",Nh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":mh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Nh),e),"auxiliary-past":mh,"auxiliary-present":e=>(e.replace("(do|does)","did",Nh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Nh):(Ih.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":mh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Nh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ih.simple(e,t),wh(e),e)};var Th=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},Dh=(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,vh(a)),!1===gh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=fh(e)),o&&(e=e.replace(a,o,Ch)).not("#Particle").tag("PresentTense"),e},Oh=(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,vh(a)),!1===gh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Ch)).not("#Particle").tag("Gerund"),e},Bh={infinitive:Dh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Dh(e,t);{let t=ph(e).subject;if(gh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Ch)}return e},"simple-past":Dh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=fh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Dh(e,t),e=e.remove("will");return e},"present-progressive":mh,"past-progressive":(e,t)=>{let n=fh(e);return e.replace("(were|was)",n,Ch)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Dh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=ph(e).subject;return gh(e)||n.has("i")?((e=yh(e,t)).remove("had"),e):(e.replace("had","has",Ch),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":mh,"past-perfect-progressive":e=>e.replace("had","has",Ch),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=fh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Ch),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":mh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":mh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Oh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=bh(e);return e.replace(t.auxiliary,n),e}return Oh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":mh,"modal-infinitive":mh,"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,vh(r)),a&&(e=e.replace(t.root,a,Ch))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Dh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return gh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Ch),e.remove("will"),e}};var Vh=function(e,t,n){return Bh.hasOwnProperty(n)?((e=Bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const zh={tags:!0},$h=(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,vh(r)),o&&(e=e.replace(r,o,zh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Fh=(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,vh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,zh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Sh={infinitive:$h,"simple-present":$h,"simple-past":$h,"simple-future":mh,"present-progressive":Fh,"past-progressive":Fh,"future-progressive":mh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":mh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":mh,"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":mh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":mh,"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":mh,"modal-past":mh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),$h(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Hh=function(e,t,n){return e.has("will")||e.has("going to")?e:Sh.hasOwnProperty(n)?((e=Sh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Mh={tags:!0};var Jh=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,vh(a));let s=r(i,e.model).Gerund;return s&&(s=`${fh(e)} ${s}`,e.replace(a,s,Mh)),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 Lh={tags:!0},Wh=function(e,t){let n=bh(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)},Kh=e=>e.has("(is|was|am|are|will|were|be)"),Uh={"simple-present":(e,t)=>!0===Kh(e)?qh(e):(e=yh(e,t),e=Wh(e)),"simple-past":(e,t)=>!0===Kh(e)?qh(e):((e=yh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Kh(e)?qh(e):Wh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Lh),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=Wh(e)).replace("wants","want",Lh)};var Rh=function(e,t,n){if(e.has("#Negative"))return e;if(Uh.hasOwnProperty(n))return e=Uh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Kh(e)?qh(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 Zh={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(Yc)}json(e,t){return Qh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=jh(t),n},[])}subjects(e){return Qh(this,e).map(e=>(Yc(e),ph(e).subject))}adverbs(e){return Qh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Qh(this,e).filter(e=>!0!==ph(e).plural)}isPlural(e){return Qh(this,e).filter(e=>!0===ph(e).plural)}isImperative(e){return Qh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return xh(e,t,n.form)})}toPresentTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Vh(e,t,n.form)})}toPastTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Th(e,t,n.form)})}toFutureTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Hh(e,t,n.form)})}toGerund(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Jh(e,t,n.form)})}conjugate(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:xh(e.clone(),t,n.form).text("normal"),PastTense:Th(e.clone(),t,n.form).text("normal"),PresentTense:Vh(e.clone(),t,n.form).text("normal"),FutureTense:Hh(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=Yc(e),n=ch(e,t);return Rh(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=Kc(this);return t=Qh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Kl),m.plugin(mu),m.plugin(ku),m.plugin(zu),m.plugin(yc),m.plugin(Pc),m.plugin(Cc),m.plugin(qc),m.plugin(Zh),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 059e8d2e8..4e94766f4 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.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.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,G={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 D=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.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 D.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=G.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof G[t]?(o=o.sort(G[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}},Q={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 R=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,M,I,Q);var H={api:function(t){Object.assign(t.prototype,R)},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]]},Gt=(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},Dt=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=Gt(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=>Dt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Ut=Bt;const Mt=Object.assign({},Lt,Vt,Ut);Mt.lookBehind=Mt.before,Mt.lookBefore=Mt.before,Mt.lookAhead=Mt.after,Mt.lookAfter=Mt.after,Mt.notIf=Mt.ifNo;var Wt=function(t){Object.assign(t.prototype,Mt)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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},Ge=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var De={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=Ge(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=/^\../,Ue=/^#./,Me=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}=Me(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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn,sn=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 ln="";var cn={green:t=>""+t+ln,red:t=>""+t+ln,blue:t=>""+t+ln,magenta:t=>""+t+ln,cyan:t=>""+t+ln,yellow:t=>""+t+ln,black:t=>""+t+ln,dim:t=>""+t+ln,i:t=>""+t+ln},an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(cn.blue("\n ──────")),e.forEach(t=>{console.log(cn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=cn.blue(" │ ")+cn.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 cn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},un=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},hn=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]}${cn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var pn=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()}},gn={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},bn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=bn(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},xn={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:bn,splitAll:vn}}},jn=function(t,e){let n=t.concat(e),r=bn(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=>yn(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},On=function(t,e){let n=bn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>yn(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},Pn=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=kn(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)}};_n.and=_n.union,_n.intersection=function(t){t=kn(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.not=function(t){t=kn(t,this);let e=En(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.difference=_n.not,_n.complement=function(){let t=this.all(),e=En(t.fullPointer,this.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=jn(t,[e])}),t=Pn(t,this.document),this.update(t)};var Sn={methods:xn,api:function(t){Object.assign(t.prototype,_n)}},An=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};function $n(t,e,n){return t.splice(e,1,...n),t}const Tn=function(t){return t.fastOr?Array.from(t.fastOr).map(t=>[{word:t}]):t.choices},Cn=function(t,e){let n=Object.assign({},t,e);return delete n.choices,delete n.fastOr,delete n.operator,n};var zn=function(t){let e=[];return t.forEach(t=>{for(let n=0;n{let o=Object.assign({},t);o.regs=o.regs.slice(0),r=r.map(e=>Cn(t.regs[n],e)),o.regs=$n(o.regs,n,r),e.push(o)})}e.push(t)}),e};const Nn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Fn=function(t){return t.forEach(t=>{t.needs=Array.from(function(t){let e=new Set;return t.forEach(t=>{let n=Nn(t);n?e.add(n):"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Nn(t);n&&e.add(n)})})}),e}(t.regs)),t.minWords=t.regs.filter(t=>!t.optional).length}),t},Ln=function(t){let e={};return t.forEach(t=>{t.needs.forEach(n=>{e[n]=e[n]||[],e[n].push(t)})}),e},Vn=function(t,e){return t.map(t=>{let n=[];return t.forEach(t=>{e.hasOwnProperty(t)&&(n=n.concat(e[t]))}),new Set(n)})},qn=function(t,e){for(let n=0;nt.needs.every(t=>r.has(t))),t[n]=t[n].filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))}return t},Gn=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},Dn=function(t,e){let[n,r,o]=t.pointer,i=e[n],s=r>4?r-2:0,l=t.tag||"";var c;if(c=t.tag,"[object Array]"===Object.prototype.toString.call(c)&&(l=t.tag.join(" #")),!l||i.every(t=>t.tags.has(l)))return;let a=t.reason||t.match;a=a?`|${a}|`:"";let u=(" "+a).padEnd(20)+" - ";const h=t=>""+t+"";for(;so+2);s+=1){let t=i[s].machine||i[s].normal;u+=s>r&&s{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=An(t,e),t=zn(t);let n=(t=Fn(t)).filter(t=>0===t.needs.length),r=Ln(t);return delete r["#Noun"],delete r["#Verb"],{index:r,always:n}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Vn(o,e.index);return i=qn(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;const c="undefined"!=typeof process&&process.env?process.env:self.env||{};return c.DEBUG_TAGS&&console.log(`\n → ${t.length} corrections:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match;c.DEBUG_TAGS&&Dn(t,e);let 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,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.text||"["+t.implicit+"]";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[0],e,o),1!=(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;nQn(t,e,n,r))};var Rn=Qn,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 cr=function(t){let e=er(t);return new g(e)};cr.prototype.plugin=function(t){t(this)};var ar={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(ar.hasOwnProperty(t.id))return ar[t.id];if(ar.hasOwnProperty(t.is))return ar[t.is];let e=t._cache.parents.find(t=>ar[t]);return ar[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},dr={one:{setTag:Rn,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 cr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return hr(n)}}};const gr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var mr={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)}},wr=function(t){Object.assign(t.prototype,mr)},yr={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 br=new Set(["Auxiliary","Possessive"]);var vr={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(br.has(t)||!e.hasOwnProperty(n))return 1;if(br.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:yr};const xr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,jr=/((?:\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.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.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,G={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 D=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.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 D.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=G.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof G[t]?(o=o.sort(G[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}},Q={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 R=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,M,I,Q);var H={api:function(t){Object.assign(t.prototype,R)},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]]},Gt=(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},Dt=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=Gt(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=>Dt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Ut=Bt;const Mt=Object.assign({},Lt,Vt,Ut);Mt.lookBehind=Mt.before,Mt.lookBefore=Mt.before,Mt.lookAhead=Mt.after,Mt.lookAfter=Mt.after,Mt.notIf=Mt.ifNo;var Wt=function(t){Object.assign(t.prototype,Mt)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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},Ge=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var De={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=Ge(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=/^\../,Ue=/^#./,Me=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}=Me(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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn,sn=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 ln="";var cn={green:t=>""+t+ln,red:t=>""+t+ln,blue:t=>""+t+ln,magenta:t=>""+t+ln,cyan:t=>""+t+ln,yellow:t=>""+t+ln,black:t=>""+t+ln,dim:t=>""+t+ln,i:t=>""+t+ln},an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(cn.blue("\n ──────")),e.forEach(t=>{console.log(cn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=cn.blue(" │ ")+cn.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 cn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},un=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},hn=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]}${cn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var pn=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()}},gn={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},bn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=bn(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},xn={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:bn,splitAll:vn}}},jn=function(t,e){let n=t.concat(e),r=bn(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=>yn(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},On=function(t,e){let n=bn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>yn(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},Pn=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=kn(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)}};_n.and=_n.union,_n.intersection=function(t){t=kn(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.not=function(t){t=kn(t,this);let e=En(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.difference=_n.not,_n.complement=function(){let t=this.all(),e=En(t.fullPointer,this.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=jn(t,[e])}),t=Pn(t,this.document),this.update(t)};var Sn={methods:xn,api:function(t){Object.assign(t.prototype,_n)}},An=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};function $n(t,e,n){return t.splice(e,1,...n),t}const Tn=function(t){return t.fastOr?Array.from(t.fastOr).map(t=>[{word:t}]):t.choices},Cn=function(t,e){let n=Object.assign({},t,e);return delete n.choices,delete n.fastOr,delete n.operator,n};var zn=function(t){let e=[];return t.forEach(t=>{for(let n=0;n{let o=Object.assign({},t);o.regs=o.regs.slice(0),r=r.map(e=>Cn(t.regs[n],e)),o.regs=$n(o.regs,n,r),e.push(o)})}e.push(t)}),e};const Nn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Fn=function(t){return t.forEach(t=>{t.needs=Array.from(function(t){let e=new Set;return t.forEach(t=>{let n=Nn(t);n?e.add(n):"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Nn(t);n&&e.add(n)})})}),e}(t.regs)),t.minWords=t.regs.filter(t=>!t.optional).length}),t},Ln=function(t){let e={};return t.forEach(t=>{t.needs.forEach(n=>{e[n]=e[n]||[],e[n].push(t)})}),e},Vn=function(t,e){return t.map(t=>{let n=[];return t.forEach(t=>{e.hasOwnProperty(t)&&(n=n.concat(e[t]))}),new Set(n)})},qn=function(t,e){for(let n=0;nt.needs.every(t=>r.has(t))),t[n]=t[n].filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))}return t},Gn=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},Dn=function(t,e){let[n,r,o]=t.pointer,i=e[n],s=r>4?r-2:0,l=t.tag||"";var c;if(c=t.tag,"[object Array]"===Object.prototype.toString.call(c)&&(l=t.tag.join(" #")),!l||i.every(t=>t.tags.has(l)))return;let a=t.reason||t.match;a=a?`|${a}|`:"";let u=(" "+a).padEnd(20)+" - ";const h=t=>""+t+"";for(;so+2);s+=1){let t=i[s].machine||i[s].normal;u+=s>r&&s{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=An(t,e),t=zn(t);let n=(t=Fn(t)).filter(t=>0===t.needs.length);return{index:Ln(t),always:n}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Vn(o,e.index);return i=qn(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;const c="undefined"!=typeof process&&process.env?process.env:self.env||{};return c.DEBUG_TAGS&&console.log(`\n → ${t.length} corrections:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match;c.DEBUG_TAGS&&Dn(t,e);let 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,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.text||"["+t.implicit+"]";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[0],e,o),1!=(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;nQn(t,e,n,r))};var Rn=Qn,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 cr=function(t){let e=er(t);return new g(e)};cr.prototype.plugin=function(t){t(this)};var ar={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(ar.hasOwnProperty(t.id))return ar[t.id];if(ar.hasOwnProperty(t.is))return ar[t.is];let e=t._cache.parents.find(t=>ar[t]);return ar[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},dr={one:{setTag:Rn,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 cr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return hr(n)}}};const gr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var mr={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)}},wr=function(t){Object.assign(t.prototype,mr)},yr={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 br=new Set(["Auxiliary","Possessive"]);var vr={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(br.has(t)||!e.hasOwnProperty(n))return 1;if(br.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:yr};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]/,Qr=/^'[0-9]{2}/;var Rr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Br,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Ir.test(t)?"'"===n&&Qr.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}},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},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},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:Tr,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=Lr(n),n=Nr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Rr(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})}}}},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","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=>{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 co=/\//,ao=/[a-z]\.[a-z]/i,uo=/[0-9]/;var ho=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])),co.test(n)&&!ao.test(n)&&!uo.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 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)},go=function(t){let e=0,n=0,r=t.document;for(let t=0;tmo(t,ho),machine:t=>mo(t,po),normal:t=>mo(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 vo={safe:!0,min:3};var xo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},vo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=bo(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}},jo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=yo},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"]};return d.extend(H),d.extend(wn),d.extend(De),d.extend(Sn),d.extend(vr),d.plugin(yt),d.extend(wo),d.plugin(w),d.extend($t),d.extend(jo),d.extend(Et),d.extend(Un),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 fc886289f..e1d17bf09 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.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.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),v=(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||!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),v(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 G={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 D=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.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 D.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=G.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof G[t]?(o=o.sort(G[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 v(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 Q={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 R=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,M,I,Q);var H={api:function(t){Object.assign(t.prototype,R)},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 vt=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===bt.test(a)){let t=a.replace(bt,"");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]]},Gt=(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},Dt=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=Gt(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=>Dt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Ut=Bt;const Mt=Object.assign({},Lt,Vt,Ut);Mt.lookBehind=Mt.before,Mt.lookBefore=Mt.before,Mt.lookAhead=Mt.after,Mt.lookAfter=Mt.after,Mt.notIf=Mt.ifNo;var Wt=function(t){Object.assign(t.prototype,Mt)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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),be=(t,e)=>-1!==t.pre.indexOf(e),xe={hasQuote:t=>ge.test(t.pre)||me.test(t.post),hasComma:t=>ve(t,","),hasPeriod:t=>!0===ve(t,".")&&!1===ve(t,"..."),hasExclamation:t=>ve(t,"!"),hasQuestionMark:t=>ve(t,"?")||ve(t,"¿"),hasEllipses:t=>ve(t,"..")||ve(t,"…")||be(t,"..")||be(t,"…"),hasSemicolon:t=>ve(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},Ge=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var De={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=Ge(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=/^\../,Ue=/^#./,Me=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}=Me(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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn;var sn=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 ln={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 an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(ln.blue("\n ──────")),e.forEach(t=>{console.log(ln.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=ln.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=ln.blue(" │ ")+ln.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 ln[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var cn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(ln.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(ln.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(ln.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(ln.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var un=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]}${ln.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const hn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var fn=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 dn={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},yn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=yn(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 bn={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:yn,splitAll:vn}}};var xn=function(t,e){let n=t.concat(e),r=yn(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=>wn(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 En=function(t,e){let n=yn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>wn(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},kn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Pn={union:function(t){t=On(t,this);let e=xn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)}};Pn.and=Pn.union,Pn.intersection=function(t){t=On(t,this);let e=En(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.not=function(t){t=On(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.difference=Pn.not,Pn.complement=function(){let t=this.all(),e=jn(t.fullPointer,this.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=xn(t,[e])}),t=kn(t,this.document),this.update(t)};var _n={methods:bn,api:function(t){Object.assign(t.prototype,Pn)}};var Sn=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};function An(t,e,n){return t.splice(e,1,...n),t}const $n=function(t){return t.fastOr?Array.from(t.fastOr).map(t=>[{word:t}]):t.choices},Tn=function(t,e){let n=Object.assign({},t,e);return delete n.choices,delete n.fastOr,delete n.operator,n};var Cn=function(t){let e=[];return t.forEach(t=>{for(let n=0;n{let o=Object.assign({},t);o.regs=o.regs.slice(0),r=r.map(e=>Tn(t.regs[n],e)),o.regs=An(o.regs,n,r),e.push(o)})}}e.push(t)}),e};const zn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Nn=function(t){return t.forEach(t=>{t.needs=Array.from(function(t){let e=new Set;return t.forEach(t=>{let n=zn(t);n?e.add(n):"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=zn(t);n&&e.add(n)})})}),e}(t.regs)),t.minWords=t.regs.filter(t=>!t.optional).length}),t};var Fn=function(t){let e={};return t.forEach(t=>{t.needs.forEach(n=>{e[n]=e[n]||[],e[n].push(t)})}),e};var Ln=function(t,e){return t.map(t=>{let n=[];return t.forEach(t=>{e.hasOwnProperty(t)&&(n=n.concat(e[t]))}),new Set(n)})};var Vn=function(t,e){for(let n=0;nt.needs.every(t=>r.has(t))),t[n]=t[n].filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))}return t};var qn=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 Gn=function(t,e){let[n,r,o]=t.pointer,i=e[n],s=r>4?r-2:0,l=t.tag||"";var a;if(a=t.tag,"[object Array]"===Object.prototype.toString.call(a)&&(l=t.tag.join(" #")),!l||i.every(t=>t.tags.has(l)))return;let c=t.reason||t.match;c=c?`|${c}|`:"";let u=(" "+c).padEnd(20)+" - ";const h=t=>""+t+"";for(;so+2);s+=1){let t=i[s].machine||i[s].normal;u+=s>r&&s{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=Sn(t,e),t=Cn(t);let n=(t=Nn(t)).filter(t=>0===t.needs.length),r=Fn(t);return delete r["#Noun"],delete r["#Verb"],{index:r,always:n}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Ln(o,e.index);return i=Vn(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),qn(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;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};return a.DEBUG_TAGS&&console.log(`\n → ${t.length} corrections:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match;a.DEBUG_TAGS&&Gn(t,e);let c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Dn(c,t.tag,r))return;if("-"===c[c.length-1].post)return}void 0!==t.tag&&(s(c,t.tag,n,t.safe,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 Un=/ /,Mn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Wn=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.text||"["+t.implicit+"]";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[0],e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Un.test(e))!function(t,e,n,r){let o=e.split(Un);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Wn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nIn(t,e,n,r))};var Qn=In;var Rn=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=>Hn({id:t})),e}return[Hn({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},Xn=t=>"[object Array]"===Object.prototype.toString.call(t),Yn=t=>(t=t||"").trim(),tr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Zn.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:Kn(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=Hn({});return t.forEach(t=>{if((t=Hn(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):(Jn(e=t).forEach(Hn),e);var e},er=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Jn(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},nr=function(t){let e=Jn(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},rr={text:er,txt:er,array:nr,flat:nr},or=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(er(t,!0)),null):rr.hasOwnProperty(e)?rr[e](t):t},ir=t=>{Jn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},sr=/\//;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=Yn(t),!sr.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)||Hn({});return new g(e)}add(t,e={}){if(Xn(t))return t.forEach(t=>this.add(Yn(t),e)),this;t=Yn(t);let n=Hn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Yn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Jn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Jn(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 Jn(this.json)}fillDown(){var t;return t=this.json,Jn(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 Xn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){ir(this.json);let t=Jn(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 ir(this.json),or(this.json,t)}debug(){return ir(this.json),or(this.json,"debug"),this}}const lr=function(t){let e=tr(t);return new g(e)};lr.prototype.plugin=function(t){t(this)};var ar={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const cr=function(t){if(ar.hasOwnProperty(t.id))return ar[t.id];if(ar.hasOwnProperty(t.is))return ar[t.is];let e=t._cache.parents.find(t=>ar[t]);return ar[e]};var ur=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:cr(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 hr=function(t){return t?"string"==typeof t?[t]:t:[]};var fr=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=hr(t[e].children),t[e].not=hr(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 pr={one:{setTag:Qn,unTag:Rn,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=fr(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 lr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return ur(n)}}};const dr=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||""),dr(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 dr(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 mr=function(t){Object.assign(t.prototype,gr)};var wr={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 vr={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:pr,api:mr,lib:wr};const br=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,xr=/((?:\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.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.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),v=(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||!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),v(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 G={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 D=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.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 D.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=G.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof G[t]?(o=o.sort(G[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 v(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 Q={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 R=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,M,I,Q);var H={api:function(t){Object.assign(t.prototype,R)},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 vt=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===bt.test(a)){let t=a.replace(bt,"");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]]},Gt=(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},Dt=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=Gt(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=>Dt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Ut=Bt;const Mt=Object.assign({},Lt,Vt,Ut);Mt.lookBehind=Mt.before,Mt.lookBefore=Mt.before,Mt.lookAhead=Mt.after,Mt.lookAfter=Mt.after,Mt.notIf=Mt.ifNo;var Wt=function(t){Object.assign(t.prototype,Mt)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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),be=(t,e)=>-1!==t.pre.indexOf(e),xe={hasQuote:t=>ge.test(t.pre)||me.test(t.post),hasComma:t=>ve(t,","),hasPeriod:t=>!0===ve(t,".")&&!1===ve(t,"..."),hasExclamation:t=>ve(t,"!"),hasQuestionMark:t=>ve(t,"?")||ve(t,"¿"),hasEllipses:t=>ve(t,"..")||ve(t,"…")||be(t,"..")||be(t,"…"),hasSemicolon:t=>ve(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},Ge=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var De={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=Ge(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=/^\../,Ue=/^#./,Me=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}=Me(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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn;var sn=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 ln={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 an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(ln.blue("\n ──────")),e.forEach(t=>{console.log(ln.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=ln.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=ln.blue(" │ ")+ln.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 ln[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var cn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(ln.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(ln.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(ln.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(ln.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var un=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]}${ln.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const hn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var fn=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 dn={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},yn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=yn(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 bn={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:yn,splitAll:vn}}};var xn=function(t,e){let n=t.concat(e),r=yn(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=>wn(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 En=function(t,e){let n=yn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>wn(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},kn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Pn={union:function(t){t=On(t,this);let e=xn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)}};Pn.and=Pn.union,Pn.intersection=function(t){t=On(t,this);let e=En(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.not=function(t){t=On(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.difference=Pn.not,Pn.complement=function(){let t=this.all(),e=jn(t.fullPointer,this.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=xn(t,[e])}),t=kn(t,this.document),this.update(t)};var _n={methods:bn,api:function(t){Object.assign(t.prototype,Pn)}};var Sn=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};function An(t,e,n){return t.splice(e,1,...n),t}const $n=function(t){return t.fastOr?Array.from(t.fastOr).map(t=>[{word:t}]):t.choices},Tn=function(t,e){let n=Object.assign({},t,e);return delete n.choices,delete n.fastOr,delete n.operator,n};var Cn=function(t){let e=[];return t.forEach(t=>{for(let n=0;n{let o=Object.assign({},t);o.regs=o.regs.slice(0),r=r.map(e=>Tn(t.regs[n],e)),o.regs=An(o.regs,n,r),e.push(o)})}}e.push(t)}),e};const zn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Nn=function(t){return t.forEach(t=>{t.needs=Array.from(function(t){let e=new Set;return t.forEach(t=>{let n=zn(t);n?e.add(n):"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=zn(t);n&&e.add(n)})})}),e}(t.regs)),t.minWords=t.regs.filter(t=>!t.optional).length}),t};var Fn=function(t){let e={};return t.forEach(t=>{t.needs.forEach(n=>{e[n]=e[n]||[],e[n].push(t)})}),e};var Ln=function(t,e){return t.map(t=>{let n=[];return t.forEach(t=>{e.hasOwnProperty(t)&&(n=n.concat(e[t]))}),new Set(n)})};var Vn=function(t,e){for(let n=0;nt.needs.every(t=>r.has(t))),t[n]=t[n].filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))}return t};var qn=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 Gn=function(t,e){let[n,r,o]=t.pointer,i=e[n],s=r>4?r-2:0,l=t.tag||"";var a;if(a=t.tag,"[object Array]"===Object.prototype.toString.call(a)&&(l=t.tag.join(" #")),!l||i.every(t=>t.tags.has(l)))return;let c=t.reason||t.match;c=c?`|${c}|`:"";let u=(" "+c).padEnd(20)+" - ";const h=t=>""+t+"";for(;so+2);s+=1){let t=i[s].machine||i[s].normal;u+=s>r&&s{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=Sn(t,e),t=Cn(t);let n=(t=Nn(t)).filter(t=>0===t.needs.length);return{index:Fn(t),always:n}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Ln(o,e.index);return i=Vn(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),qn(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;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};return a.DEBUG_TAGS&&console.log(`\n → ${t.length} corrections:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match;a.DEBUG_TAGS&&Gn(t,e);let c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Dn(c,t.tag,r))return;if("-"===c[c.length-1].post)return}void 0!==t.tag&&(s(c,t.tag,n,t.safe,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 Un=/ /,Mn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Wn=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.text||"["+t.implicit+"]";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[0],e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Un.test(e))!function(t,e,n,r){let o=e.split(Un);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Wn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nIn(t,e,n,r))};var Qn=In;var Rn=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=>Hn({id:t})),e}return[Hn({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},Xn=t=>"[object Array]"===Object.prototype.toString.call(t),Yn=t=>(t=t||"").trim(),tr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Zn.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:Kn(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=Hn({});return t.forEach(t=>{if((t=Hn(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):(Jn(e=t).forEach(Hn),e);var e},er=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Jn(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},nr=function(t){let e=Jn(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},rr={text:er,txt:er,array:nr,flat:nr},or=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(er(t,!0)),null):rr.hasOwnProperty(e)?rr[e](t):t},ir=t=>{Jn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},sr=/\//;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=Yn(t),!sr.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)||Hn({});return new g(e)}add(t,e={}){if(Xn(t))return t.forEach(t=>this.add(Yn(t),e)),this;t=Yn(t);let n=Hn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Yn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Jn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Jn(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 Jn(this.json)}fillDown(){var t;return t=this.json,Jn(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 Xn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){ir(this.json);let t=Jn(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 ir(this.json),or(this.json,t)}debug(){return ir(this.json),or(this.json,"debug"),this}}const lr=function(t){let e=tr(t);return new g(e)};lr.prototype.plugin=function(t){t(this)};var ar={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const cr=function(t){if(ar.hasOwnProperty(t.id))return ar[t.id];if(ar.hasOwnProperty(t.is))return ar[t.is];let e=t._cache.parents.find(t=>ar[t]);return ar[e]};var ur=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:cr(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 hr=function(t){return t?"string"==typeof t?[t]:t:[]};var fr=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=hr(t[e].children),t[e].not=hr(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 pr={one:{setTag:Qn,unTag:Rn,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=fr(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 lr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return ur(n)}}};const dr=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||""),dr(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 dr(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 mr=function(t){Object.assign(t.prototype,gr)};var wr={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 vr={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:pr,api:mr,lib:wr};const br=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,xr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var jr=function(t){let e=[],n=t.split(xr);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 Dr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Br=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ur=/['’]/,Mr=/^[a-z]\.([a-z]\.)+/i,Wr=/^[-+.][0-9]/,Ir=/^'[0-9]{2}/;var Qr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Dr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Wr.test(t)?"'"===n&&Ir.test(t)?(n="",e):"":(n="",e)))).replace(Br,o=>(r=o,Ur.test(o)&&/[sn]['’]$/.test(e)&&!1===Ur.test(n)?(r=r.replace(Ur,""),"'"):!0===Mr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Rr=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 Hr=/([A-Z]\.)+[A-Z]?,?$/,Zr=/^[A-Z]\.,?$/,Kr=/[A-Z]{2,}('s|,)?$/,Jr=/([a-z]\.)+[a-z]\.?$/;var Xr=function(t){return function(t){return!0===Hr.test(t)||!0===Jr.test(t)||!0===Zr.test(t)||!0===Kr.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Yr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Rr(r),r=n(r,e),r=Xr(r),t.normal=r};var to={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(qr);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=zr(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=>{Yr(t,e)}),n})}}}};var eo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let no={},ro={};[[["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=>{no[e]=!0,ro[e]="Abbreviation",void 0!==t[1]&&(ro[e]=[ro[e],t[1]])})});var oo=["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 io={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},so={};Object.keys(io).forEach((function(t){io[t].split("").forEach((function(e){so[e]=t}))}));const lo=/\//,ao=/[a-z]\.[a-z]/i,co=/[0-9]/;var uo=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])),lo.test(n)&&!ao.test(n)&&!co.test(n)){let e=n.split(lo);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const ho=/^\p{Letter}+-\p{Letter}+$/u;var fo=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"),ho.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var po=function(t){let e=0,n=0,r=t.document;for(let t=0;tgo(t,uo),machine:t=>go(t,fo),normal:t=>go(t,Yr),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 vo={safe:!0,min:3};var bo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},vo,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 xo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=wo},lib:bo,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(mn),d.extend(De),d.extend(_n),d.extend(vr),d.plugin(yt),d.extend(mo),d.plugin(w),d.extend($t),d.extend(xo),d.extend(Et),d.extend(Bn);export{d as default}; diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index e347d073e..9b62e9e76 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.0";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.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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}},In=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};function Gn(e,t,n){return e.splice(t,1,...n),e}const Tn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Cn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Dn=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=>Cn(e.regs[n],t)),a.regs=Gn(a.regs,n,r),t.push(a)})}t.push(e)}),t};const On=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Bn=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=On(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=On(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Vn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t},zn=function(e,t){return e.map(e=>{let n=[];return e.forEach(e=>{t.hasOwnProperty(e)&&(n=n.concat(t[e]))}),new Set(n)})},$n=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},Fn=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},Sn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=In(e,t),e=Dn(e);let n=(e=Bn(e)).filter(e=>0===e.needs.length),r=Vn(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=zn(a,t.index);return o=$n(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),Fn(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&&Sn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(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 Jn=/ /,Ln=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Wn=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],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(/^#/,""),Wn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nqn(e,t,n,r))};var Kn=qn,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: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=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},tr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return _n(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=_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},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=>{_n(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 _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 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=_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 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},pr={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 mr=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||""),mr(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 mr(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)}},fr=function(e){Object.assign(e.prototype,gr)},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 vr=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(vr.has(e)||!t.hasOwnProperty(n))return 1;if(vr.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:fr,lib:br};const wr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,kr=/((?:\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.0";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.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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}},In=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};function Gn(e,t,n){return e.splice(t,1,...n),e}const Tn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Cn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Dn=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=>Cn(e.regs[n],t)),a.regs=Gn(a.regs,n,r),t.push(a)})}t.push(e)}),t};const On=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Bn=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=On(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=On(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Vn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t},zn=function(e,t){return e.map(e=>{let n=[];return e.forEach(e=>{t.hasOwnProperty(e)&&(n=n.concat(t[e]))}),new Set(n)})},$n=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},Fn=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},Sn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=In(e,t),e=Dn(e);let n=(e=Bn(e)).filter(e=>0===e.needs.length);return{index:Vn(e),always:n}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=zn(a,t.index);return o=$n(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),Fn(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&&Sn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(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 Jn=/ /,Ln=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Wn=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],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(/^#/,""),Wn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nqn(e,t,n,r))};var Kn=qn,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: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=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},tr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return _n(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=_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},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=>{_n(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 _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 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=_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 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},pr={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 mr=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||""),mr(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 mr(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)}},fr=function(e){Object.assign(e.prototype,gr)},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 vr=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(vr.has(e)||!t.hasOwnProperty(n))return 1;if(vr.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:fr,lib:br};const wr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,kr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var Pr=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 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]+$/,Jr=/['’]/,Lr=/^[a-z]\.([a-z]\.)+/i,Wr=/^[-+.][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||!Wr.test(e)?"'"===n&&qr.test(e)?(n="",t):"":(n="",t)))).replace(Mr,a=>(r=a,Jr.test(a)&&/[sn]['’]$/.test(t)&&!1===Jr.test(n)?(r=r.replace(Jr,""),"'"):!0===Lr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},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]\.,?$/,Zr=/[A-Z]{2,}('s|,)?$/,_r=/([a-z]\.)+[a-z]\.?$/;var Yr=function(e){return function(e){return!0===Rr.test(e)||!0===_r.test(e)||!0===Qr.test(e)||!0===Zr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},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},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:Tr,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||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Xr(e,t)}),n})}}}},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","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=>{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;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)},pa=function(e){let t=0,n=0,r=e.document;for(let e=0;ema(e,ca),machine:e=>ma(e,da),normal:e=>ma(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 va={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({},va,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ba(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(fn),m.extend(St),m.extend(Nn),m.extend(yr),m.plugin(be),m.extend(ga),m.plugin(f),m.extend(Ge),m.extend(ya),m.extend(Pe),m.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"},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",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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 Pa=36,Aa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ja=Aa.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ea=function(e){if(void 0!==ja[e])return ja[e];let t=0,n=1,r=Pa,a=1;for(;n=0;n--,a*=Pa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},xa=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=Ia(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ga(ka[e]);Oa.test(e)?Object.keys(t).forEach(t=>{if(Va[t]=e,"Noun|Verb"===e){let e=Da(t,za);Va[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 $a="Adjective";var Fa={beforeTags:{Determiner:$a,Possessive:$a},afterTags:{Adjective:$a},beforeWords:{seem:$a,seemed:$a,seems:$a,feel:$a,feels:$a,felt:$a,appear:$a,appears:$a,appeared:$a,also:$a,over:$a,under:$a,too:$a,it:$a,but:$a,still:$a,really:$a,quite:$a,well:$a,very:$a,deeply:$a,profoundly:$a,extremely:$a,so:$a,badly:$a,mostly:$a,totally:$a,awfully:$a,rather:$a,nothing:$a,something:$a,anything:$a},afterWords:{too:$a,also:$a,or:$a}};const Sa="Gerund";var Ha={beforeTags:{Adverb:Sa,Preposition:Sa,Conjunction:Sa},afterTags:{Adverb:Sa,Possessive:Sa,Person:Sa,Pronoun:Sa,Determiner:Sa,Copula:Sa,Preposition:Sa,Conjunction:Sa,Comparative:Sa},beforeWords:{been:Sa,keep:Sa,continue:Sa,stop:Sa,am:Sa,be:Sa,me:Sa,began:Sa,start:Sa,starts:Sa,started:Sa,stops:Sa,stopped:Sa,help:Sa,helps:Sa,avoid:Sa,avoids:Sa,love:Sa,loves:Sa,loved:Sa,hate:Sa,hates:Sa,hated:Sa},afterWords:{you:Sa,me:Sa,her:Sa,him:Sa,them:Sa,their:Sa,it:Sa,this:Sa,there:Sa,on:Sa,about:Sa,for:Sa}},Ma={beforeTags:Object.assign({},Fa.beforeTags,Ha.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Fa.afterTags,Ha.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Fa.beforeWords,Ha.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Fa.afterWords,Ha.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ja="Singular";var La={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 Wa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var qa={beforeTags:Object.assign({},Fa.beforeTags,La.beforeTags,Wa.beforeTags),afterTags:Object.assign({},Fa.afterTags,La.afterTags),beforeWords:Object.assign({},Fa.beforeWords,La.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fa.afterWords,La.afterWords)};const Ka={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ua={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ra={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 Za={beforeTags:Object.assign({},Fa.beforeTags,Ka),afterTags:Object.assign({},Fa.afterTags,Ua),beforeWords:Object.assign({},Fa.beforeWords,Ra),afterWords:Object.assign({},Fa.afterWords,Qa)};const _a="Infinitive";var Ya={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,when:_a,all:_a,to:_a,because:_a,although:_a,before:_a,how:_a,otherwise:_a,though:_a,yet:_a}};const Xa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var eo={beforeTags:Object.assign({},Fa.beforeTags,Ya.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Fa.afterTags,Ya.afterTags,Xa.afterTags),beforeWords:Object.assign({},Fa.beforeWords,Ya.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fa.afterWords,Ya.afterWords,{to:void 0})};const to={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},no={},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"},ao={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oo={beforeTags:Object.assign({},Ha.beforeTags,La.beforeTags,to),afterTags:Object.assign({},Ha.afterTags,La.afterTags,no),beforeWords:Object.assign({},Ha.beforeWords,La.beforeWords,ro),afterWords:Object.assign({},Ha.afterWords,La.afterWords,ao)},io={beforeTags:Object.assign({},Ya.beforeTags,La.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ya.afterTags,La.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ya.beforeWords,La.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ya.afterWords,La.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const so="Person";var lo={beforeTags:{Honorific:so,Person:so,Preposition:so},afterTags:{Person:so,ProperNoun:so,Verb:so},ownTags:{ProperNoun:so},beforeWords:{hi:so,hey:so,yo:so,dear:so,hello:so},afterWords:{said:so,says:so,told:so,tells:so,feels:so,felt:so,seems:so,thinks:so,thought:so,spends:so,spendt:so,plays:so,played:so,sing:so,sang:so,learn:so,learned:so,wants:so,wanted:so}};const uo="Month",co={beforeTags:{Date:uo,Value:uo},afterTags:{Date:uo,Value:uo},beforeWords:{by:uo,in:uo,on:uo,during:uo,after:uo,before:uo,between:uo,until:uo,til:uo,sometime:uo,of:uo,this:uo,next:uo,last:uo,previous:uo,following:uo},afterWords:{sometime:uo,in:uo,of:uo,until:uo,the:uo}};var ho={beforeTags:Object.assign({},lo.beforeTags,co.beforeTags),afterTags:Object.assign({},lo.afterTags,co.afterTags),beforeWords:Object.assign({},lo.beforeWords,co.beforeWords),afterWords:Object.assign({},lo.afterWords,co.afterWords)};const po={Place:"Place"},mo={Place:"Place",Abbreviation:"Place"},go={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},bo={"Adj|Gerund":Ma,"Adj|Noun":qa,"Adj|Past":Za,"Adj|Present":eo,"Noun|Verb":io,"Noun|Gerund":oo,"Person|Noun":{beforeTags:Object.assign({},La.beforeTags,lo.beforeTags),afterTags:Object.assign({},La.afterTags,lo.afterTags),beforeWords:Object.assign({},La.beforeWords,lo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},La.afterWords,lo.afterWords)},"Person|Date":ho,"Person|Verb":{beforeTags:Object.assign({},lo.beforeTags,Ya.beforeTags),afterTags:Object.assign({},lo.afterTags,Ya.afterTags),beforeWords:Object.assign({},lo.beforeWords,Ya.beforeWords),afterWords:Object.assign({},lo.afterWords,Ya.afterWords)},"Person|Place":{beforeTags:Object.assign({},po,lo.beforeTags),afterTags:Object.assign({},mo,lo.afterTags),beforeWords:Object.assign({},go,lo.beforeWords),afterWords:Object.assign({},fo,lo.afterWords)}},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",jo="PastTense",Eo="Adverb",xo="Plural",No="Actor",Io="Verb",Go="Noun",To="LastName",Co="Modal",Do="Participle";var Oo=[null,null,{ea:Ao,ia:Go,ic:wo,ly:Eo,"'n":Io,"'t":Io},{oed:jo,ued:jo,xed:jo," so":Eo,"'ll":Co,"'re":"Copula",azy:wo,eer:Go,end:Io,ped:jo,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:jo,ken:Do,ven:Do,ten:Do,ect:ko,ict:ko,ign:ko,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:To,cede:ko,chuk:To,czyk:To,ects:Po,ends:Io,enko:To,ette:Ao,wner:Ao,fies:Po,fore:Eo,gate:ko,gone:wo,ices:xo,ints:xo,ruct:ko,ines:xo,ions:xo,less:wo,llen:wo,made:wo,nsen:To,oses:Po,ould:Co,some:wo,sson:To,tion:Ao,tage:Go,ique:Ao,tive:wo,tors:Go,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:ko,ract:ko,duce:ko,pose:ko,eive:ko,lyze:ko,lyse:ko,iant:wo,nary:wo},{elist:Ao,holic:Ao,phite:Ao,tized:jo,urned:jo,eased:jo,ances:xo,bound:wo,ettes:xo,fully:Eo,ishes:Po,ities:xo,marek:To,nssen:To,ology:Go,osome:Ao,tment:Ao,ports:xo,rough:wo,tches:Po,tieth:"Ordinal",tures:xo,wards:Eo,where:Eo,archy:Go,pathy:Go,opoly:Go,embly:Go,phate:Go,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:To,parent:Ao,cedent:Ao,ionary:Ao,cklist:Ao,keeper:No,logist:No,teenth:"Value"},{opoulos:To,borough:"Place",sdottir:To}];const Bo="Adjective",Vo="Noun",zo="Verb";var $o=[null,null,{},{neo:Vo,bio:Vo,"de-":zo,"re-":zo,"un-":zo},{anti:Vo,auto:Vo,faux:Bo,hexa:Vo,kilo:Vo,mono:Vo,nano:Vo,octa:Vo,poly:Vo,semi:Bo,tele:Vo,"pro-":Bo,"mis-":zo,"dis-":zo,"pre-":Bo},{anglo:Vo,centi:Vo,ethno:Vo,ferro:Vo,grand:Vo,hepta:Vo,hydro:Vo,intro:Vo,macro:Vo,micro:Vo,milli:Vo,nitro:Vo,penta:Vo,quasi:Bo,radio:Vo,tetra:Vo,"omni-":Bo,"post-":Bo},{pseudo:Bo,"extra-":Bo,"hyper-":Bo,"inter-":Bo,"intra-":Bo,"deca-":Bo},{electro:Vo}];const Fo="Adjective",So="Infinitive",Ho="PresentTense",Mo="Singular",Jo="PastTense",Lo="Adverb",Wo="Expression",qo="Actor",Ko="Verb",Uo="Noun",Ro="LastName";var Qo={a:[[/.[aeiou]na$/,Uo,"tuna"],[/.[oau][wvl]ska$/,Ro],[/.[^aeiou]ica$/,Mo,"harmonica"],[/^([hyj]a+)+$/,Wo,"haha"]],c:[[/.[^aeiou]ic$/,Fo]],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$/,Mo,"steward"],[/[aeiou][^aeiou]id$/,Fo,""],[/.[vrl]id$/,Fo,"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$/,So,"antagonize"],[/.[^aeiou]ise$/,So,"antagonise"],[/.[aeiou]te$/,So,"bite"],[/.[^aeiou][ai]ble$/,Fo,"fixable"],[/.[^aeiou]eable$/,Fo,"maleable"],[/.[ts]ive$/,Fo,"festive"],[/[a-z]-like$/,Fo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Fo,"cornish"],[/.v[iy]ch$/,Ro,"..ovich"],[/^ug?h+$/,Wo,"ughh"],[/^uh[ -]?oh$/,Wo,"uhoh"],[/[a-z]-ish$/,Fo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ro,"polish-male"]],k:[[/^(k){2}$/,Wo,"kkkk"]],l:[[/.[gl]ial$/,Fo,"familial"],[/.[^aeiou]ful$/,Fo,"fitful"],[/.[nrtumcd]al$/,Fo,"natal"],[/.[^aeiou][ei]al$/,Fo,"familial"]],m:[[/.[^aeiou]ium$/,Mo,"magnesium"],[/[^aeiou]ism$/,Mo,"schism"],[/^[hu]m+$/,Wo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Fo,"republican"],[/[^aeiou]ician$/,qo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Wo,"noooo"],[/^(yo)+$/,Wo,"yoo"],[/^wo{2,}[pt]?$/,Wo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mo],[/[^i]fer$/,So],[/.[^aeiou][ao]pher$/,qo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Fo],[/[aeiou].*ist$/,Fo],[/^[a-z]et$/,Ko]],s:[[/.[^aeiou]ises$/,Ho],[/.[rln]ates$/,Ho],[/.[^z]ens$/,Ko],[/.[lstrn]us$/,Mo],[/.[aeiou]sks$/,Ho],[/.[aeiou]kes$/,Ho],[/[aeiou][^aeiou]is$/,Mo],[/[a-z]'s$/,Uo],[/^yes+$/,Wo]],v:[[/.[^aeiou][ai][kln]ov$/,Ro]],y:[[/.[cts]hy$/,Fo],[/.[st]ty$/,Fo],[/.[tnl]ary$/,Fo],[/.[oe]ry$/,Mo],[/[rdntkbhs]ly$/,Lo],[/.(gg|bb|zz)ly$/,Fo],[/...lly$/,Lo],[/.[gk]y$/,Fo],[/[bszmp]{2}y$/,Fo],[/.[ai]my$/,Fo],[/[ea]{2}zy$/,Fo],[/.[^aeiou]ity$/,Mo]]};const Zo="Verb",_o="Noun";var Yo={leftTags:[["Adjective",_o],["Possessive",_o],["Determiner",_o],["Adverb",Zo],["Pronoun",Zo],["Value",_o],["Ordinal",_o],["Modal",Zo],["Superlative",_o],["Demonym",_o],["Honorific","Person"]],leftWords:[["i",Zo],["first",_o],["it",Zo],["there",Zo],["not",Zo],["because",_o],["if",_o],["but",_o],["who",Zo],["this",_o],["his",_o],["when",_o],["you",Zo],["very","Adjective"],["old",_o],["never",Zo],["before",_o],["a","Singular"],["the",_o],["been",Zo]],rightTags:[["Copula",_o],["PastTense",_o],["Conjunction",_o],["Modal",_o]],rightWords:[["there",Zo],["me",Zo],["man","Adjective"],["only",Zo],["him",Zo],["it",Zo],["were",_o],["took",_o],["himself",Zo],["went",_o],["who",_o],["jr","Person"]]},Xo={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"},ei={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"},ti={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"},ni={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"},ri={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 oi=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},si=/^([0-9]+)/,li=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(si);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(si,"")]}(n[0],n[1])})};var ui=function(e={}){return(e=Object.assign({},e)).rules=li(e.rules),e.rules=ii(e.rules),e.rev&&(e.rev=li(e.rev),e.rev=ii(e.rev)),e.exceptions=li(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ci=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 hi=ui({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"}),di=ui(ni),pi=ui(ei),mi=ui(ti),gi=ci(hi),fi=ci(di),bi=ci(pi),vi=ci(mi),yi=ui(Xo),wi=ui(ri);var ki={fromPast:hi,fromPresent:di,fromGerund:pi,fromParticiple:mi,toPast:gi,toPresent:fi,toGerund:bi,toParticiple:vi,toComparative:yi,toSuperlative:wi,fromComparative:ci(yi),fromSuperlative:ci(wi)},Pi=["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),{}),Ai=[[/([^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,""]],ji=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(Ei[t].forEach(n=>e[n]=t),e),{});var xi=Ei,Ni=function(e){let t=e.substring(e.length-3);if(!0===xi.hasOwnProperty(t))return xi[t];let n=e.substring(e.length-2);return!0===xi.hasOwnProperty(n)?xi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ii={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Gi=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=Ni(e)),Ii.hasOwnProperty(e))c=Ii[e];else if("Participle"===n)c=oi(l,i);else if("PastTense"===n)c=oi(l,r);else if("PresentTense"===n)c=oi(l,a);else{if("Gerund"!==n)return e;c=oi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ti=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:oi(i,n),PresentTense:oi(i,r),Gerund:oi(i,a),FutureTense:"will "+e},u=oi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Ci=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 Di="ically",Oi=new Set(["analyt"+Di,"chem"+Di,"class"+Di,"clin"+Di,"crit"+Di,"ecolog"+Di,"electr"+Di,"empir"+Di,"frant"+Di,"grammat"+Di,"ident"+Di,"ideolog"+Di,"log"+Di,"mag"+Di,"mathemat"+Di,"mechan"+Di,"med"+Di,"method"+Di,"method"+Di,"mus"+Di,"phys"+Di,"phys"+Di,"polit"+Di,"pract"+Di,"rad"+Di,"satir"+Di,"statist"+Di,"techn"+Di,"technolog"+Di,"theoret"+Di,"typ"+Di,"vert"+Di,"whims"+Di]),Bi=[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"}],Vi=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"]),zi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var $i=function(e){return e.endsWith("ly")?Oi.has(e)?e.replace(/ically/,"ical"):Vi.has(e)?null:zi.hasOwnProperty(e)?zi[e]:Ci(e,Bi)||e:null};const Fi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Si={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Hi=function(e){if(Si.hasOwnProperty(e))return Si[e];let t=Ci(e,Fi);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"}],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"},Li=new Set(["terrible","annoying"]),Wi=function(e,t){const n=t.two.models.toSuperlative;return oi(e,n)},qi=function(e,t){const n=t.two.models.toComparative;return oi(e,n)};var Ki={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"]}},Ui={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===Ki.hasOwnProperty(i)&&Ki[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:ji,verbToInfinitive:Gi,getTense:Ni,verbConjugate:Ti,adjToSuperlative:Wi,adjToComparative:qi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return oi(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return oi(e,n)},advToAdjective:$i,adjToAdverb:Hi,adjToNoun:function(e){if(Ji.hasOwnProperty(e))return Ji[e];if(Li.has(e))return null;let t=Ci(e,Mi);return t||e+"ness"}}}},Ri=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 Zi=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 _i={two:{models:ki}};const Yi={"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"},Xi=function(e,t){const n={model:t,methods:Ui};let{lex:r,_multi:a}=Ui.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},es=function(e,t,n){let r=Ti(e,_i);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ts=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Yi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||es(a,r,!1),"Adj|Present"===o&&(es(a,r,!0),function(e,t,n){let r=Wi(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=Gi(a,_i,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Gi(a,_i,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Xi(n,t)};let ns={one:{_multiCache:{},lexicon:Ba},two:{irregularPlurals:wa,models:ki,suffixPatterns:Oo,prefixPatterns:$o,endsWith:Qo,neighbours:Yo,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:Pi}};ns=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=Xi(e.one.lexicon,e)).one.lexicon,e),e=ts(e.two.switches,e),e=Zi(e),e=Ri(e)}(ns);var rs=ns;const as=/^(under|over|mis|re|un|dis|semi)-?/;var os=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])}},is=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 ss={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ls=new Set(["formulas","koalas","israelis","menus"]),us=["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 cs=function(e){if(!e||e.length<=3)return!1;if(ls.has(e))return!0;let t=e[e.length-1];return ss.hasOwnProperty(t)?ss[t].find(t=>e.endsWith(t)):"s"===t&&!us.find(t=>e.endsWith(t))};const hs=["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))||(cs(e.normal)?is(e,"Plural","3-plural-guess"):is(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ni(e.normal);t&&is(e,t,"3-verb-tense-guess")}}(r)};const ps=/^\p{Lu}[\p{Ll}'’]/u,ms=/[0-9]/,gs=["Date","Month","WeekDay","Unit"],fs=/^[IVXLCDM]{2,}$/,bs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,vs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ys=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===ps.test(o)&&!1===ms.test(o)?gs.find(e=>r.tags.has(e))?null:(ds(e,t,n),r.tags.has("Noun")||r.tags.clear(),is(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&fs.test(o)&&bs.test(o)&&!vs[r.normal]?(is(r,"RomanNumeral","2-xvii"),!0):null};const ws=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 ks=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ws(r.normal,n.two.suffixPatterns);if(null!==e)return is(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ws(r.implicit,n.two.suffixPatterns),null!==e))return is(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Ps=/['‘’‛‵′`´]/,As=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 is(r,e,"2-prefix"),r.confidence=.5,!0}return null};const xs=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"]),Ns=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!xs.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Is=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Gs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Ts=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(Ns(a)||Ns(o))return is(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Is(a)||Is(o))return is(n,"Year","2-tagYear-close");if(Gs(e[t-2])||Gs(e[t+2]))return is(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 is(n,"Year","2-tagYear-noun")}}}return null};const Cs=/^[A-Z]('s|,)?$/,Ds=/^[A-Z-]+$/,Os=/([A-Z]\.)+[A-Z]?,?$/,Bs=/[A-Z]{2,}('s|,)?$/,Vs=/([a-z]\.)+[a-z]\.?$/,zs={I:!0,A:!0};var $s=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===Ds.test(n)||n.length>5||zs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Os.test(n)&&!0!==Vs.test(n)&&!0!==Cs.test(n)&&!0!==Bs.test(n))}(r,n)?(r.tags.clear(),is(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!zs.hasOwnProperty(r.text)&&Cs.test(r.text)?(r.tags.clear(),is(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(is(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ds.test(r.text)&&r.text.length<=6?(is(r,"Acronym","3-titlecase-acronym"),!0):null};const Fs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ss=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Hs=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||Fs(e[t-1],a),l=l||Fs(e[t+1],o),l=l||Ss(e[t-1],r),l=l||Ss(e[t+1],i),l)return is(s,l,"3-[neighbour]"),ds(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 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]&&Ms(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ms(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ls=function(e,t,n){0===e[t].tags.size&&(is(e[t],"Noun","3-[fallback]"),ds(e,t,n),e[t].confidence=.1)};const Ws=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,qs=(e,t,n)=>0!==t||e[1]?null:n;var Ks={"Adj|Gerund":(e,t)=>Ws(e,t),"Adj|Noun":(e,t)=>Ws(e,t),"Adj|Past":(e,t)=>Ws(e,t),"Adj|Present":(e,t)=>Ws(e,t),"Noun|Gerund":(e,t)=>Ws(e,t),"Noun|Verb":(e,t)=>Ws(e,t)||qs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ws(e,t)||qs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ws(e,t),"Person|Verb":(e,t)=>0!==t&&Ws(e,t)};const Us="undefined"!=typeof process&&process.env?process.env:self.env||{},Rs=/^(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&&Us.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Zs=(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&&Us.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},_s={tagSwitch:os,checkSuffix:ks,checkRegex:js,checkCase:ys,checkPrefix:Es,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")&&(is(o,"Verb","3-[prefix]"),is(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(is(o,"Adjective","3-[prefix]"),is(o,"Prefix","3-[prefix]")))},checkYear:Ts},Ys={checkAcronym:$s,neighbours:Hs,orgWords:Js,nounFallback:Ls,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(Rs.test(l)&&!o[l]&&(l=l.replace(Rs,"")),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||Zs(e[t-1],n.beforeTags,a),o=o||Zs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ks[o]&&(u=Ks[o](e,t)||u),u?(Us.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):Us.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Xs=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)},nl={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 rl={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 ml=/'/;var gl=function(e,t){let n=e[t].normal.split(ml)[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 fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[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"]},vl=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 yl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},wl={in:!0,by:!0,for:!0};var kl=(e,t)=>{let n=e[t];if(yl.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===wl[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 Pl=/'/,Al=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)},jl={d:(e,t)=>bl(e,t),t:(e,t)=>vl(e,t),s:(e,t,n)=>kl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):gl(e,t)},El=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var xl={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===Pl.test(r[o].normal)&&([,i]=r[o].normal.split(Pl));let s=null;jl.hasOwnProperty(i)&&(s=jl[i](r,o,t)),s&&(s=El(s,e),pl(n,[a,o],s),Al(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=hl},hooks:["contractionTwo"]};const Nl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Il=["i","we","they"];let Gl=[].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:"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)",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:Nl+" #Person",tag:"Person",reason:"randy-smith"},{match:Nl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Nl}]`,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:Il,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:Il,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Il,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"}]),Tl=null;var Cl={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;Tl=Tl||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(Tl),e.uncache(),e}},model:{two:{matches:Gl}},hooks:["postTagger"]},Dl=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)},Ol=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Dl(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},Bl={api:function(e){e.prototype.swap=Ol}};m.plugin(ll),m.plugin(xl),m.plugin(Cl),m.plugin(Bl);var Vl=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},zl=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 $l={this:"Noun",then:"Pivot"};var Fl=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))})},Kl={compute:{chunks:function(e){const{document:t,world:n}=e;Fl(t),Sl(t),Jl(e,t,n),Wl(t),ql(t)}},api:function(e){e.prototype.chunks=zl,e.prototype.clauses=Vl},hooks:["chunks"]};const Ul=/'s$/;var Rl=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(Ul,""),e.normal=e.normal.replace(Ul,"")})}),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=/\(/,Zl=/\)/,_l=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Ql,"");let t=e[e.length-1];t.post=t.post.replace(Zl,"")}),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 Xl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},eu=RegExp("("+Object.keys(Xl).join("|")+")"),tu=RegExp("("+Object.values(Xl).join("|")+")"),nu=function(e,t){const n=e[t].pre.match(eu)[0]||"";if(!n||!Xl[n])return null;const r=Xl[n];for(;t{e[0].pre=e[0].pre.replace(eu,"");let t=e[e.length-1];t.post=t.post.replace(tu,"")})}(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 au=/\./g;var ou=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(au,""),e.normal=e.normal.replace(au,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(au,""),e.normal=e.normal.replace(au,""),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)}},iu=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 su=(e,t)=>"number"==typeof t?e.eq(t):e,lu=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 uu=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=lu(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 su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=su(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=su(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=su(t,e),new Adjectives(t.document,t.pointer)}};const cu=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},hu=[["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 du=[["emojis","emoji"],["atmentions","atMentions"]];var pu=function(e){hu.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=cu,du.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},mu={api:function(e){pu(e),Rl(e),Yl(e),ru(e),uu(e),iu(e),ou(e)}};const gu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var fu={case:e=>{gu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;gu(e,e=>e.text=n(e.text,t))},whitespace:e=>{gu(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=>{gu(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 bu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),vu="unicode|punctuation|whitespace|acronyms",yu="|case|contractions|parentheses|quotations|emoji|honorifics",wu={light:bu(vu),medium:bu(vu+yu),heavy:bu(vu+yu+"|possessives|adverbs|nouns|verbs")};var ku={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=wu[e]),Object.keys(e).forEach(t=>{fu.hasOwnProperty(t)&&fu[t](this,e[t])}),this}}},Pu=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 Au=["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 ju=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")},xu=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:Eu(e,t),isSubordinate:ju(e),root:t}};const Nu=e=>e.text(),Iu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Gu=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Tu=function(e){let t=xu(e);return{root:Nu(t.root),number:Gu(t.number),determiner:Nu(t.determiner),adjectives:Iu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Cu={tags:!0};var Du=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,Cu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Cu),e};const Ou={tags:!0};var Bu=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,Ou).tag("Singular","toPlural"),e};const Vu=(e,t)=>"number"==typeof t?e.eq(t):e;var zu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Vu(this,e).map(xu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Tu(t)),n},[])}isPlural(e){let t=this.filter(e=>xu(e).isPlural);return Vu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=xu(e).adjectives;n.found&&(t=t.concat(n))}),Vu(t,e)}toPlural(e){return Vu(this,e).map(e=>Du(e,xu(e)))}toSingular(e){return Vu(this,e).map(e=>{let t=xu(e);return Bu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Pu(this);return t=Vu(t,e),new Nouns(this.document,t.pointer)}}},$u=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},Fu=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(Su.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Su.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Su.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Mu=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 Lu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Wu={"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 Ku=function(e){if(!0===Wu.hasOwnProperty(e))return Wu[e];if("a"===e||"an"===e)return 1;const t=Fu(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=Ru(n),r=Ru(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:Ru(n);let a=r.text("reduced");return Uu.test(a)&&(a=a.replace(Uu,""),r=r.replaceWith(a)),r=Qu.hasOwnProperty(a)?Qu[a]:Ru(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:Ru(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},_u=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 Yu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Xu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],ec=[[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"]],tc=function(e){let t=[];if(e>100)return t;for(let n=0;n=Yu[n][1]&&(e-=Yu[n][1],t.push(Yu[n][0]));return Xu[e]&&t.push(Xu[e]),t};var nc=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=_u(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return ec.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(tc(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=_u(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(" ")},rc=function(e){return e.numerator&&e.denominator?`${nc({num:e.numerator})} out of ${nc({num:e.denominator})}`:""};const ac={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 oc=e=>{let t=nc(e).split(" "),n=t[t.length-1];return ac.hasOwnProperty(n)?t[t.length-1]=ac[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},ic=function(e){if(!e.numerator||!e.denominator)return"";let t=nc({num:e.numerator}),n=oc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const sc=(e,t)=>"number"==typeof t?e.eq(t):e;var lc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return sc(this,e).map(Zu)}get(e){return sc(this,e).map(Zu)}json(e){return sc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Zu(t);return n.fraction=r,n},[])}toDecimal(e){return sc(this,e).forEach(e=>{let{decimal:t}=Zu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return sc(this,e).forEach(e=>{let t=Zu(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 sc(this,e).forEach(e=>{let t=Zu(e),n=ic(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return sc(this,e).forEach(e=>{let t=Zu(e),n=rc(t);e.replaceWith(n)}),this}toPercentage(e){return sc(this,e).forEach(e=>{let{decimal:t}=Zu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=$u(this);return t=sc(t,e),new Fractions(this.document,t.pointer)}};const uc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var cc=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("("+uc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+uc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+uc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+uc+")"));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) (${uc})`),r=e.has("("+uc+") #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("("+uc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+uc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},hc=function(e){if("string"==typeof e)return{num:Ku(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=Zu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Ku(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")}},dc=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=_u(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const pc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},mc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var gc=function(e){let t={suffix:"",prefix:e.prefix};return pc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+pc[e.prefix],t.prefix=""),mc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+mc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},fc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=gc(e);return t+oc(e)+n}if("Ordinal"===t)return e.prefix+dc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=gc(e);return t+nc(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const bc=(e,t)=>"number"==typeof t?e.eq(t):e;var vc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return bc(this,e).map(hc)}get(e){return bc(this,e).map(hc).map(e=>e.num)}json(e){return bc(this,e).map(t=>{let n=t.toView().json(e)[0],r=hc(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=hc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=fc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=hc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=fc(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=>hc(t).num===e)}greaterThan(e){return this.filter(t=>hc(t).num>e)}lessThan(e){return this.filter(t=>hc(t).num{let r=hc(n).num;return r>e&&r{let n=hc(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=fc(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=hc(e).num);let t=this.map(t=>{let n=hc(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=fc(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=cc(this);return t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=cc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=cc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},yc={api:function(e){lc(e),vc(e)}};const wc={people:!0,emails:!0,phoneNumbers:!0,places:!0},kc=function(e={}){return!1!==(e=Object.assign({},wc,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 Pc={api:function(e){e.prototype.redact=kc}},Ac=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))})},jc=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))))))},Ec=function(e){let t=e.clauses(),n=jc(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}},xc=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},Nc=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},Ic=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},Gc=function(e){return e.verbs().toInfinitive(),e};const Tc=(e,t)=>"number"==typeof t?e.eq(t):e;var Cc={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}=Ec(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Tc(this,e).map(e=>(Ec(e),xc(e)))}toPresentTense(e){return Tc(this,e).map(e=>(Ec(e),Nc(e)))}toFutureTense(e){return Tc(this,e).map(e=>(Ec(e),e=Ic(e)))}toInfinitive(e){return Tc(this,e).map(e=>(Ec(e),Gc(e)))}toNegative(e){return Tc(this,e).map(e=>(Ec(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Tc(this,e).map(e=>(Ec(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 Tc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Tc(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=Tc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Ac(this);return Tc(t,e)}};Object.assign(e.prototype,t)}},Dc=function(e){return e.match("#Honorific+? #Person+")},Oc=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 Bc="male",Vc="female",zc={mr:Bc,mrs:Vc,miss:Vc,madam:Vc,king:Bc,queen:Vc,duke:Bc,duchess:Vc,baron:Bc,baroness:Vc,count:Bc,countess:Vc,prince:Bc,princess:Vc,sire:Bc,dame:Vc,lady:Vc,ayatullah:Bc,congressman:Bc,congresswoman:Vc,"first lady":Vc,mx:null};var $c=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Vc;if(n.has("#MaleName"))return Bc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),zc.hasOwnProperty(e))return zc[e];if(/^her /.test(e))return Vc;if(/^his /.test(e))return Bc}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 Bc;if(n&&!t)return Vc}return null};const Fc=(e,t)=>"number"==typeof t?e.eq(t):e;var Sc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Fc(this,e).map(Oc)}json(e){return Fc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Oc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:$c(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=Dc(this);return t=Fc(t,e),new People(this.document,t.pointer)}},Hc=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},Mc=function(e){e.prototype.places=function(t){let n=Hc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Jc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Lc=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 Wc=function(e){e.prototype.topics=Lc},qc={api:function(e){Sc(e),Mc(e),Jc(e),Wc(e)}},Kc=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},Uc=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},Rc=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},Zc=function(e){return e.match("#Negative")},_c=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Yc=function(e){let t=e.clone();t.contractions().expand();const n=Uc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Rc(t,n),auxiliary:Qc(t,n),negative:Zc(t),phrasal:_c(n)}};const Xc={tense:"PresentTense"},eh={conditional:!0},th={tense:"FutureTense"},nh={progressive:!0},rh={tense:"PastTense"},ah={complete:!0,progressive:!1},oh={passive:!0},ih=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},sh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Xc]],["^wanted to #Infinitive$",[rh]],["^will want to #Infinitive$",[th]]],"gerund-phrase":[["^#PastTense #Gerund$",[rh]],["^#PresentTense #Gerund$",[Xc]],["^#Infinitive #Gerund$",[Xc]],["^will #Infinitive #Gerund$",[th]],["^have #PastTense #Gerund$",[rh]],["^will have #PastTense #Gerund$",[rh]]],"simple-present":[["^#PresentTense$",[Xc]],["^#Infinitive$",[Xc]]],"simple-past":[["^#PastTense$",[rh]]],"simple-future":[["^will #Adverb? #Infinitive",[th]]],"present-progressive":[["^(is|are|am) #Gerund$",[Xc,nh]]],"past-progressive":[["^(was|were) #Gerund$",[rh,nh]]],"future-progressive":[["^will be #Gerund$",[th,nh]]],"present-perfect":[["^(has|have) #PastTense$",[rh,ah]]],"past-perfect":[["^had #PastTense$",[rh,ah]],["^had #PastTense to #Infinitive",[rh,ah]]],"future-perfect":[["^will have #PastTense$",[th,ah]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[rh,nh]]],"past-perfect-progressive":[["^had been #Gerund$",[rh,nh]]],"future-perfect-progressive":[["^will have been #Gerund$",[th,nh]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[rh,oh]],["^(was|were) being (#PastTense|#Participle)",[rh,oh]],["^(had|have) been (#PastTense|#Participle)",[rh,oh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Xc,oh]],["^(is|are|am) being (#PastTense|#Participle)",[Xc,oh]],["^has been (#PastTense|#Participle)",[Xc,oh]]],"passive-future":[["will have been (#PastTense|#Participle)",[th,oh,eh]],["will be being? (#PastTense|#Participle)",[th,oh,eh]]],"present-conditional":[["would be #PastTense",[Xc,eh]]],"past-conditional":[["would have been #PastTense",[rh,eh]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[th]]],"auxiliary-past":[["^did #Infinitive$",[rh,{plural:!1}]],["^used to #Infinitive$",[rh,ah]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Xc,ah,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[rh]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let lh=[];Object.keys(sh).map(e=>{sh[e].forEach(t=>{lh.push({name:e,match:t[0],data:ih(t[1])})})});var uh=lh,ch=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(),hh(r)&&(n.remove(r),r=n.last()),hh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:dh(t,e)}};const mh=e=>e,gh=(e,t)=>{let n=ph(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},fh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=ph(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},bh=function(e,t){let n=ph(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},vh=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},yh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,vh(e)),r&&e.replace(t.root,r),e},wh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),kh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Ph=function(e){return e&&e.isView?e.text("normal"):""},Ah=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,vh(e))};var jh=function(e){let t=Yc(e);e=e.clone().toView();const n=ch(e,t);return{root:t.root.text(),preAdverbs:kh(t.adverbs.pre),postAdverbs:kh(t.adverbs.post),auxiliary:Ph(t.auxiliary),negative:t.negative.found,prefix:Ph(t.prefix),infinitive:Ah(t.root),grammar:n}};const Eh={tags:!0};var xh=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,vh(r)),i&&e.replace(r,i,Eh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=bh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Nh={tags:!0},Ih={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,vh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=ph(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Nh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ih.simple(e,t),e=Ih.noAux(e,t))},hasHad:e=>(e.replace("has","had",Nh),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,vh(a)),n(o,e.model).Participle}},Gh={infinitive:Ih.simple,"simple-present":Ih.simple,"simple-past":mh,"simple-future":Ih.both,"present-progressive":e=>(e.replace("are","were",Nh),e.replace("(is|are|am)","was",Nh),e),"past-progressive":mh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ih.hasHad,"past-perfect":mh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=wh(e)),e.remove("have"),e),"present-perfect-progressive":Ih.hasHad,"past-perfect-progressive":mh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Nh),e),"passive-past":e=>(e.replace("have","had",Nh),e),"passive-present":e=>(e.replace("(is|are)","was",Nh),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",Nh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":mh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Nh),e),"auxiliary-past":mh,"auxiliary-present":e=>(e.replace("(do|does)","did",Nh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Nh):(Ih.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":mh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Nh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ih.simple(e,t),wh(e),e)};var Th=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},Dh=(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,vh(a)),!1===gh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=fh(e)),o&&(e=e.replace(a,o,Ch)).not("#Particle").tag("PresentTense"),e},Oh=(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,vh(a)),!1===gh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Ch)).not("#Particle").tag("Gerund"),e},Bh={infinitive:Dh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Dh(e,t);{let t=ph(e).subject;if(gh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Ch)}return e},"simple-past":Dh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=fh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Dh(e,t),e=e.remove("will");return e},"present-progressive":mh,"past-progressive":(e,t)=>{let n=fh(e);return e.replace("(were|was)",n,Ch)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Dh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=ph(e).subject;return gh(e)||n.has("i")?((e=yh(e,t)).remove("had"),e):(e.replace("had","has",Ch),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":mh,"past-perfect-progressive":e=>e.replace("had","has",Ch),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=fh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Ch),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":mh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":mh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Oh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=bh(e);return e.replace(t.auxiliary,n),e}return Oh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":mh,"modal-infinitive":mh,"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,vh(r)),a&&(e=e.replace(t.root,a,Ch))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Dh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return gh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Ch),e.remove("will"),e}};var Vh=function(e,t,n){return Bh.hasOwnProperty(n)?((e=Bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const zh={tags:!0},$h=(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,vh(r)),o&&(e=e.replace(r,o,zh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Fh=(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,vh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,zh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Sh={infinitive:$h,"simple-present":$h,"simple-past":$h,"simple-future":mh,"present-progressive":Fh,"past-progressive":Fh,"future-progressive":mh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":mh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":mh,"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":mh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":mh,"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":mh,"modal-past":mh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),$h(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Hh=function(e,t,n){return e.has("will")||e.has("going to")?e:Sh.hasOwnProperty(n)?((e=Sh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Mh={tags:!0};var Jh=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,vh(a));let s=r(i,e.model).Gerund;return s&&(s=`${fh(e)} ${s}`,e.replace(a,s,Mh)),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 Lh={tags:!0},Wh=function(e,t){let n=bh(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)},Kh=e=>e.has("(is|was|am|are|will|were|be)"),Uh={"simple-present":(e,t)=>!0===Kh(e)?qh(e):(e=yh(e,t),e=Wh(e)),"simple-past":(e,t)=>!0===Kh(e)?qh(e):((e=yh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Kh(e)?qh(e):Wh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Lh),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=Wh(e)).replace("wants","want",Lh)};var Rh=function(e,t,n){if(e.has("#Negative"))return e;if(Uh.hasOwnProperty(n))return e=Uh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Kh(e)?qh(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 Zh={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(Yc)}json(e,t){return Qh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=jh(t),n},[])}subjects(e){return Qh(this,e).map(e=>(Yc(e),ph(e).subject))}adverbs(e){return Qh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Qh(this,e).filter(e=>!0!==ph(e).plural)}isPlural(e){return Qh(this,e).filter(e=>!0===ph(e).plural)}isImperative(e){return Qh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return xh(e,t,n.form)})}toPresentTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Vh(e,t,n.form)})}toPastTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Th(e,t,n.form)})}toFutureTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Hh(e,t,n.form)})}toGerund(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Jh(e,t,n.form)})}conjugate(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:xh(e.clone(),t,n.form).text("normal"),PastTense:Th(e.clone(),t,n.form).text("normal"),PresentTense:Vh(e.clone(),t,n.form).text("normal"),FutureTense:Hh(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=Yc(e),n=ch(e,t);return Rh(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=Kc(this);return t=Qh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Kl),m.plugin(mu),m.plugin(ku),m.plugin(zu),m.plugin(yc),m.plugin(Pc),m.plugin(Cc),m.plugin(qc),m.plugin(Zh),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 02a3a53ad..cb065b9cd 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.0";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.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(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},C.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 D=C;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;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 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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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 Ge={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 Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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 Tt=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 Ct=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 Dt=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 Bt=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]&&Ct(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(!Dt(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 Vt=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(!Tt(a))return null}if(!0!==e.optional)return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Gt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&_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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var bn=function(e,t){let n=vn(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 yn={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:vn,splitAll:bn}}};var wn=function(e,t){let n=e.concat(t),r=vn(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=>fn(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 Pn=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},jn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Nn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=jn(e,this.document),this.update(e)};var En={methods:yn,api:function(e){Object.assign(e.prototype,Nn)}};var xn=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};function In(e,t,n){return e.splice(t,1,...n),e}const Gn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Tn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Cn=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=>Tn(e.regs[n],t)),a.regs=In(a.regs,n,r),t.push(a)})}}t.push(e)}),t};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 On=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=Dn(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Dn(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Bn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t};var Vn=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 zn=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 $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};var Fn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=xn(e,t),e=Cn(e);let n=(e=On(e)).filter(e=>0===e.needs.length),r=Bn(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=Vn(a,t.index);return o=zn(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&&Fn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Sn(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 Mn=/ /,Jn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Ln=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Mn.test(t))!function(e,t,n,r){let a=t.split(Mn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Ln(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nWn(e,t,n,r))};var qn=Wn;var Kn=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=>Un({id:e})),t}return[Un({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},_n=e=>"[object Array]"===Object.prototype.toString.call(e),Yn=e=>(e=e||"").trim(),Xn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Rn.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=Un({});return e.forEach(e=>{if((e=Un(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(Un),t);var t},er=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},tr=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},nr={text:er,txt:er,array:tr,flat:tr},rr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(er(e,!0)),null):nr.hasOwnProperty(t)?nr[t](e):e},ar=e=>{Zn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},or=/\//;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=Yn(e),!or.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)||Un({});return new g$1(t)}add(e,t={}){if(_n(e))return e.forEach(e=>this.add(Yn(e),t)),this;e=Yn(e);let n=Un({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Yn(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 _n(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ar(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 ar(this.json),rr(this.json,e)}debug(){return ar(this.json),rr(this.json,"debug"),this}}const ir=function(e){let t=Xn(e);return new g$1(t)};ir.prototype.plugin=function(e){e(this)};var sr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const lr=function(e){if(sr.hasOwnProperty(e.id))return sr[e.id];if(sr.hasOwnProperty(e.is))return sr[e.is];let t=e._cache.parents.find(e=>sr[e]);return sr[t]};var ur=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:lr(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 cr=function(e){return e?"string"==typeof e?[e]:e:[]};var hr=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=cr(e[t].children),e[t].not=cr(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 dr={one:{setTag:qn,unTag:Kn,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=hr(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 ir(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ur(n)}}};const pr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var mr={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 gr=function(e){Object.assign(e.prototype,mr)};var fr={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 vr=new Set(["Auxiliary","Possessive"]);var br={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(vr.has(e)||!t.hasOwnProperty(n))return 1;if(vr.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:dr,api:gr,lib:fr};const yr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,wr=/((?:\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.0";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.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(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},C.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 D=C;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;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 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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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 Ge={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 Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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 Tt=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 Ct=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 Dt=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 Bt=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]&&Ct(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(!Dt(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 Vt=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(!Tt(a))return null}if(!0!==e.optional)return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Gt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&_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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var bn=function(e,t){let n=vn(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 yn={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:vn,splitAll:bn}}};var wn=function(e,t){let n=e.concat(t),r=vn(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=>fn(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 Pn=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},jn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Nn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=jn(e,this.document),this.update(e)};var En={methods:yn,api:function(e){Object.assign(e.prototype,Nn)}};var xn=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};function In(e,t,n){return e.splice(t,1,...n),e}const Gn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Tn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Cn=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=>Tn(e.regs[n],t)),a.regs=In(a.regs,n,r),t.push(a)})}}t.push(e)}),t};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 On=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=Dn(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Dn(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Bn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t};var Vn=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 zn=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 $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};var Fn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=xn(e,t),e=Cn(e);let n=(e=On(e)).filter(e=>0===e.needs.length);return{index:Bn(e),always:n}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Vn(a,t.index);return o=zn(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&&Fn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Sn(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 Mn=/ /,Jn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Ln=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Mn.test(t))!function(e,t,n,r){let a=t.split(Mn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Ln(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nWn(e,t,n,r))};var qn=Wn;var Kn=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=>Un({id:e})),t}return[Un({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},_n=e=>"[object Array]"===Object.prototype.toString.call(e),Yn=e=>(e=e||"").trim(),Xn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Rn.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=Un({});return e.forEach(e=>{if((e=Un(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(Un),t);var t},er=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},tr=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},nr={text:er,txt:er,array:tr,flat:tr},rr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(er(e,!0)),null):nr.hasOwnProperty(t)?nr[t](e):e},ar=e=>{Zn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},or=/\//;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=Yn(e),!or.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)||Un({});return new g$1(t)}add(e,t={}){if(_n(e))return e.forEach(e=>this.add(Yn(e),t)),this;e=Yn(e);let n=Un({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Yn(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 _n(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ar(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 ar(this.json),rr(this.json,e)}debug(){return ar(this.json),rr(this.json,"debug"),this}}const ir=function(e){let t=Xn(e);return new g$1(t)};ir.prototype.plugin=function(e){e(this)};var sr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const lr=function(e){if(sr.hasOwnProperty(e.id))return sr[e.id];if(sr.hasOwnProperty(e.is))return sr[e.is];let t=e._cache.parents.find(e=>sr[e]);return sr[t]};var ur=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:lr(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 cr=function(e){return e?"string"==typeof e?[e]:e:[]};var hr=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=cr(e[t].children),e[t].not=cr(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 dr={one:{setTag:qn,unTag:Kn,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=hr(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 ir(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ur(n)}}};const pr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var mr={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 gr=function(e){Object.assign(e.prototype,mr)};var fr={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 vr=new Set(["Auxiliary","Possessive"]);var br={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(vr.has(e)||!t.hasOwnProperty(n))return 1;if(vr.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:dr,api:gr,lib:fr};const yr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,wr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var kr=function(e){let t=[],n=e.split(wr);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 Sr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Hr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Mr=/['’]/,Jr=/^[a-z]\.([a-z]\.)+/i,Lr=/^[-+.][0-9]/,Wr=/^'[0-9]{2}/;var qr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Sr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Lr.test(e)?"'"===n&&Wr.test(e)?(n="",t):"":(n="",t)))).replace(Hr,a=>(r=a,Mr.test(a)&&/[sn]['’]$/.test(t)&&!1===Mr.test(n)?(r=r.replace(Mr,""),"'"):!0===Jr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Kr=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 Ur=/([A-Z]\.)+[A-Z]?,?$/,Rr=/^[A-Z]\.,?$/,Qr=/[A-Z]{2,}('s|,)?$/,Zr=/([a-z]\.)+[a-z]\.?$/;var _r=function(e){return function(e){return!0===Ur.test(e)||!0===Zr.test(e)||!0===Rr.test(e)||!0===Qr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Yr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Kr(r),r=n(r,t),r=_r(r),e.normal=r};var Xr={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($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=Br(n),n=Dr(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=>{Yr(e,t)}),n})}}}};var ea={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ta={},na={};[[["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=>{ta[t]=!0,na[t]="Abbreviation",void 0!==e[1]&&(na[t]=[na[t],e[1]])})});var ra=["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:"ŹźŻżŽžƵƶȤȥɀΖ"},oa={};Object.keys(aa).forEach((function(e){aa[e].split("").forEach((function(t){oa[t]=e}))}));const ia=/\//,sa=/[a-z]\.[a-z]/i,la=/[0-9]/;var ua=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])),ia.test(n)&&!sa.test(n)&&!la.test(n)){let t=n.split(ia);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ca=/^\p{Letter}+-\p{Letter}+$/u;var ha=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"),ca.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var da=function(e){let t=0,n=0,r=e.document;for(let e=0;epa(e,ua),machine:e=>pa(e,ha),normal:e=>pa(e,Yr),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 va={safe:!0,min:3};var ba={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ga},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},va,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=fa(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(gn),m.extend(St),m.extend(En),m.extend(br),m.plugin(ve),m.extend(ma),m.plugin(f),m.extend(Ge),m.extend(ba),m.extend(Pe),m.extend(Hn);var ya={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"},wa={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ka="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Pa=ka.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Aa=function(e){if(void 0!==Pa[e])return Pa[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 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=Ea(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=xa(wa[e]);Ca.test(e)?Object.keys(t).forEach(t=>{if(Oa[t]=e,"Noun|Verb"===e){let e=Ta(t,Ba);Oa[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Da[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Da[e]="Emoticon"),delete Da[""],delete Da.null,delete Da[" "];const Va="Adjective";var za={beforeTags:{Determiner:Va,Possessive:Va},afterTags:{Adjective:Va},beforeWords:{seem:Va,seemed:Va,seems:Va,feel:Va,feels:Va,felt:Va,appear:Va,appears:Va,appeared:Va,also:Va,over:Va,under:Va,too:Va,it:Va,but:Va,still:Va,really:Va,quite:Va,well:Va,very:Va,deeply:Va,profoundly:Va,extremely:Va,so:Va,badly:Va,mostly:Va,totally:Va,awfully:Va,rather:Va,nothing:Va,something:Va,anything:Va},afterWords:{too:Va,also:Va,or:Va}};const $a="Gerund";var Fa={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 Sa={beforeTags:Object.assign({},za.beforeTags,Fa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},za.afterTags,Fa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},za.beforeWords,Fa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},za.afterWords,Fa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ha="Singular";var Ma={beforeTags:{Determiner:Ha,Possessive:Ha,Acronym:Ha,Noun:Ha,Adjective:Ha,PresentTense:Ha,Gerund:Ha,PastTense:Ha,Infinitive:Ha,Date:Ha},afterTags:{Value:Ha,Modal:Ha,Copula:Ha,PresentTense:Ha,PastTense:Ha,Demonym:Ha},beforeWords:{the:Ha,with:Ha,without:Ha,of:Ha,for:Ha,any:Ha,all:Ha,on:Ha,cut:Ha,cuts:Ha,save:Ha,saved:Ha,saves:Ha,make:Ha,makes:Ha,made:Ha,minus:Ha,plus:Ha,than:Ha,another:Ha,versus:Ha,neither:Ha,favorite:Ha,best:Ha,daily:Ha,weekly:Ha,linear:Ha,binary:Ha,mobile:Ha,lexical:Ha,technical:Ha,computer:Ha,scientific:Ha,formal:Ha},afterWords:{of:Ha,system:Ha,aid:Ha,method:Ha,utility:Ha,tool:Ha,reform:Ha,therapy:Ha,philosophy:Ha,room:Ha,authority:Ha,says:Ha,said:Ha,wants:Ha,wanted:Ha}};const Ja={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var La={beforeTags:Object.assign({},za.beforeTags,Ma.beforeTags,Ja.beforeTags),afterTags:Object.assign({},za.afterTags,Ma.afterTags),beforeWords:Object.assign({},za.beforeWords,Ma.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},za.afterWords,Ma.afterWords)};const Wa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},qa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ka={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ua={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ra={beforeTags:Object.assign({},za.beforeTags,Wa),afterTags:Object.assign({},za.afterTags,qa),beforeWords:Object.assign({},za.beforeWords,Ka),afterWords:Object.assign({},za.afterWords,Ua)};const Qa="Infinitive";var Za={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,when:Qa,all:Qa,to:Qa,because:Qa,although:Qa,before:Qa,how:Qa,otherwise:Qa,though:Qa,yet:Qa}};const _a={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ya={beforeTags:Object.assign({},za.beforeTags,Za.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},za.afterTags,Za.afterTags,_a.afterTags),beforeWords:Object.assign({},za.beforeWords,Za.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},za.afterWords,Za.afterWords,{to:void 0})};const Xa={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},eo={},to={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},no={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ro={beforeTags:Object.assign({},Fa.beforeTags,Ma.beforeTags,Xa),afterTags:Object.assign({},Fa.afterTags,Ma.afterTags,eo),beforeWords:Object.assign({},Fa.beforeWords,Ma.beforeWords,to),afterWords:Object.assign({},Fa.afterWords,Ma.afterWords,no)};var ao={beforeTags:Object.assign({},Za.beforeTags,Ma.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Za.afterTags,Ma.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Za.beforeWords,Ma.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Za.afterWords,Ma.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oo="Person";var io={beforeTags:{Honorific:oo,Person:oo,Preposition:oo},afterTags:{Person:oo,ProperNoun:oo,Verb:oo},ownTags:{ProperNoun:oo},beforeWords:{hi:oo,hey:oo,yo:oo,dear:oo,hello:oo},afterWords:{said:oo,says:oo,told:oo,tells:oo,feels:oo,felt:oo,seems:oo,thinks:oo,thought:oo,spends:oo,spendt:oo,plays:oo,played:oo,sing:oo,sang:oo,learn:oo,learned:oo,wants:oo,wanted:oo}};const so="Month",lo={beforeTags:{Date:so,Value:so},afterTags:{Date:so,Value:so},beforeWords:{by:so,in:so,on:so,during:so,after:so,before:so,between:so,until:so,til:so,sometime:so,of:so,this:so,next:so,last:so,previous:so,following:so},afterWords:{sometime:so,in:so,of:so,until:so,the:so}};var uo={beforeTags:Object.assign({},io.beforeTags,lo.beforeTags),afterTags:Object.assign({},io.afterTags,lo.afterTags),beforeWords:Object.assign({},io.beforeWords,lo.beforeWords),afterWords:Object.assign({},io.afterWords,lo.afterWords)};const co={Place:"Place"},ho={Place:"Place",Abbreviation:"Place"},po={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},mo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const go={"Adj|Gerund":Sa,"Adj|Noun":La,"Adj|Past":Ra,"Adj|Present":Ya,"Noun|Verb":ao,"Noun|Gerund":ro,"Person|Noun":{beforeTags:Object.assign({},Ma.beforeTags,io.beforeTags),afterTags:Object.assign({},Ma.afterTags,io.afterTags),beforeWords:Object.assign({},Ma.beforeWords,io.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ma.afterWords,io.afterWords)},"Person|Date":uo,"Person|Verb":{beforeTags:Object.assign({},io.beforeTags,Za.beforeTags),afterTags:Object.assign({},io.afterTags,Za.afterTags),beforeWords:Object.assign({},io.beforeWords,Za.beforeWords),afterWords:Object.assign({},io.afterWords,Za.afterWords)},"Person|Place":{beforeTags:Object.assign({},co,io.beforeTags),afterTags:Object.assign({},ho,io.afterTags),beforeWords:Object.assign({},po,io.beforeWords),afterWords:Object.assign({},mo,io.afterWords)}},fo=(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:fo(go["Noun|Verb"].beforeWords,{}),afterWords:fo(go["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:fo(go["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:fo(go["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var vo=go;const bo="Adjective",yo="Infinitive",wo="PresentTense",ko="Singular",Po="PastTense",Ao="Adverb",jo="Plural",No="Verb",Eo="LastName",xo="Participle";var Io=[null,null,{ea:ko,ia:"Noun",ic:bo,ly:Ao,"'n":No,"'t":No},{oed:Po,ued:Po,xed:Po," so":Ao,"'ll":"Modal","'re":"Copula",azy:bo,eer:"Noun",end:No,ped:Po,ffy:bo,ify:yo,ing:"Gerund",ize:yo,ibe:yo,lar:bo,mum:bo,nes:wo,nny:bo,ous:bo,que:bo,rol:ko,sis:ko,ogy:ko,oid:ko,ian:ko,zes:wo,eld:Po,ken:xo,ven:xo,ten:xo,ect:yo,ict:yo,ign:yo,ful:bo,bal:bo},{amed:Po,aped:Po,ched:Po,lked:Po,rked:Po,reed:Po,nded:Po,mned:bo,cted:Po,dged:Po,ield:ko,akis:Eo,cede:yo,chuk:Eo,czyk:Eo,ects:wo,ends:No,enko:Eo,ette:ko,wner:ko,fies:wo,fore:Ao,gate:yo,gone:bo,ices:jo,ints:jo,ruct:yo,ines:jo,ions:jo,less:bo,llen:bo,made:bo,nsen:Eo,oses:wo,ould:"Modal",some:bo,sson:Eo,tion:ko,tage:"Noun",ique:ko,tive:bo,tors:"Noun",vice:ko,lier:ko,fier:ko,wned:Po,gent:ko,tist:ko,pist:ko,rist:ko,mist:ko,yist:ko,vist:ko,lite:ko,site:ko,rite:ko,mite:ko,bite:ko,mate:ko,date:ko,ndal:ko,vent:ko,uist:ko,gist:ko,note:ko,cide:ko,wide:bo,vide:yo,ract:yo,duce:yo,pose:yo,eive:yo,lyze:yo,lyse:yo,iant:bo,nary:bo},{elist:ko,holic:ko,phite:ko,tized:Po,urned:Po,eased:Po,ances:jo,bound:bo,ettes:jo,fully:Ao,ishes:wo,ities:jo,marek:Eo,nssen:Eo,ology:"Noun",osome:ko,tment:ko,ports:jo,rough:bo,tches:wo,tieth:"Ordinal",tures:jo,wards:Ao,where:Ao,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:ko,scent:ko,onist:ko,anist:ko,alist:ko,olist:ko,icist:ko,ounce:yo,iable:bo,borne:bo,gnant:bo,inant:bo,igent:bo,atory:bo,rient:ko,dient:ko},{auskas:Eo,parent:ko,cedent:ko,ionary:ko,cklist:ko,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const Go="Adjective";var To=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Go,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Go,tele:"Noun","pro-":Go,"mis-":"Verb","dis-":"Verb","pre-":Go},{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:Go,radio:"Noun",tetra:"Noun","omni-":Go,"post-":Go},{pseudo:Go,"extra-":Go,"hyper-":Go,"inter-":Go,"intra-":Go,"deca-":Go},{electro:"Noun"}];const Co="Adjective",Do="Infinitive",Oo="PresentTense",Bo="Singular",Vo="PastTense",zo="Expression",$o="LastName";var Fo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,$o],[/.[^aeiou]ica$/,Bo,"harmonica"],[/^([hyj]a+)+$/,zo,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Vo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Vo,"rammed"],[/.[aeiou][sg]hed$/,Vo,"gushed"],[/.[aeiou]red$/,Vo,"hired"],[/.[aeiou]r?ried$/,Vo,"hurried"],[/[^aeiou]ard$/,Bo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,Vo,"hurled"],[/.[iao]sed$/,Vo,""],[/[aeiou]n?[cs]ed$/,Vo,""],[/[aeiou][rl]?[mnf]ed$/,Vo,""],[/[aeiou][ns]?c?ked$/,Vo,"bunked"],[/[aeiou]gned$/,Vo],[/[aeiou][nl]?ged$/,Vo],[/.[tdbwxyz]ed$/,Vo],[/[^aeiou][aeiou][tvx]ed$/,Vo],[/.[cdflmnprstv]ied$/,Vo,"emptied"]],e:[[/.[lnr]ize$/,Do,"antagonize"],[/.[^aeiou]ise$/,Do,"antagonise"],[/.[aeiou]te$/,Do,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,$o,"..ovich"],[/^ug?h+$/,zo,"ughh"],[/^uh[ -]?oh$/,zo,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,$o,"polish-male"]],k:[[/^(k){2}$/,zo,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Bo,"magnesium"],[/[^aeiou]ism$/,Bo,"schism"],[/^[hu]m+$/,zo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,"Actor","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$/,Bo],[/[^i]fer$/,Do],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Bo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Bo],[/[a-z]'s$/,"Noun"],[/^yes+$/,zo]],v:[[/.[^aeiou][ai][kln]ov$/,$o]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Bo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,"Adverb"],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Bo]]};const So="Verb",Ho="Noun";var Mo={leftTags:[["Adjective",Ho],["Possessive",Ho],["Determiner",Ho],["Adverb",So],["Pronoun",So],["Value",Ho],["Ordinal",Ho],["Modal",So],["Superlative",Ho],["Demonym",Ho],["Honorific","Person"]],leftWords:[["i",So],["first",Ho],["it",So],["there",So],["not",So],["because",Ho],["if",Ho],["but",Ho],["who",So],["this",Ho],["his",Ho],["when",Ho],["you",So],["very","Adjective"],["old",Ho],["never",So],["before",Ho],["a","Singular"],["the",Ho],["been",So]],rightTags:[["Copula",Ho],["PastTense",Ho],["Conjunction",Ho],["Modal",Ho]],rightWords:[["there",So],["me",So],["man","Adjective"],["only",So],["him",So],["it",So],["were",Ho],["took",Ho],["himself",So],["went",Ho],["who",Ho],["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"},Lo={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"},Wo={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"},Ko={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 Uo=/^.([0-9]+)/;var Ro=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(Uo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Uo,"")}(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},Zo=/^([0-9]+)/,_o=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Zo);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Zo,"")]}(n[0],n[1])})};var Yo=function(e={}){return(e=Object.assign({},e)).rules=_o(e.rules),e.rules=Qo(e.rules),e.rev&&(e.rev=_o(e.rev),e.rev=Qo(e.rev)),e.exceptions=_o(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Xo=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 ei=Yo({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"}),ti=Yo(qo),ni=Yo(Lo),ri=Yo(Wo),ai=Xo(ei),oi=Xo(ti),ii=Xo(ni),si=Xo(ri),li=Yo(Jo),ui=Yo(Ko);var ci={fromPast:ei,fromPresent:ti,fromGerund:ni,fromParticiple:ri,toPast:ai,toPresent:oi,toGerund:ii,toParticiple:si,toComparative:li,toSuperlative:ui,fromComparative:Xo(li),fromSuperlative:Xo(ui)},hi=["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),{}),di=[[/([^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 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(mi[t].forEach(n=>e[n]=t),e),{});var gi=mi;var fi=function(e){let t=e.substring(e.length-3);if(!0===gi.hasOwnProperty(t))return gi[t];let n=e.substring(e.length-2);return!0===gi.hasOwnProperty(n)?gi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const vi={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=fi(e)),vi.hasOwnProperty(e))c=vi[e];else if("Participle"===n)c=Ro(l,i);else if("PastTense"===n)c=Ro(l,r);else if("PresentTense"===n)c=Ro(l,a);else{if("Gerund"!==n)return e;c=Ro(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var yi=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:Ro(i,n),PresentTense:Ro(i,r),Gerund:Ro(i,a),FutureTense:"will "+e},u=Ro(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var wi=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 ki="ically",Pi=new Set(["analyt"+ki,"chem"+ki,"class"+ki,"clin"+ki,"crit"+ki,"ecolog"+ki,"electr"+ki,"empir"+ki,"frant"+ki,"grammat"+ki,"ident"+ki,"ideolog"+ki,"log"+ki,"mag"+ki,"mathemat"+ki,"mechan"+ki,"med"+ki,"method"+ki,"method"+ki,"mus"+ki,"phys"+ki,"phys"+ki,"polit"+ki,"pract"+ki,"rad"+ki,"satir"+ki,"statist"+ki,"techn"+ki,"technolog"+ki,"theoret"+ki,"typ"+ki,"vert"+ki,"whims"+ki]),Ai=[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"}],ji=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 Ei=function(e){return e.endsWith("ly")?Pi.has(e)?e.replace(/ically/,"ical"):ji.has(e)?null:Ni.hasOwnProperty(e)?Ni[e]:wi(e,Ai)||e:null};const xi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ii={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Gi=function(e){if(Ii.hasOwnProperty(e))return Ii[e];let t=wi(e,xi);return t||e+"ly"};const Ti=[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"}],Ci={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"},Di=new Set(["terrible","annoying"]);const Oi=function(e,t){const n=t.two.models.toSuperlative;return Ro(e,n)},Bi=function(e,t){const n=t.two.models.toComparative;return Ro(e,n)};var Vi={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 zi={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===Vi.hasOwnProperty(i)&&Vi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Ta,nounToSingular:pi,verbToInfinitive:bi,getTense:fi,verbConjugate:yi,adjToSuperlative:Oi,adjToComparative:Bi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Ro(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Ro(e,n)},advToAdjective:Ei,adjToAdverb:Gi,adjToNoun:function(e){if(Ci.hasOwnProperty(e))return Ci[e];if(Di.has(e))return null;let t=wi(e,Ti);return t||e+"ness"}}}};var $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 Fi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Si=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=Fi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Fi(r,"Infinitive","Verb"),Object.assign(s,l),l=Fi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Fi(o,"Adjective","Superlative"),Object.assign(s,l),l=Fi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Hi={two:{models:ci}};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"},Ji=function(e,t){const n={model:t,methods:zi};let{lex:r,_multi:a}=zi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Li=function(e,t,n){let r=yi(e,Hi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Wi=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Mi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Li(a,r,!1),"Adj|Present"===o&&(Li(a,r,!0),function(e,t,n){let r=Oi(e,n);t[r]=t[r]||"Superlative";let a=Bi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=bi(a,Hi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=bi(a,Hi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ji(n,t)};let qi={one:{_multiCache:{},lexicon:Da},two:{irregularPlurals:ya,models:ci,suffixPatterns:Io,prefixPatterns:To,endsWith:Fo,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:Oa,clues:vo,uncountable:{},orgWords:hi}};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=Ji(e.one.lexicon,e)).one.lexicon,e),e=Wi(e.two.switches,e),e=Si(e),e=$i(e)}(qi);var Ki=qi;const Ui=/^(under|over|mis|re|un|dis|semi)-?/;var Ri=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(Ui.test(a.normal)){let e=a.normal.replace(Ui,"");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 Zi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},_i=new Set(["formulas","koalas","israelis","menus"]),Yi=["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 Xi=function(e){if(!e||e.length<=3)return!1;if(_i.has(e))return!0;let t=e[e.length-1];return Zi.hasOwnProperty(t)?Zi[t].find(t=>e.endsWith(t)):"s"===t&&!Yi.find(t=>e.endsWith(t))};const es=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ts=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Xi(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=fi(e.normal);t&&Qi(e,t,"3-verb-tense-guess")}}(r)};const ns=/^\p{Lu}[\p{Ll}'’]/u,rs=/[0-9]/,as=["Date","Month","WeekDay","Unit"],os=/^[IVXLCDM]{2,}$/,is=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ss={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ls=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===ns.test(o)&&!1===rs.test(o)?as.find(e=>r.tags.has(e))?null:(ts(e,t,n),r.tags.has("Noun")||r.tags.clear(),Qi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&os.test(o)&&is.test(o)&&!ss[r.normal]?(Qi(r,"RomanNumeral","2-xvii"),!0):null};const us=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 cs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=us(r.normal,n.two.suffixPatterns);if(null!==e)return Qi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=us(r.implicit,n.two.suffixPatterns),null!==e))return Qi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const hs=/['‘’‛‵′`´]/,ds=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 gs=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"]),fs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!gs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},vs=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 ys=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(fs(a)||fs(o))return Qi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(vs(a)||vs(o))return Qi(n,"Year","2-tagYear-close");if(bs(e[t-2])||bs(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 ws=/^[A-Z]('s|,)?$/,ks=/^[A-Z-]+$/,Ps=/([A-Z]\.)+[A-Z]?,?$/,As=/[A-Z]{2,}('s|,)?$/,js=/([a-z]\.)+[a-z]\.?$/,Ns={I:!0,A:!0};var Es=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===ks.test(n)||n.length>5||Ns.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ps.test(n)&&!0!==js.test(n)&&!0!==ws.test(n)&&!0!==As.test(n))}(r,n)?(r.tags.clear(),Qi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ns.hasOwnProperty(r.text)&&ws.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")&&ks.test(r.text)&&r.text.length<=6?(Qi(r,"Acronym","3-titlecase-acronym"),!0):null};const xs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Is=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Gs=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||xs(e[t-1],a),l=l||xs(e[t+1],o),l=l||Is(e[t-1],r),l=l||Is(e[t+1],i),l)return Qi(s,l,"3-[neighbour]"),ts(e,t,n),e[t].confidence=.2,!0}return null};const Ts=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 Cs=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]&&Ts(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ts(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Ds=function(e,t,n){0===e[t].tags.size&&(Qi(e[t],"Noun","3-[fallback]"),ts(e,t,n),e[t].confidence=.1)};const Os=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Bs=(e,t,n)=>0!==t||e[1]?null:n;var Vs={"Adj|Gerund":(e,t)=>Os(e,t),"Adj|Noun":(e,t)=>Os(e,t),"Adj|Past":(e,t)=>Os(e,t),"Adj|Present":(e,t)=>Os(e,t),"Noun|Gerund":(e,t)=>Os(e,t),"Noun|Verb":(e,t)=>Os(e,t)||Bs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Os(e,t)||Bs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Os(e,t),"Person|Verb":(e,t)=>0!==t&&Os(e,t)};const zs="undefined"!=typeof process&&process.env?process.env:self.env||{},$s=/^(under|over|mis|re|un|dis|semi)-?/,Fs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&zs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ss=(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&&zs.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Hs={tagSwitch:Ri,checkSuffix:cs,checkRegex:ps,checkCase:ls,checkPrefix:ms,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:ys},Ms={checkAcronym:Es,neighbours:Gs,orgWords:Cs,nounFallback:Ds,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=Fs(e[t+1],n.afterWords);return o=o||Fs(e[t-1],n.beforeWords),o=o||Ss(e[t-1],n.beforeTags,a),o=o||Ss(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Vs[o]&&(u=Vs[o](e,t)||u),u?(zs.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):zs.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 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 Ks={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 rl=/'/;var al=function(e,t){let n=e[t].normal.split(rl)[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 ol=/'/;var il=function(e,t){let n=e[t].normal.split(ol)[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 sl=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 ll={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ul={in:!0,by:!0,for:!0};var cl=(e,t)=>{let n=e[t];if(ll.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===ul[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 hl=/'/,dl=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)},pl={d:(e,t)=>il(e,t),t:(e,t)=>sl(e,t),s:(e,t,n)=>cl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):al(e,t)},ml=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var gl={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===hl.test(r[o].normal)&&([,i]=r[o].normal.split(hl));let s=null;pl.hasOwnProperty(i)&&(s=pl[i](r,o,t)),s&&(s=ml(s,e),nl(n,[a,o],s),dl(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=tl.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=el},hooks:["contractionTwo"]};const fl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const vl=["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:"[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:"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)",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:fl+" #Person",tag:"Person",reason:"randy-smith"},{match:fl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${fl}]`,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:vl,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:vl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:vl,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 yl=null;var wl={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;yl=yl||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(yl),e.uncache(),e}},model:{two:{matches:bl}},hooks:["postTagger"]};var kl=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 Pl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?kl(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 Al={api:function(e){e.prototype.swap=Pl}};m.plugin(_s),m.plugin(gl),m.plugin(wl),m.plugin(Al);var jl=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 Nl=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 El={this:"Noun",then:"Pivot"};var xl=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 Vl={compute:{chunks:function(e){const{document:t,world:n}=e;xl(t),Il(t),Cl(e,t,n),Ol(t),Bl(t)}},api:function(e){e.prototype.chunks=Nl,e.prototype.clauses=jl},hooks:["chunks"]};const zl=/'s$/;var $l=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 Fl=/\(/,Sl=/\)/,Hl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Fl,"");let t=e[e.length-1];t.post=t.post.replace(Sl,"")}),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 Jl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Ll=RegExp("("+Object.keys(Jl).join("|")+")"),Wl=RegExp("("+Object.values(Jl).join("|")+")"),ql=function(e,t){const n=e[t].pre.match(Ll)[0]||"";if(!n||!Jl[n])return null;const r=Jl[n];for(;t{e[0].pre=e[0].pre.replace(Ll,"");let t=e[e.length-1];t.post=t.post.replace(Wl,"")})}(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 Ul=/\./g;var Rl=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(Ul,""),e.normal=e.normal.replace(Ul,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Ul,""),e.normal=e.normal.replace(Ul,""),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 Zl=(e,t)=>"number"==typeof t?e.eq(t):e,_l=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 Yl=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=_l(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 Zl(this,e).map(e=>{let n=_l(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Zl(this,e).map(e=>{let n=_l(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Zl(this,e).map(e=>{let n=_l(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Zl(this,e).map(e=>{let n=_l(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Zl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Zl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Zl(t,e),new Adjectives(t.document,t.pointer)}};const Xl=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},eu=[["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 tu=[["emojis","emoji"],["atmentions","atMentions"]];var nu=function(e){eu.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=Xl,tu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},ru={api:function(e){nu(e),$l(e),Ml(e),Kl(e),Yl(e),Ql(e),Rl(e)}};const au=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var ou={case:e=>{au(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;au(e,e=>e.text=n(e.text,t))},whitespace:e=>{au(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=>{au(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 iu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),su="unicode|punctuation|whitespace|acronyms",lu="|case|contractions|parentheses|quotations|emoji|honorifics",uu={light:iu(su),medium:iu(su+lu),heavy:iu(su+lu+"|possessives|adverbs|nouns|verbs")};var cu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=uu[e]),Object.keys(e).forEach(t=>{ou.hasOwnProperty(t)&&ou[t](this,e[t])}),this}}};var hu=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 du=["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 pu=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 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:mu(e,t),isSubordinate:pu(e),root:t}};const fu=e=>e.text(),vu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),bu=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var yu=function(e){let t=gu(e);return{root:fu(t.root),number:bu(t.number),determiner:fu(t.determiner),adjectives:vu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const wu={tags:!0};var ku=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,wu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",wu),e};const Pu={tags:!0};var Au=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,Pu).tag("Singular","toPlural"),e};const ju=(e,t)=>"number"==typeof t?e.eq(t):e;var Nu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return ju(this,e).map(gu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=yu(t)),n},[])}isPlural(e){let t=this.filter(e=>gu(e).isPlural);return ju(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=gu(e).adjectives;n.found&&(t=t.concat(n))}),ju(t,e)}toPlural(e){return ju(this,e).map(e=>ku(e,gu(e)))}toSingular(e){return ju(this,e).map(e=>{let t=gu(e);return Au(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=hu(this);return t=ju(t,e),new Nouns(this.document,t.pointer)}}};var Eu=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 xu=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(Iu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Iu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Iu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Tu=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 Du=/^([0-9,. ]+)\/([0-9,. ]+)$/,Ou={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Bu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Vu=function(e){if(!0===Ou.hasOwnProperty(e))return Ou[e];if("a"===e||"an"===e)return 1;const t=xu(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=$u(n),r=$u(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:$u(n);let a=r.text("reduced");return zu.test(a)&&(a=a.replace(zu,""),r=r.replaceWith(a)),r=Fu.hasOwnProperty(a)?Fu[a]:$u(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:$u(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 Hu=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 Mu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Ju=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Lu=[[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"]],Wu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Mu[n][1]&&(e-=Mu[n][1],t.push(Mu[n][0]));return Ju[e]&&t.push(Ju[e]),t};var qu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Hu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Lu.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(Wu(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=Hu(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 Ku=function(e){if(!e.numerator||!e.denominator)return"";return`${qu({num:e.numerator})} out of ${qu({num:e.denominator})}`};const Uu={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 Ru=e=>{let t=qu(e).split(" "),n=t[t.length-1];return Uu.hasOwnProperty(n)?t[t.length-1]=Uu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Qu=function(e){if(!e.numerator||!e.denominator)return"";let t=qu({num:e.numerator}),n=Ru({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Zu=(e,t)=>"number"==typeof t?e.eq(t):e;var _u=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Zu(this,e).map(Su)}get(e){return Zu(this,e).map(Su)}json(e){return Zu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Su(t);return n.fraction=r,n},[])}toDecimal(e){return Zu(this,e).forEach(e=>{let{decimal:t}=Su(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Zu(this,e).forEach(e=>{let t=Su(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 Zu(this,e).forEach(e=>{let t=Su(e),n=Qu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Zu(this,e).forEach(e=>{let t=Su(e),n=Ku(t);e.replaceWith(n)}),this}toPercentage(e){return Zu(this,e).forEach(e=>{let{decimal:t}=Su(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Eu(this);return t=Zu(t,e),new Fractions(this.document,t.pointer)}};const Yu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Xu=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("("+Yu+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Yu+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Yu+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Yu+")"));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) (${Yu})`),r=e.has("("+Yu+") #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("("+Yu+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Yu+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var ec=function(e){if("string"==typeof e)return{num:Vu(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=Su(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Vu(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 tc=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=Hu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const nc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},rc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var ac=function(e){let t={suffix:"",prefix:e.prefix};return nc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+nc[e.prefix],t.prefix=""),rc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+rc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var oc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=ac(e);return t+Ru(e)+n}if("Ordinal"===t)return e.prefix+tc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=ac(e);return t+qu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const ic=(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 ic(this,e).map(ec)}get(e){return ic(this,e).map(ec).map(e=>e.num)}json(e){return ic(this,e).map(t=>{let n=t.toView().json(e)[0],r=ec(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=ec(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=oc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=ec(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=oc(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=ec(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=oc(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=ec(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=oc(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=ec(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=oc(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=>ec(t).num===e)}greaterThan(e){return this.filter(t=>ec(t).num>e)}lessThan(e){return this.filter(t=>ec(t).num{let r=ec(n).num;return r>e&&r{let n=ec(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=oc(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=ec(e).num);let t=this.map(t=>{let n=ec(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=oc(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=Xu(this);return t=ic(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Xu(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=ic(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Xu(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=ic(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var lc={api:function(e){_u(e),sc(e)}};const uc={people:!0,emails:!0,phoneNumbers:!0,places:!0},cc=function(e={}){return!1!==(e=Object.assign({},uc,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 hc={api:function(e){e.prototype.redact=cc}};var dc=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 pc=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 mc=function(e){let t=e.clauses(),n=pc(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 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};var fc=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 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};var bc=function(e){return e.verbs().toInfinitive(),e};const yc=(e,t)=>"number"==typeof t?e.eq(t):e;var wc={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}=mc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return yc(this,e).map(e=>(mc(e),gc(e)))}toPresentTense(e){return yc(this,e).map(e=>(mc(e),fc(e)))}toFutureTense(e){return yc(this,e).map(e=>(mc(e),e=vc(e)))}toInfinitive(e){return yc(this,e).map(e=>(mc(e),bc(e)))}toNegative(e){return yc(this,e).map(e=>(mc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return yc(this,e).map(e=>(mc(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 yc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return yc(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=yc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=dc(this);return yc(t,e)}};Object.assign(e.prototype,t)}};var kc=function(e){return e.match("#Honorific+? #Person+")};var Pc=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 Ac="male",jc="female",Nc={mr:Ac,mrs:jc,miss:jc,madam:jc,king:Ac,queen:jc,duke:Ac,duchess:jc,baron:Ac,baroness:jc,count:Ac,countess:jc,prince:Ac,princess:jc,sire:Ac,dame:jc,lady:jc,ayatullah:Ac,congressman:Ac,congresswoman:jc,"first lady":jc,mx:null};var Ec=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return jc;if(n.has("#MaleName"))return Ac;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Nc.hasOwnProperty(e))return Nc[e];if(/^her /.test(e))return jc;if(/^his /.test(e))return Ac}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 Ac;if(n&&!t)return jc}return null};const xc=(e,t)=>"number"==typeof t?e.eq(t):e;var Ic=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return xc(this,e).map(Pc)}json(e){return xc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Pc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Ec(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=kc(this);return t=xc(t,e),new People(this.document,t.pointer)}};var Gc=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 Tc=function(e){e.prototype.places=function(t){let n=Gc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var Cc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Dc=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 Oc=function(e){e.prototype.topics=Dc};var Bc={api:function(e){Ic(e),Tc(e),Cc(e),Oc(e)}};var Vc=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 $c=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 Fc=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},Sc=function(e){return e.match("#Negative")},Hc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Mc=function(e){let t=e.clone();t.contractions().expand();const n=zc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:$c(t,n),auxiliary:Fc(t,n),negative:Sc(t),phrasal:Hc(n)}};const Jc={tense:"PresentTense"},Lc={conditional:!0},Wc={tense:"FutureTense"},qc={progressive:!0},Kc={tense:"PastTense"},Uc={complete:!0,progressive:!1},Rc={passive:!0},Qc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Zc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Jc]],["^wanted to #Infinitive$",[Kc]],["^will want to #Infinitive$",[Wc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Kc]],["^#PresentTense #Gerund$",[Jc]],["^#Infinitive #Gerund$",[Jc]],["^will #Infinitive #Gerund$",[Wc]],["^have #PastTense #Gerund$",[Kc]],["^will have #PastTense #Gerund$",[Kc]]],"simple-present":[["^#PresentTense$",[Jc]],["^#Infinitive$",[Jc]]],"simple-past":[["^#PastTense$",[Kc]]],"simple-future":[["^will #Adverb? #Infinitive",[Wc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Jc,qc]]],"past-progressive":[["^(was|were) #Gerund$",[Kc,qc]]],"future-progressive":[["^will be #Gerund$",[Wc,qc]]],"present-perfect":[["^(has|have) #PastTense$",[Kc,Uc]]],"past-perfect":[["^had #PastTense$",[Kc,Uc]],["^had #PastTense to #Infinitive",[Kc,Uc]]],"future-perfect":[["^will have #PastTense$",[Wc,Uc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Kc,qc]]],"past-perfect-progressive":[["^had been #Gerund$",[Kc,qc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Wc,qc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Kc,Rc]],["^(was|were) being (#PastTense|#Participle)",[Kc,Rc]],["^(had|have) been (#PastTense|#Participle)",[Kc,Rc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Jc,Rc]],["^(is|are|am) being (#PastTense|#Participle)",[Jc,Rc]],["^has been (#PastTense|#Participle)",[Jc,Rc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Wc,Rc,Lc]],["will be being? (#PastTense|#Participle)",[Wc,Rc,Lc]]],"present-conditional":[["would be #PastTense",[Jc,Lc]]],"past-conditional":[["would have been #PastTense",[Kc,Lc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Wc]]],"auxiliary-past":[["^did #Infinitive$",[Kc,{plural:!1}]],["^used to #Infinitive$",[Kc,Uc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Jc,Uc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Kc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let _c=[];Object.keys(Zc).map(e=>{Zc[e].forEach(t=>{_c.push({name:e,match:t[0],data:Qc(t[1])})})});var Yc=_c;var Xc=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(),eh(r)&&(n.remove(r),r=n.last()),eh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:th(t,e)}};const rh=e=>e,ah=(e,t)=>{let n=nh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},oh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=nh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},ih=function(e,t){let n=nh(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},lh=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},uh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),ch=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},hh=function(e){return e&&e.isView?e.text("normal"):""},dh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,sh(e))};var ph=function(e){let t=Mc(e);e=e.clone().toView();const n=Xc(e,t);return{root:t.root.text(),preAdverbs:ch(t.adverbs.pre),postAdverbs:ch(t.adverbs.post),auxiliary:hh(t.auxiliary),negative:t.negative.found,prefix:hh(t.prefix),infinitive:dh(t.root),grammar:n}};const mh={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,sh(r)),i&&e.replace(r,i,mh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=ih(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const fh={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,sh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=nh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,fh),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",fh),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}},bh={infinitive:vh.simple,"simple-present":vh.simple,"simple-past":rh,"simple-future":vh.both,"present-progressive":e=>(e.replace("are","were",fh),e.replace("(is|are|am)","was",fh),e),"past-progressive":rh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":vh.hasHad,"past-perfect":rh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=uh(e)),e.remove("have"),e),"present-perfect-progressive":vh.hasHad,"past-perfect-progressive":rh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",fh),e),"passive-past":e=>(e.replace("have","had",fh),e),"passive-present":e=>(e.replace("(is|are)","was",fh),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",fh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":rh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",fh),e),"auxiliary-past":rh,"auxiliary-present":e=>(e.replace("(do|does)","did",fh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",fh):(vh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":rh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",fh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),vh.simple(e,t),uh(e),e)};var yh=function(e,t,n){return bh.hasOwnProperty(n)?((e=bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const wh={tags:!0},kh=(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===ah(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=oh(e)),o&&(e=e.replace(a,o,wh)).not("#Particle").tag("PresentTense"),e},Ph=(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===ah(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,wh)).not("#Particle").tag("Gerund"),e},Ah={infinitive:kh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return kh(e,t);{let t=nh(e).subject;if(ah(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,wh)}return e},"simple-past":kh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=oh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else kh(e,t),e=e.remove("will");return e},"present-progressive":rh,"past-progressive":(e,t)=>{let n=oh(e);return e.replace("(were|was)",n,wh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(kh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=nh(e).subject;return ah(e)||n.has("i")?((e=lh(e,t)).remove("had"),e):(e.replace("had","has",wh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":rh,"past-perfect-progressive":e=>e.replace("had","has",wh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=oh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,wh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":rh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":rh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Ph(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=ih(e);return e.replace(t.auxiliary,n),e}return Ph(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":rh,"modal-infinitive":rh,"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,wh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),kh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return ah(e)&&(n="want"),e.replace("(want|wanted|wants)",n,wh),e.remove("will"),e}};var jh=function(e,t,n){return Ah.hasOwnProperty(n)?((e=Ah[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Nh={tags:!0},Eh=(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,Nh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},xh=(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,Nh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Ih={infinitive:Eh,"simple-present":Eh,"simple-past":Eh,"simple-future":rh,"present-progressive":xh,"past-progressive":xh,"future-progressive":rh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":rh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":rh,"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":rh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":rh,"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":rh,"modal-past":rh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Eh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Gh=function(e,t,n){return e.has("will")||e.has("going to")?e:Ih.hasOwnProperty(n)?((e=Ih[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Th={tags:!0};var Ch=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=`${oh(e)} ${s}`,e.replace(a,s,Th)),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 Dh={tags:!0},Oh=function(e,t){let n=ih(e);return e.prepend(n+" not"),e},Bh=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)},Vh=e=>e.has("(is|was|am|are|will|were|be)"),zh={"simple-present":(e,t)=>!0===Vh(e)?Bh(e):(e=lh(e,t),e=Oh(e)),"simple-past":(e,t)=>!0===Vh(e)?Bh(e):((e=lh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Vh(e)?Bh(e):Oh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Dh),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=Oh(e)).replace("wants","want",Dh)};var $h=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===Vh(e)?Bh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Fh=(e,t)=>"number"==typeof t?e.eq(t):e;var Sh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Fh(this,e).map(Mc)}json(e,t){return Fh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=ph(t),n},[])}subjects(e){return Fh(this,e).map(e=>(Mc(e),nh(e).subject))}adverbs(e){return Fh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Fh(this,e).filter(e=>!0!==nh(e).plural)}isPlural(e){return Fh(this,e).filter(e=>!0===nh(e).plural)}isImperative(e){return Fh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return gh(e,t,n.form)})}toPresentTense(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return jh(e,t,n.form)})}toPastTense(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return yh(e,t,n.form)})}toFutureTense(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return Gh(e,t,n.form)})}toGerund(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return Ch(e,t,n.form)})}conjugate(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:gh(e.clone(),t,n.form).text("normal"),PastTense:yh(e.clone(),t,n.form).text("normal"),PresentTense:jh(e.clone(),t,n.form).text("normal"),FutureTense:Gh(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 Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return $h(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=Vc(this);return t=Fh(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Vl),m.plugin(ru),m.plugin(cu),m.plugin(Nu),m.plugin(lc),m.plugin(hc),m.plugin(wc),m.plugin(Bc),m.plugin(Sh);export{m as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index ef973c18b..d452c0c91 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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.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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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 T=C,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;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 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,T,z,F,M,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"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e))return e.fullPointer.length>0;if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Ze=function(e){let t=e.split(We),n=[];t.forEach(e=>{Ue(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Re(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?a.push(e):a=a.concat(e.split(qe))}),a=Re(a),a};const Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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&&(jt(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&&(jt(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},Ct=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)}},Tt=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},Bt=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)}},Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Tt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else if(!Ot(r))return null}else if(!Ot(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!It(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,""),Ut.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&&Rt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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},yn=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=yn(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},wn={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:yn,splitAll:vn}}},kn=function(e,t){let n=e.concat(t),a=yn(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=>bn(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},An=function(e,t){let n=yn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},jn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},In={union:function(e){e=En(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=jn(e,this.document),this.update(e)};var Gn={methods:wn,api:function(e){Object.assign(e.prototype,In)}},Nn=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};function Dn(e,t,n){return e.splice(t,1,...n),e}const xn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Cn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Tn=function(e){let t=[];return e.forEach(e=>{for(let n=0;n{let r=Object.assign({},e);r.regs=r.regs.slice(0),a=a.map(t=>Cn(e.regs[n],t)),r.regs=Dn(r.regs,n,a),t.push(r)})}t.push(e)}),t};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 On=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=Bn(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Bn(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e},zn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t},Vn=function(e,t){return e.map(e=>{let n=[];return e.forEach(e=>{t.hasOwnProperty(e)&&(n=n.concat(t[e]))}),new Set(n)})},Fn=function(e,t){for(let n=0;ne.needs.every(e=>a.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,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},Sn=function(e,t){let[n,a,r]=e.pointer,o=t[n],i=a>4?a-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const d=e=>""+e+"";for(;ir+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>a&&i{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=Nn(e,t),e=Tn(e);let n=(e=On(e)).filter(e=>0===e.needs.length),a=zn(e);return delete a["#Noun"],delete a["#Verb"],{index:a,always:n}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=Vn(r,t.index);return o=Fn(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),$n(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;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 r=e.reason||e.match;l.DEBUG_TAGS&&Sn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(u,e.tag,a))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,r),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,r),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const Mn=/ /,Ln=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.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[0],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(/^#/,""),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,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},Xn=e=>"[object Array]"===Object.prototype.toString.call(e),Yn=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=Yn(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(Xn(e))return e.forEach(e=>this.add(Yn(e),t)),this;e=Yn(e);let n=Rn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Yn(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 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(){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 da=function(e){return e?"string"==typeof e?[e]:e:[]};var ha=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},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=ha(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)}},fa=function(e){Object.assign(e.prototype,pa)},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 ya=new Set(["Auxiliary","Possessive"]);var va={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:ga,api:fa,lib:ba};const wa=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ka=/((?:\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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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.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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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 T=C,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;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 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,T,z,F,M,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"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e))return e.fullPointer.length>0;if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Ze=function(e){let t=e.split(We),n=[];t.forEach(e=>{Ue(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Re(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?a.push(e):a=a.concat(e.split(qe))}),a=Re(a),a};const Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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&&(jt(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&&(jt(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},Ct=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)}},Tt=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},Bt=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)}},Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Tt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else if(!Ot(r))return null}else if(!Ot(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!It(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,""),Ut.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&&Rt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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},yn=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=yn(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},wn={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:yn,splitAll:vn}}},kn=function(e,t){let n=e.concat(t),a=yn(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=>bn(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},An=function(e,t){let n=yn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},jn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},In={union:function(e){e=En(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=jn(e,this.document),this.update(e)};var Gn={methods:wn,api:function(e){Object.assign(e.prototype,In)}},Nn=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};function Dn(e,t,n){return e.splice(t,1,...n),e}const xn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Cn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Tn=function(e){let t=[];return e.forEach(e=>{for(let n=0;n{let r=Object.assign({},e);r.regs=r.regs.slice(0),a=a.map(t=>Cn(e.regs[n],t)),r.regs=Dn(r.regs,n,a),t.push(r)})}t.push(e)}),t};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 On=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=Bn(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Bn(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e},zn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t},Vn=function(e,t){return e.map(e=>{let n=[];return e.forEach(e=>{t.hasOwnProperty(e)&&(n=n.concat(t[e]))}),new Set(n)})},Fn=function(e,t){for(let n=0;ne.needs.every(e=>a.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,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},Sn=function(e,t){let[n,a,r]=e.pointer,o=t[n],i=a>4?a-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const d=e=>""+e+"";for(;ir+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>a&&i{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=Nn(e,t),e=Tn(e);let n=(e=On(e)).filter(e=>0===e.needs.length);return{index:zn(e),always:n}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=Vn(r,t.index);return o=Fn(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),$n(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;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 r=e.reason||e.match;l.DEBUG_TAGS&&Sn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(u,e.tag,a))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,r),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,r),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const Mn=/ /,Ln=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.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[0],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(/^#/,""),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,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},Xn=e=>"[object Array]"===Object.prototype.toString.call(e),Yn=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=Yn(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(Xn(e))return e.forEach(e=>this.add(Yn(e),t)),this;e=Yn(e);let n=Rn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Yn(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 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(){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 da=function(e){return e?"string"==typeof e?[e]:e:[]};var ha=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},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=ha(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)}},fa=function(e){Object.assign(e.prototype,pa)},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 ya=new Set(["Auxiliary","Possessive"]);var va={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: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]+/,Ja=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ma=/['’]/,La=/^[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,Ma.test(r)&&/[sn]['’]$/.test(t)&&!1===Ma.test(n)?(a=a.replace(Ma,""),"'"):!0===La.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},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 Xa=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},Ya=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ua(a),a=n(a,t),a=Xa(a),e.normal=a},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=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||"",a).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{Ya(e,t)}),n})}}}},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","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=>{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;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 dr=/^\p{Letter}+-\p{Letter}+$/u;var hr=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)},gr=function(e){let t=0,n=0,a=e.document;for(let e=0;emr(e,cr),machine:e=>mr(e,hr),normal:e=>mr(e,Ya),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 yr={safe:!0,min:3};var vr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=fr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},yr,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(fn),m.extend(St),m.extend(Gn),m.extend(va),m.plugin(be),m.extend(pr),m.plugin(f),m.extend(De),m.extend(vr),m.extend(Pe),m.extend(Jn);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",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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 Pr=36,Ar="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Er=Ar.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var jr=function(e){if(void 0!==Er[e])return Er[e];let t=0,n=1,a=Pr,r=1;for(;n=0;n--,r*=Pr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Ir=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=Dr(kr[e]);Br.test(e)?Object.keys(t).forEach(t=>{if(zr[t]=e,"Noun|Verb"===e){let e=Tr(t,Vr);zr[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 Fr="Adjective";var $r={beforeTags:{Determiner:Fr,Possessive:Fr},afterTags:{Adjective:Fr},beforeWords:{seem:Fr,seemed:Fr,seems:Fr,feel:Fr,feels:Fr,felt:Fr,appear:Fr,appears:Fr,appeared:Fr,also:Fr,over:Fr,under:Fr,too:Fr,it:Fr,but:Fr,still:Fr,really:Fr,quite:Fr,well:Fr,very:Fr,deeply:Fr,profoundly:Fr,extremely:Fr,so:Fr,badly:Fr,mostly:Fr,totally:Fr,awfully:Fr,rather:Fr,nothing:Fr,something:Fr,anything:Fr},afterWords:{too:Fr,also:Fr,or:Fr}};const Sr="Gerund";var Hr={beforeTags:{Adverb:Sr,Preposition:Sr,Conjunction:Sr},afterTags:{Adverb:Sr,Possessive:Sr,Person:Sr,Pronoun:Sr,Determiner:Sr,Copula:Sr,Preposition:Sr,Conjunction:Sr,Comparative:Sr},beforeWords:{been:Sr,keep:Sr,continue:Sr,stop:Sr,am:Sr,be:Sr,me:Sr,began:Sr,start:Sr,starts:Sr,started:Sr,stops:Sr,stopped:Sr,help:Sr,helps:Sr,avoid:Sr,avoids:Sr,love:Sr,loves:Sr,loved:Sr,hate:Sr,hates:Sr,hated:Sr},afterWords:{you:Sr,me:Sr,her:Sr,him:Sr,them:Sr,their:Sr,it:Sr,this:Sr,there:Sr,on:Sr,about:Sr,for:Sr}},Jr={beforeTags:Object.assign({},$r.beforeTags,Hr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$r.afterTags,Hr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$r.beforeWords,Hr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$r.afterWords,Hr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Mr="Singular";var Lr={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 Wr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Kr={beforeTags:Object.assign({},$r.beforeTags,Lr.beforeTags,Wr.beforeTags),afterTags:Object.assign({},$r.afterTags,Lr.afterTags),beforeWords:Object.assign({},$r.beforeWords,Lr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$r.afterWords,Lr.afterWords)};const qr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ur={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Rr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Zr={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({},$r.beforeTags,qr),afterTags:Object.assign({},$r.afterTags,Ur),beforeWords:Object.assign({},$r.beforeWords,Rr),afterWords:Object.assign({},$r.afterWords,Zr)};const _r="Infinitive";var Xr={beforeTags:{Modal:_r,Adverb:_r,Negative:_r,Plural:_r},afterTags:{Determiner:_r,Adverb:_r,Possessive:_r,Preposition:_r},beforeWords:{i:_r,we:_r,you:_r,they:_r,to:_r,please:_r,will:_r,have:_r,had:_r,would:_r,could:_r,should:_r,do:_r,did:_r,does:_r,can:_r,must:_r,us:_r,me:_r,he:_r,she:_r,it:_r,being:_r},afterWords:{the:_r,me:_r,you:_r,him:_r,her:_r,them:_r,it:_r,a:_r,an:_r,up:_r,down:_r,by:_r,out:_r,off:_r,when:_r,all:_r,to:_r,because:_r,although:_r,before:_r,how:_r,otherwise:_r,though:_r,yet:_r}};const Yr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var eo={beforeTags:Object.assign({},$r.beforeTags,Xr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$r.afterTags,Xr.afterTags,Yr.afterTags),beforeWords:Object.assign({},$r.beforeWords,Xr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$r.afterWords,Xr.afterWords,{to:void 0})};const to={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},no={},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"},ro={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oo={beforeTags:Object.assign({},Hr.beforeTags,Lr.beforeTags,to),afterTags:Object.assign({},Hr.afterTags,Lr.afterTags,no),beforeWords:Object.assign({},Hr.beforeWords,Lr.beforeWords,ao),afterWords:Object.assign({},Hr.afterWords,Lr.afterWords,ro)},io={beforeTags:Object.assign({},Xr.beforeTags,Lr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xr.afterTags,Lr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xr.beforeWords,Lr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xr.afterWords,Lr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const so="Person";var lo={beforeTags:{Honorific:so,Person:so,Preposition:so},afterTags:{Person:so,ProperNoun:so,Verb:so},ownTags:{ProperNoun:so},beforeWords:{hi:so,hey:so,yo:so,dear:so,hello:so},afterWords:{said:so,says:so,told:so,tells:so,feels:so,felt:so,seems:so,thinks:so,thought:so,spends:so,spendt:so,plays:so,played:so,sing:so,sang:so,learn:so,learned:so,wants:so,wanted:so}};const uo="Month",co={beforeTags:{Date:uo,Value:uo},afterTags:{Date:uo,Value:uo},beforeWords:{by:uo,in:uo,on:uo,during:uo,after:uo,before:uo,between:uo,until:uo,til:uo,sometime:uo,of:uo,this:uo,next:uo,last:uo,previous:uo,following:uo},afterWords:{sometime:uo,in:uo,of:uo,until:uo,the:uo}};var ho={beforeTags:Object.assign({},lo.beforeTags,co.beforeTags),afterTags:Object.assign({},lo.afterTags,co.afterTags),beforeWords:Object.assign({},lo.beforeWords,co.beforeWords),afterWords:Object.assign({},lo.afterWords,co.afterWords)};const go={Place:"Place"},mo={Place:"Place",Abbreviation:"Place"},po={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},bo={"Adj|Gerund":Jr,"Adj|Noun":Kr,"Adj|Past":Qr,"Adj|Present":eo,"Noun|Verb":io,"Noun|Gerund":oo,"Person|Noun":{beforeTags:Object.assign({},Lr.beforeTags,lo.beforeTags),afterTags:Object.assign({},Lr.afterTags,lo.afterTags),beforeWords:Object.assign({},Lr.beforeWords,lo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lr.afterWords,lo.afterWords)},"Person|Date":ho,"Person|Verb":{beforeTags:Object.assign({},lo.beforeTags,Xr.beforeTags),afterTags:Object.assign({},lo.afterTags,Xr.afterTags),beforeWords:Object.assign({},lo.beforeWords,Xr.beforeWords),afterWords:Object.assign({},lo.afterWords,Xr.afterWords)},"Person|Place":{beforeTags:Object.assign({},go,lo.beforeTags),afterTags:Object.assign({},mo,lo.afterTags),beforeWords:Object.assign({},po,lo.beforeWords),afterWords:Object.assign({},fo,lo.afterWords)}},yo=(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:yo(bo["Noun|Verb"].beforeWords,{}),afterWords:yo(bo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:yo(bo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:yo(bo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var vo=bo;const wo="Adjective",ko="Infinitive",Po="PresentTense",Ao="Singular",Eo="PastTense",jo="Adverb",Io="Plural",Go="Actor",No="Verb",Do="Noun",xo="LastName",Co="Modal",To="Participle";var Bo=[null,null,{ea:Ao,ia:Do,ic:wo,ly:jo,"'n":No,"'t":No},{oed:Eo,ued:Eo,xed:Eo," so":jo,"'ll":Co,"'re":"Copula",azy:wo,eer:Do,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:To,ven:To,ten:To,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:xo,cede:ko,chuk:xo,czyk:xo,ects:Po,ends:No,enko:xo,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:xo,oses:Po,ould:Co,some:wo,sson:xo,tion:Ao,tage:Do,ique:Ao,tive:wo,tors:Do,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:xo,nssen:xo,ology:Do,osome:Ao,tment:Ao,ports:Io,rough:wo,tches:Po,tieth:"Ordinal",tures:Io,wards:jo,where:jo,archy:Do,pathy:Do,opoly:Do,embly:Do,phate:Do,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:xo,parent:Ao,cedent:Ao,ionary:Ao,cklist:Ao,keeper:Go,logist:Go,teenth:"Value"},{opoulos:xo,borough:"Place",sdottir:xo}];const Oo="Adjective",zo="Noun",Vo="Verb";var Fo=[null,null,{},{neo:zo,bio:zo,"de-":Vo,"re-":Vo,"un-":Vo},{anti:zo,auto:zo,faux:Oo,hexa:zo,kilo:zo,mono:zo,nano:zo,octa:zo,poly:zo,semi:Oo,tele:zo,"pro-":Oo,"mis-":Vo,"dis-":Vo,"pre-":Oo},{anglo:zo,centi:zo,ethno:zo,ferro:zo,grand:zo,hepta:zo,hydro:zo,intro:zo,macro:zo,micro:zo,milli:zo,nitro:zo,penta:zo,quasi:Oo,radio:zo,tetra:zo,"omni-":Oo,"post-":Oo},{pseudo:Oo,"extra-":Oo,"hyper-":Oo,"inter-":Oo,"intra-":Oo,"deca-":Oo},{electro:zo}];const $o="Adjective",So="Infinitive",Ho="PresentTense",Jo="Singular",Mo="PastTense",Lo="Adverb",Wo="Expression",Ko="Actor",qo="Verb",Uo="Noun",Ro="LastName";var Zo={a:[[/.[aeiou]na$/,Uo,"tuna"],[/.[oau][wvl]ska$/,Ro],[/.[^aeiou]ica$/,Jo,"harmonica"],[/^([hyj]a+)+$/,Wo,"haha"]],c:[[/.[^aeiou]ic$/,$o]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Mo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Mo,"rammed"],[/.[aeiou][sg]hed$/,Mo,"gushed"],[/.[aeiou]red$/,Mo,"hired"],[/.[aeiou]r?ried$/,Mo,"hurried"],[/[^aeiou]ard$/,Jo,"steward"],[/[aeiou][^aeiou]id$/,$o,""],[/.[vrl]id$/,$o,"livid"],[/..led$/,Mo,"hurled"],[/.[iao]sed$/,Mo,""],[/[aeiou]n?[cs]ed$/,Mo,""],[/[aeiou][rl]?[mnf]ed$/,Mo,""],[/[aeiou][ns]?c?ked$/,Mo,"bunked"],[/[aeiou]gned$/,Mo],[/[aeiou][nl]?ged$/,Mo],[/.[tdbwxyz]ed$/,Mo],[/[^aeiou][aeiou][tvx]ed$/,Mo],[/.[cdflmnprstv]ied$/,Mo,"emptied"]],e:[[/.[lnr]ize$/,So,"antagonize"],[/.[^aeiou]ise$/,So,"antagonise"],[/.[aeiou]te$/,So,"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$/,Ro,"..ovich"],[/^ug?h+$/,Wo,"ughh"],[/^uh[ -]?oh$/,Wo,"uhoh"],[/[a-z]-ish$/,$o,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ro,"polish-male"]],k:[[/^(k){2}$/,Wo,"kkkk"]],l:[[/.[gl]ial$/,$o,"familial"],[/.[^aeiou]ful$/,$o,"fitful"],[/.[nrtumcd]al$/,$o,"natal"],[/.[^aeiou][ei]al$/,$o,"familial"]],m:[[/.[^aeiou]ium$/,Jo,"magnesium"],[/[^aeiou]ism$/,Jo,"schism"],[/^[hu]m+$/,Wo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,$o,"republican"],[/[^aeiou]ician$/,Ko,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Wo,"noooo"],[/^(yo)+$/,Wo,"yoo"],[/^wo{2,}[pt]?$/,Wo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Jo],[/[^i]fer$/,So],[/.[^aeiou][ao]pher$/,Ko],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,$o],[/[aeiou].*ist$/,$o],[/^[a-z]et$/,qo]],s:[[/.[^aeiou]ises$/,Ho],[/.[rln]ates$/,Ho],[/.[^z]ens$/,qo],[/.[lstrn]us$/,Jo],[/.[aeiou]sks$/,Ho],[/.[aeiou]kes$/,Ho],[/[aeiou][^aeiou]is$/,Jo],[/[a-z]'s$/,Uo],[/^yes+$/,Wo]],v:[[/.[^aeiou][ai][kln]ov$/,Ro]],y:[[/.[cts]hy$/,$o],[/.[st]ty$/,$o],[/.[tnl]ary$/,$o],[/.[oe]ry$/,Jo],[/[rdntkbhs]ly$/,Lo],[/.(gg|bb|zz)ly$/,$o],[/...lly$/,Lo],[/.[gk]y$/,$o],[/[bszmp]{2}y$/,$o],[/.[ai]my$/,$o],[/[ea]{2}zy$/,$o],[/.[^aeiou]ity$/,Jo]]};const Qo="Verb",_o="Noun";var Xo={leftTags:[["Adjective",_o],["Possessive",_o],["Determiner",_o],["Adverb",Qo],["Pronoun",Qo],["Value",_o],["Ordinal",_o],["Modal",Qo],["Superlative",_o],["Demonym",_o],["Honorific","Person"]],leftWords:[["i",Qo],["first",_o],["it",Qo],["there",Qo],["not",Qo],["because",_o],["if",_o],["but",_o],["who",Qo],["this",_o],["his",_o],["when",_o],["you",Qo],["very","Adjective"],["old",_o],["never",Qo],["before",_o],["a","Singular"],["the",_o],["been",Qo]],rightTags:[["Copula",_o],["PastTense",_o],["Conjunction",_o],["Modal",_o]],rightWords:[["there",Qo],["me",Qo],["man","Adjective"],["only",Qo],["him",Qo],["it",Qo],["were",_o],["took",_o],["himself",Qo],["went",_o],["who",_o],["jr","Person"]]},Yo={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"},ei={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"},ti={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"},ni={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"},ai={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 ri=/^.([0-9]+)/;var oi=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(ri);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(ri,"")}(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},si=/^([0-9]+)/,li=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(si);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(si,"")]}(n[0],n[1])})};var ui=function(e={}){return(e=Object.assign({},e)).rules=li(e.rules),e.rules=ii(e.rules),e.rev&&(e.rev=li(e.rev),e.rev=ii(e.rev)),e.exceptions=li(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ci=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 di=ui({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"}),hi=ui(ni),gi=ui(ei),mi=ui(ti),pi=ci(di),fi=ci(hi),bi=ci(gi),yi=ci(mi),vi=ui(Yo),wi=ui(ai);var ki={fromPast:di,fromPresent:hi,fromGerund:gi,fromParticiple:mi,toPast:pi,toPresent:fi,toGerund:bi,toParticiple:yi,toComparative:vi,toSuperlative:wi,fromComparative:ci(vi),fromSuperlative:ci(wi)},Pi=["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),{}),Ai=[[/([^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 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(ji[t].forEach(n=>e[n]=t),e),{});var Ii=ji,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 Ni={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Di=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=Gi(e)),Ni.hasOwnProperty(e))c=Ni[e];else if("Participle"===n)c=oi(l,i);else if("PastTense"===n)c=oi(l,a);else if("PresentTense"===n)c=oi(l,r);else{if("Gerund"!==n)return e;c=oi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},xi=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:oi(i,n),PresentTense:oi(i,a),Gerund:oi(i,r),FutureTense:"will "+e},u=oi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Ci=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 Ti="ically",Bi=new Set(["analyt"+Ti,"chem"+Ti,"class"+Ti,"clin"+Ti,"crit"+Ti,"ecolog"+Ti,"electr"+Ti,"empir"+Ti,"frant"+Ti,"grammat"+Ti,"ident"+Ti,"ideolog"+Ti,"log"+Ti,"mag"+Ti,"mathemat"+Ti,"mechan"+Ti,"med"+Ti,"method"+Ti,"method"+Ti,"mus"+Ti,"phys"+Ti,"phys"+Ti,"polit"+Ti,"pract"+Ti,"rad"+Ti,"satir"+Ti,"statist"+Ti,"techn"+Ti,"technolog"+Ti,"theoret"+Ti,"typ"+Ti,"vert"+Ti,"whims"+Ti]),Oi=[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"}],zi=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"]),Vi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Fi=function(e){return e.endsWith("ly")?Bi.has(e)?e.replace(/ically/,"ical"):zi.has(e)?null:Vi.hasOwnProperty(e)?Vi[e]:Ci(e,Oi)||e:null};const $i=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Si={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Hi=function(e){if(Si.hasOwnProperty(e))return Si[e];let t=Ci(e,$i);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"}],Mi={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"},Li=new Set(["terrible","annoying"]),Wi=function(e,t){const n=t.two.models.toSuperlative;return oi(e,n)},Ki=function(e,t){const n=t.two.models.toComparative;return oi(e,n)};var qi={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"]}},Ui={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===qi.hasOwnProperty(i)&&qi[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:Ei,verbToInfinitive:Di,getTense:Gi,verbConjugate:xi,adjToSuperlative:Wi,adjToComparative:Ki,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return oi(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return oi(e,n)},advToAdjective:Fi,adjToAdverb:Hi,adjToNoun:function(e){if(Mi.hasOwnProperty(e))return Mi[e];if(Li.has(e))return null;let t=Ci(e,Ji);return t||e+"ness"}}}},Ri=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,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=Zi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Zi(a,"Infinitive","Verb"),Object.assign(s,l),l=Zi(r,"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 _i={two:{models:ki}};const Xi={"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"},Yi=function(e,t){const n={model:t,methods:Ui};let{lex:a,_multi:r}=Ui.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},es=function(e,t,n){let a=xi(e,_i);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},ts=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Xi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||es(r,a,!1),"Adj|Present"===o&&(es(r,a,!0),function(e,t,n){let a=Wi(e,n);t[a]=t[a]||"Superlative";let r=Ki(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Di(r,_i,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Di(r,_i,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Yi(n,t)};let ns={one:{_multiCache:{},lexicon:Or},two:{irregularPlurals:wr,models:ki,suffixPatterns:Bo,prefixPatterns:Fo,endsWith:Zo,neighbours:Xo,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:zr,clues:vo,uncountable:{},orgWords:Pi}};ns=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=Yi(e.one.lexicon,e)).one.lexicon,e),e=ts(e.two.switches,e),e=Qi(e),e=Ri(e)}(ns);var as=ns;const rs=/^(under|over|mis|re|un|dis|semi)-?/;var os=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(rs.test(r.normal)){let e=r.normal.replace(rs,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},is=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 ss={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ls=new Set(["formulas","koalas","israelis","menus"]),us=["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 cs=function(e){if(!e||e.length<=3)return!1;if(ls.has(e))return!0;let t=e[e.length-1];return ss.hasOwnProperty(t)?ss[t].find(t=>e.endsWith(t)):"s"===t&&!us.find(t=>e.endsWith(t))};const ds=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var hs=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(cs(e.normal)?is(e,"Plural","3-plural-guess"):is(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Gi(e.normal);t&&is(e,t,"3-verb-tense-guess")}}(a)};const gs=/^\p{Lu}[\p{Ll}'’]/u,ms=/[0-9]/,ps=["Date","Month","WeekDay","Unit"],fs=/^[IVXLCDM]{2,}$/,bs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ys={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var vs=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===gs.test(o)&&!1===ms.test(o)?ps.find(e=>a.tags.has(e))?null:(hs(e,t,n),a.tags.has("Noun")||a.tags.clear(),is(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&fs.test(o)&&bs.test(o)&&!ys[a.normal]?(is(a,"RomanNumeral","2-xvii"),!0):null};const ws=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 ks=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=ws(a.normal,n.two.suffixPatterns);if(null!==e)return is(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=ws(a.implicit,n.two.suffixPatterns),null!==e))return is(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Ps=/['‘’‛‵′`´]/,As=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 is(a,e,"2-prefix"),a.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")},Ns=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 xs=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(Gs(r)||Gs(o))return is(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Ns(r)||Ns(o))return is(n,"Year","2-tagYear-close");if(Ds(e[t-2])||Ds(e[t+2]))return is(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 is(n,"Year","2-tagYear-noun")}}}return null};const Cs=/^[A-Z]('s|,)?$/,Ts=/^[A-Z-]+$/,Bs=/([A-Z]\.)+[A-Z]?,?$/,Os=/[A-Z]{2,}('s|,)?$/,zs=/([a-z]\.)+[a-z]\.?$/,Vs={I:!0,A:!0};var Fs=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===Ts.test(n)||n.length>5||Vs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Bs.test(n)&&!0!==zs.test(n)&&!0!==Cs.test(n)&&!0!==Os.test(n))}(a,n)?(a.tags.clear(),is(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Vs.hasOwnProperty(a.text)&&Cs.test(a.text)?(a.tags.clear(),is(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(is(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Ts.test(a.text)&&a.text.length<=6?(is(a,"Acronym","3-titlecase-acronym"),!0):null};const $s=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ss=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Hs=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||$s(e[t-1],r),l=l||$s(e[t+1],o),l=l||Ss(e[t-1],a),l=l||Ss(e[t+1],i),l)return is(s,l,"3-[neighbour]"),hs(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 Ms=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},Ls=function(e,t,n){0===e[t].tags.size&&(is(e[t],"Noun","3-[fallback]"),hs(e,t,n),e[t].confidence=.1)};const Ws=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ks=(e,t,n)=>0!==t||e[1]?null:n;var qs={"Adj|Gerund":(e,t)=>Ws(e,t),"Adj|Noun":(e,t)=>Ws(e,t),"Adj|Past":(e,t)=>Ws(e,t),"Adj|Present":(e,t)=>Ws(e,t),"Noun|Gerund":(e,t)=>Ws(e,t),"Noun|Verb":(e,t)=>Ws(e,t)||Ks(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ws(e,t)||Ks(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ws(e,t),"Person|Verb":(e,t)=>0!==t&&Ws(e,t)};const Us="undefined"!=typeof process&&process.env?process.env:self.env||{},Rs=/^(under|over|mis|re|un|dis|semi)-?/,Zs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Us.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&&Us.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},_s={tagSwitch:os,checkSuffix:ks,checkRegex:Es,checkCase:vs,checkPrefix:js,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")&&(is(o,"Verb","3-[prefix]"),is(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(is(o,"Adjective","3-[prefix]"),is(o,"Prefix","3-[prefix]")))},checkYear:xs},Xs={checkAcronym:Fs,neighbours:Hs,orgWords:Ms,nounFallback:Ls,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(Rs.test(l)&&!o[l]&&(l=l.replace(Rs,"")),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=Zs(e[t+1],n.afterWords);return o=o||Zs(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);qs[o]&&(u=qs[o](e,t)||u),u?(Us.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),r([s],u,n,null,"3-[variable]")):Us.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Ys=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)},nl={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 al={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 ml=/'/;var pl=function(e,t){let n=e[t].normal.split(ml)[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 fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[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"]},yl=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 vl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},wl={in:!0,by:!0,for:!0};var kl=(e,t)=>{let n=e[t];if(vl.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===wl[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 Pl=/'/,Al=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)},El={d:(e,t)=>bl(e,t),t:(e,t)=>yl(e,t),s:(e,t,n)=>kl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):pl(e,t)},jl=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((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===Pl.test(a[o].normal)&&([,i]=a[o].normal.split(Pl));let s=null;El.hasOwnProperty(i)&&(s=El[i](a,o,t)),s&&(s=jl(s,e),gl(n,[r,o],s),Al(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=hl.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=dl},hooks:["contractionTwo"]};const Gl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Nl=["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:"[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:"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)",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: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:"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:Nl,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:Nl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Nl,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"}]),xl=null;var Cl={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;xl=xl||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(xl),e.uncache(),e}},model:{two:{matches:Dl}},hooks:["postTagger"]},Tl=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)},Bl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Tl(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},Ol={api:function(e){e.prototype.swap=Bl}};return m.plugin(ll),m.plugin(Il),m.plugin(Cl),m.plugin(Ol),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 ddeb6e99d..b610545f0 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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.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 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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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},C.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 T=C;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;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 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,T,z,F,M,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"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e)){return e.fullPointer.length>0}if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Ze=function(e){let t=e.split(We),n=[];t.forEach(e=>{Ue(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Re(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?a.push(e):a=a.concat(e.split(qe))}),a=Re(a),a};const Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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){jt(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){jt(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 Ct=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 Tt=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 Bt=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 Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Tt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Dt(r))return null}else{if(!Gt(r))return null}else{if(!It(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,""),Ut.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&&Rt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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 gn={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},bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=bn(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 vn={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:bn,splitAll:yn}}};var wn=function(e,t){let n=e.concat(t),a=bn(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=>fn(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 Pn=function(e,t){let n=bn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},En=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},jn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.difference=jn.not,jn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},jn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=En(e,this.document),this.update(e)};var In={methods:vn,api:function(e){Object.assign(e.prototype,jn)}};var Nn=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};function Gn(e,t,n){return e.splice(t,1,...n),e}const Dn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},xn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Cn=function(e){let t=[];return e.forEach(e=>{for(let n=0;n{let r=Object.assign({},e);r.regs=r.regs.slice(0),a=a.map(t=>xn(e.regs[n],t)),r.regs=Gn(r.regs,n,a),t.push(r)})}}t.push(e)}),t};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 Bn=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=Tn(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Tn(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var On=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t};var zn=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 Vn=function(e,t){for(let n=0;ne.needs.every(e=>a.has(e))),e[n]=e[n].filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))}return e};var Fn=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 $n=function(e,t){let[n,a,r]=e.pointer,o=t[n],i=a>4?a-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const d=e=>""+e+"";for(;ir+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>a&&i{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=Nn(e,t),e=Cn(e);let n=(e=Bn(e)).filter(e=>0===e.needs.length),a=On(e);return delete a["#Noun"],delete a["#Verb"],{index:a,always:n}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=zn(r,t.index);return o=Vn(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),Fn(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;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 r=e.reason||e.match;l.DEBUG_TAGS&&$n(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Sn(u,e.tag,a))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,r),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,r),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const Jn=/ /,Mn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Ln=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.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[0],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(/^#/,""),Ln(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nWn(e,t,n,a))};var Kn=Wn;var qn=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=>Un({id:e})),t}return[Un({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},_n=e=>"[object Array]"===Object.prototype.toString.call(e),Xn=e=>(e=e||"").trim(),Yn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Rn.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 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=Un({});return e.forEach(e=>{if((e=Un(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(Un),t);var t},ea=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},ta=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},na={text:ea,txt:ea,array:ta,flat:ta},aa=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(ea(e,!0)),null):na.hasOwnProperty(t)?na[t](e):e},ra=e=>{Qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},oa=/\//;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),!oa.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)||Un({});return new g$1(t)}add(e,t={}){if(_n(e))return e.forEach(e=>this.add(Xn(e),t)),this;e=Xn(e);let n=Un({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 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 _n(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ra(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 ra(this.json),aa(this.json,e)}debug(){return ra(this.json),aa(this.json,"debug"),this}}const ia=function(e){let t=Yn(e);return new g$1(t)};ia.prototype.plugin=function(e){e(this)};var sa={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const la=function(e){if(sa.hasOwnProperty(e.id))return sa[e.id];if(sa.hasOwnProperty(e.is))return sa[e.is];let t=e._cache.parents.find(e=>sa[e]);return sa[t]};var ua=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:la(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 ca=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=ca(e[t].children),e[t].not=ca(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 ha={one:{setTag:Kn,unTag:qn,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 ia(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ua(n)}}};const ga=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ma={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||""),ga(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 ga(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 pa=function(e){Object.assign(e.prototype,ma)};var fa={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 ba=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(ba.has(e)||!t.hasOwnProperty(n))return 1;if(ba.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:ha,api:pa,lib:fa};const va=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,wa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var ka=function(e){let t=[],n=e.split(wa);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 Sa=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ha=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ja=/['’]/,Ma=/^[a-z]\.([a-z]\.)+/i,La=/^[-+.][0-9]/,Wa=/^'[0-9]{2}/;var Ka=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Sa,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!La.test(e)?"'"===n&&Wa.test(e)?(n="",t):"":(n="",t)))).replace(Ha,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 qa=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]?,?$/,Ra=/^[A-Z]\.,?$/,Za=/[A-Z]{2,}('s|,)?$/,Qa=/([a-z]\.)+[a-z]\.?$/;var _a=function(e){return function(e){return!0===Ua.test(e)||!0===Qa.test(e)||!0===Ra.test(e)||!0===Za.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Xa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=qa(a),a=n(a,t),a=_a(a),e.normal=a};var Ya={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:Da,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(Fa);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=Oa(n),n=Ta(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ka(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 er={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let tr={},nr={};[[["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=>{tr[t]=!0,nr[t]="Abbreviation",void 0!==e[1]&&(nr[t]=[nr[t],e[1]])})});var ar=["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 rr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},or={};Object.keys(rr).forEach((function(e){rr[e].split("").forEach((function(t){or[t]=e}))}));const ir=/\//,sr=/[a-z]\.[a-z]/i,lr=/[0-9]/;var ur=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])),ir.test(n)&&!sr.test(n)&&!lr.test(n)){let t=n.split(ir);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const cr=/^\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"),cr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var hr=function(e){let t=0,n=0,a=e.document;for(let e=0;egr(e,ur),machine:e=>gr(e,dr),normal:e=>gr(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 br={safe:!0,min:3};var yr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=pr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},br,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=fr(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(pn),m.extend(St),m.extend(In),m.extend(ya),m.plugin(be),m.extend(mr),m.plugin(f),m.extend(De),m.extend(yr),m.extend(Pe),m.extend(Hn);var vr={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"},wr={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 kr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Pr=kr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ar=function(e){if(void 0!==Pr[e])return Pr[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 Er=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=Ir(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Nr(wr[e]);Cr.test(e)?Object.keys(t).forEach(t=>{if(Br[t]=e,"Noun|Verb"===e){let e=xr(t,Or);Br[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Tr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Tr[e]="Emoticon"),delete Tr[""],delete Tr.null,delete Tr[" "];const zr="Adjective";var Vr={beforeTags:{Determiner:zr,Possessive:zr},afterTags:{Adjective:zr},beforeWords:{seem:zr,seemed:zr,seems:zr,feel:zr,feels:zr,felt:zr,appear:zr,appears:zr,appeared:zr,also:zr,over:zr,under:zr,too:zr,it:zr,but:zr,still:zr,really:zr,quite:zr,well:zr,very:zr,deeply:zr,profoundly:zr,extremely:zr,so:zr,badly:zr,mostly:zr,totally:zr,awfully:zr,rather:zr,nothing:zr,something:zr,anything:zr},afterWords:{too:zr,also:zr,or:zr}};const Fr="Gerund";var $r={beforeTags:{Adverb:Fr,Preposition:Fr,Conjunction:Fr},afterTags:{Adverb:Fr,Possessive:Fr,Person:Fr,Pronoun:Fr,Determiner:Fr,Copula:Fr,Preposition:Fr,Conjunction:Fr,Comparative:Fr},beforeWords:{been:Fr,keep:Fr,continue:Fr,stop:Fr,am:Fr,be:Fr,me:Fr,began:Fr,start:Fr,starts:Fr,started:Fr,stops:Fr,stopped:Fr,help:Fr,helps:Fr,avoid:Fr,avoids:Fr,love:Fr,loves:Fr,loved:Fr,hate:Fr,hates:Fr,hated:Fr},afterWords:{you:Fr,me:Fr,her:Fr,him:Fr,them:Fr,their:Fr,it:Fr,this:Fr,there:Fr,on:Fr,about:Fr,for:Fr}};var Sr={beforeTags:Object.assign({},Vr.beforeTags,$r.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Vr.afterTags,$r.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Vr.beforeWords,$r.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Vr.afterWords,$r.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Hr="Singular";var Jr={beforeTags:{Determiner:Hr,Possessive:Hr,Acronym:Hr,Noun:Hr,Adjective:Hr,PresentTense:Hr,Gerund:Hr,PastTense:Hr,Infinitive:Hr,Date:Hr},afterTags:{Value:Hr,Modal:Hr,Copula:Hr,PresentTense:Hr,PastTense:Hr,Demonym:Hr},beforeWords:{the:Hr,with:Hr,without:Hr,of:Hr,for:Hr,any:Hr,all:Hr,on:Hr,cut:Hr,cuts:Hr,save:Hr,saved:Hr,saves:Hr,make:Hr,makes:Hr,made:Hr,minus:Hr,plus:Hr,than:Hr,another:Hr,versus:Hr,neither:Hr,favorite:Hr,best:Hr,daily:Hr,weekly:Hr,linear:Hr,binary:Hr,mobile:Hr,lexical:Hr,technical:Hr,computer:Hr,scientific:Hr,formal:Hr},afterWords:{of:Hr,system:Hr,aid:Hr,method:Hr,utility:Hr,tool:Hr,reform:Hr,therapy:Hr,philosophy:Hr,room:Hr,authority:Hr,says:Hr,said:Hr,wants:Hr,wanted:Hr}};const Mr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Lr={beforeTags:Object.assign({},Vr.beforeTags,Jr.beforeTags,Mr.beforeTags),afterTags:Object.assign({},Vr.afterTags,Jr.afterTags),beforeWords:Object.assign({},Vr.beforeWords,Jr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vr.afterWords,Jr.afterWords)};const Wr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Kr={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"},Ur={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Rr={beforeTags:Object.assign({},Vr.beforeTags,Wr),afterTags:Object.assign({},Vr.afterTags,Kr),beforeWords:Object.assign({},Vr.beforeWords,qr),afterWords:Object.assign({},Vr.afterWords,Ur)};const Zr="Infinitive";var Qr={beforeTags:{Modal:Zr,Adverb:Zr,Negative:Zr,Plural:Zr},afterTags:{Determiner:Zr,Adverb:Zr,Possessive:Zr,Preposition:Zr},beforeWords:{i:Zr,we:Zr,you:Zr,they:Zr,to:Zr,please:Zr,will:Zr,have:Zr,had:Zr,would:Zr,could:Zr,should:Zr,do:Zr,did:Zr,does:Zr,can:Zr,must:Zr,us:Zr,me:Zr,he:Zr,she:Zr,it:Zr,being:Zr},afterWords:{the:Zr,me:Zr,you:Zr,him:Zr,her:Zr,them:Zr,it:Zr,a:Zr,an:Zr,up:Zr,down:Zr,by:Zr,out:Zr,off:Zr,when:Zr,all:Zr,to:Zr,because:Zr,although:Zr,before:Zr,how:Zr,otherwise:Zr,though:Zr,yet:Zr}};const _r={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xr={beforeTags:Object.assign({},Vr.beforeTags,Qr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Vr.afterTags,Qr.afterTags,_r.afterTags),beforeWords:Object.assign({},Vr.beforeWords,Qr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vr.afterWords,Qr.afterWords,{to:void 0})};const Yr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},eo={},to={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},no={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ao={beforeTags:Object.assign({},$r.beforeTags,Jr.beforeTags,Yr),afterTags:Object.assign({},$r.afterTags,Jr.afterTags,eo),beforeWords:Object.assign({},$r.beforeWords,Jr.beforeWords,to),afterWords:Object.assign({},$r.afterWords,Jr.afterWords,no)};var ro={beforeTags:Object.assign({},Qr.beforeTags,Jr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Qr.afterTags,Jr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Qr.beforeWords,Jr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Qr.afterWords,Jr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oo="Person";var io={beforeTags:{Honorific:oo,Person:oo,Preposition:oo},afterTags:{Person:oo,ProperNoun:oo,Verb:oo},ownTags:{ProperNoun:oo},beforeWords:{hi:oo,hey:oo,yo:oo,dear:oo,hello:oo},afterWords:{said:oo,says:oo,told:oo,tells:oo,feels:oo,felt:oo,seems:oo,thinks:oo,thought:oo,spends:oo,spendt:oo,plays:oo,played:oo,sing:oo,sang:oo,learn:oo,learned:oo,wants:oo,wanted:oo}};const so="Month",lo={beforeTags:{Date:so,Value:so},afterTags:{Date:so,Value:so},beforeWords:{by:so,in:so,on:so,during:so,after:so,before:so,between:so,until:so,til:so,sometime:so,of:so,this:so,next:so,last:so,previous:so,following:so},afterWords:{sometime:so,in:so,of:so,until:so,the:so}};var uo={beforeTags:Object.assign({},io.beforeTags,lo.beforeTags),afterTags:Object.assign({},io.afterTags,lo.afterTags),beforeWords:Object.assign({},io.beforeWords,lo.beforeWords),afterWords:Object.assign({},io.afterWords,lo.afterWords)};const co={Place:"Place"},ho={Place:"Place",Abbreviation:"Place"},go={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},mo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const po={"Adj|Gerund":Sr,"Adj|Noun":Lr,"Adj|Past":Rr,"Adj|Present":Xr,"Noun|Verb":ro,"Noun|Gerund":ao,"Person|Noun":{beforeTags:Object.assign({},Jr.beforeTags,io.beforeTags),afterTags:Object.assign({},Jr.afterTags,io.afterTags),beforeWords:Object.assign({},Jr.beforeWords,io.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Jr.afterWords,io.afterWords)},"Person|Date":uo,"Person|Verb":{beforeTags:Object.assign({},io.beforeTags,Qr.beforeTags),afterTags:Object.assign({},io.afterTags,Qr.afterTags),beforeWords:Object.assign({},io.beforeWords,Qr.beforeWords),afterWords:Object.assign({},io.afterWords,Qr.afterWords)},"Person|Place":{beforeTags:Object.assign({},co,io.beforeTags),afterTags:Object.assign({},ho,io.afterTags),beforeWords:Object.assign({},go,io.beforeWords),afterWords:Object.assign({},mo,io.afterWords)}},fo=(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:fo(po["Noun|Verb"].beforeWords,{}),afterWords:fo(po["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:fo(po["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:fo(po["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var bo=po;const yo="Adjective",vo="Infinitive",wo="PresentTense",ko="Singular",Po="PastTense",Ao="Adverb",Eo="Plural",jo="Verb",Io="LastName",No="Participle";var Go=[null,null,{ea:ko,ia:"Noun",ic:yo,ly:Ao,"'n":jo,"'t":jo},{oed:Po,ued:Po,xed:Po," so":Ao,"'ll":"Modal","'re":"Copula",azy:yo,eer:"Noun",end:jo,ped:Po,ffy:yo,ify:vo,ing:"Gerund",ize:vo,ibe:vo,lar:yo,mum:yo,nes:wo,nny:yo,ous:yo,que:yo,rol:ko,sis:ko,ogy:ko,oid:ko,ian:ko,zes:wo,eld:Po,ken:No,ven:No,ten:No,ect:vo,ict:vo,ign:vo,ful:yo,bal:yo},{amed:Po,aped:Po,ched:Po,lked:Po,rked:Po,reed:Po,nded:Po,mned:yo,cted:Po,dged:Po,ield:ko,akis:Io,cede:vo,chuk:Io,czyk:Io,ects:wo,ends:jo,enko:Io,ette:ko,wner:ko,fies:wo,fore:Ao,gate:vo,gone:yo,ices:Eo,ints:Eo,ruct:vo,ines:Eo,ions:Eo,less:yo,llen:yo,made:yo,nsen:Io,oses:wo,ould:"Modal",some:yo,sson:Io,tion:ko,tage:"Noun",ique:ko,tive:yo,tors:"Noun",vice:ko,lier:ko,fier:ko,wned:Po,gent:ko,tist:ko,pist:ko,rist:ko,mist:ko,yist:ko,vist:ko,lite:ko,site:ko,rite:ko,mite:ko,bite:ko,mate:ko,date:ko,ndal:ko,vent:ko,uist:ko,gist:ko,note:ko,cide:ko,wide:yo,vide:vo,ract:vo,duce:vo,pose:vo,eive:vo,lyze:vo,lyse:vo,iant:yo,nary:yo},{elist:ko,holic:ko,phite:ko,tized:Po,urned:Po,eased:Po,ances:Eo,bound:yo,ettes:Eo,fully:Ao,ishes:wo,ities:Eo,marek:Io,nssen:Io,ology:"Noun",osome:ko,tment:ko,ports:Eo,rough:yo,tches:wo,tieth:"Ordinal",tures:Eo,wards:Ao,where:Ao,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:ko,scent:ko,onist:ko,anist:ko,alist:ko,olist:ko,icist:ko,ounce:vo,iable:yo,borne:yo,gnant:yo,inant:yo,igent:yo,atory:yo,rient:ko,dient:ko},{auskas:Io,parent:ko,cedent:ko,ionary:ko,cklist:ko,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Io,borough:"Place",sdottir:Io}];const Do="Adjective";var xo=[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 Co="Adjective",To="Infinitive",Bo="PresentTense",Oo="Singular",zo="PastTense",Vo="Expression",Fo="LastName";var $o={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Fo],[/.[^aeiou]ica$/,Oo,"harmonica"],[/^([hyj]a+)+$/,Vo,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Oo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,To,"antagonize"],[/.[^aeiou]ise$/,To,"antagonise"],[/.[aeiou]te$/,To,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,Fo,"..ovich"],[/^ug?h+$/,Vo,"ughh"],[/^uh[ -]?oh$/,Vo,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Fo,"polish-male"]],k:[[/^(k){2}$/,Vo,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Oo,"magnesium"],[/[^aeiou]ism$/,Oo,"schism"],[/^[hu]m+$/,Vo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Vo,"noooo"],[/^(yo)+$/,Vo,"yoo"],[/^wo{2,}[pt]?$/,Vo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Oo],[/[^i]fer$/,To],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Oo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,Oo],[/[a-z]'s$/,"Noun"],[/^yes+$/,Vo]],v:[[/.[^aeiou][ai][kln]ov$/,Fo]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Oo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,"Adverb"],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Oo]]};const So="Verb",Ho="Noun";var Jo={leftTags:[["Adjective",Ho],["Possessive",Ho],["Determiner",Ho],["Adverb",So],["Pronoun",So],["Value",Ho],["Ordinal",Ho],["Modal",So],["Superlative",Ho],["Demonym",Ho],["Honorific","Person"]],leftWords:[["i",So],["first",Ho],["it",So],["there",So],["not",So],["because",Ho],["if",Ho],["but",Ho],["who",So],["this",Ho],["his",Ho],["when",Ho],["you",So],["very","Adjective"],["old",Ho],["never",So],["before",Ho],["a","Singular"],["the",Ho],["been",So]],rightTags:[["Copula",Ho],["PastTense",Ho],["Conjunction",Ho],["Modal",Ho]],rightWords:[["there",So],["me",So],["man","Adjective"],["only",So],["him",So],["it",So],["were",Ho],["took",Ho],["himself",So],["went",Ho],["who",Ho],["jr","Person"]]},Mo={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"},Lo={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"},Wo={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"},Ko={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"},qo={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 Uo=/^.([0-9]+)/;var Ro=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(Uo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Uo,"")}(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]+)/,_o=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 Xo=function(e={}){return(e=Object.assign({},e)).rules=_o(e.rules),e.rules=Zo(e.rules),e.rev&&(e.rev=_o(e.rev),e.rev=Zo(e.rev)),e.exceptions=_o(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Yo=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 ei=Xo({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"}),ti=Xo(Ko),ni=Xo(Lo),ai=Xo(Wo),ri=Yo(ei),oi=Yo(ti),ii=Yo(ni),si=Yo(ai),li=Xo(Mo),ui=Xo(qo);var ci={fromPast:ei,fromPresent:ti,fromGerund:ni,fromParticiple:ai,toPast:ri,toPresent:oi,toGerund:ii,toParticiple:si,toComparative:li,toSuperlative:ui,fromComparative:Yo(li),fromSuperlative:Yo(ui)},di=["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),{}),hi=[[/([^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 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(mi[t].forEach(n=>e[n]=t),e),{});var pi=mi;var fi=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 bi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var yi=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=fi(e)),bi.hasOwnProperty(e))c=bi[e];else if("Participle"===n)c=Ro(l,i);else if("PastTense"===n)c=Ro(l,a);else if("PresentTense"===n)c=Ro(l,r);else{if("Gerund"!==n)return e;c=Ro(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var vi=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:Ro(i,n),PresentTense:Ro(i,a),Gerund:Ro(i,r),FutureTense:"will "+e},u=Ro(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var wi=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 ki="ically",Pi=new Set(["analyt"+ki,"chem"+ki,"class"+ki,"clin"+ki,"crit"+ki,"ecolog"+ki,"electr"+ki,"empir"+ki,"frant"+ki,"grammat"+ki,"ident"+ki,"ideolog"+ki,"log"+ki,"mag"+ki,"mathemat"+ki,"mechan"+ki,"med"+ki,"method"+ki,"method"+ki,"mus"+ki,"phys"+ki,"phys"+ki,"polit"+ki,"pract"+ki,"rad"+ki,"satir"+ki,"statist"+ki,"techn"+ki,"technolog"+ki,"theoret"+ki,"typ"+ki,"vert"+ki,"whims"+ki]),Ai=[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"}],Ei=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 Ii=function(e){return e.endsWith("ly")?Pi.has(e)?e.replace(/ically/,"ical"):Ei.has(e)?null:ji.hasOwnProperty(e)?ji[e]:wi(e,Ai)||e:null};const Ni=[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=wi(e,Ni);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"}],Ci={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"},Ti=new Set(["terrible","annoying"]);const Bi=function(e,t){const n=t.two.models.toSuperlative;return Ro(e,n)},Oi=function(e,t){const n=t.two.models.toComparative;return Ro(e,n)};var zi={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 Vi={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===zi.hasOwnProperty(i)&&zi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:xr,nounToSingular:gi,verbToInfinitive:yi,getTense:fi,verbConjugate:vi,adjToSuperlative:Bi,adjToComparative:Oi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Ro(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Ro(e,n)},advToAdjective:Ii,adjToAdverb:Di,adjToNoun:function(e){if(Ci.hasOwnProperty(e))return Ci[e];if(Ti.has(e))return null;let t=wi(e,xi);return t||e+"ness"}}}};var Fi=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 Si=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 Hi={two:{models:ci}};const Ji={"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"},Mi=function(e,t){const n={model:t,methods:Vi};let{lex:a,_multi:r}=Vi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Li=function(e,t,n){let a=vi(e,Hi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Wi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Ji[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Li(r,a,!1),"Adj|Present"===o&&(Li(r,a,!0),function(e,t,n){let a=Bi(e,n);t[a]=t[a]||"Superlative";let r=Oi(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=yi(r,Hi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=yi(r,Hi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Mi(n,t)};let Ki={one:{_multiCache:{},lexicon:Tr},two:{irregularPlurals:vr,models:ci,suffixPatterns:Go,prefixPatterns:xo,endsWith:$o,neighbours:Jo,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:bo,uncountable:{},orgWords:di}};Ki=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=Mi(e.one.lexicon,e)).one.lexicon,e),e=Wi(e.two.switches,e),e=Si(e),e=Fi(e)}(Ki);var qi=Ki;const Ui=/^(under|over|mis|re|un|dis|semi)-?/;var Ri=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(Ui.test(r.normal)){let e=r.normal.replace(Ui,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Zi=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"]},_i=new Set(["formulas","koalas","israelis","menus"]),Xi=["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 Yi=function(e){if(!e||e.length<=3)return!1;if(_i.has(e))return!0;let t=e[e.length-1];return Qi.hasOwnProperty(t)?Qi[t].find(t=>e.endsWith(t)):"s"===t&&!Xi.find(t=>e.endsWith(t))};const es=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ts=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(Yi(e.normal)?Zi(e,"Plural","3-plural-guess"):Zi(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=fi(e.normal);t&&Zi(e,t,"3-verb-tense-guess")}}(a)};const ns=/^\p{Lu}[\p{Ll}'’]/u,as=/[0-9]/,rs=["Date","Month","WeekDay","Unit"],os=/^[IVXLCDM]{2,}$/,is=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ss={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ls=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===ns.test(o)&&!1===as.test(o)?rs.find(e=>a.tags.has(e))?null:(ts(e,t,n),a.tags.has("Noun")||a.tags.clear(),Zi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&os.test(o)&&is.test(o)&&!ss[a.normal]?(Zi(a,"RomanNumeral","2-xvii"),!0):null};const us=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 cs=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=us(a.normal,n.two.suffixPatterns);if(null!==e)return Zi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=us(a.implicit,n.two.suffixPatterns),null!==e))return Zi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ds=/['‘’‛‵′`´]/,hs=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 Zi(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"]),fs=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"))},bs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ys=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 a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(fs(r)||fs(o))return Zi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(bs(r)||bs(o))return Zi(n,"Year","2-tagYear-close");if(ys(e[t-2])||ys(e[t+2]))return Zi(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 Zi(n,"Year","2-tagYear-noun")}}}return null};const ws=/^[A-Z]('s|,)?$/,ks=/^[A-Z-]+$/,Ps=/([A-Z]\.)+[A-Z]?,?$/,As=/[A-Z]{2,}('s|,)?$/,Es=/([a-z]\.)+[a-z]\.?$/,js={I:!0,A:!0};var Is=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===ks.test(n)||n.length>5||js.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ps.test(n)&&!0!==Es.test(n)&&!0!==ws.test(n)&&!0!==As.test(n))}(a,n)?(a.tags.clear(),Zi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!js.hasOwnProperty(a.text)&&ws.test(a.text)?(a.tags.clear(),Zi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Zi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&ks.test(a.text)&&a.text.length<=6?(Zi(a,"Acronym","3-titlecase-acronym"),!0):null};const Ns=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: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||Ns(e[t-1],r),l=l||Ns(e[t+1],o),l=l||Gs(e[t-1],a),l=l||Gs(e[t+1],i),l)return Zi(s,l,"3-[neighbour]"),ts(e,t,n),e[t].confidence=.2,!0}return null};const xs=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 Cs=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]&&xs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&xs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Ts=function(e,t,n){0===e[t].tags.size&&(Zi(e[t],"Noun","3-[fallback]"),ts(e,t,n),e[t].confidence=.1)};const Bs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Os=(e,t,n)=>0!==t||e[1]?null:n;var zs={"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)||Os(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Bs(e,t)||Os(e,t,"PresentTense"),"Person|Noun":(e,t)=>Bs(e,t),"Person|Verb":(e,t)=>0!==t&&Bs(e,t)};const Vs="undefined"!=typeof process&&process.env?process.env:self.env||{},Fs=/^(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&&Vs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ss=(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&&Vs.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Hs={tagSwitch:Ri,checkSuffix:cs,checkRegex:gs,checkCase:ls,checkPrefix:ms,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")&&(Zi(o,"Verb","3-[prefix]"),Zi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Zi(o,"Adjective","3-[prefix]"),Zi(o,"Prefix","3-[prefix]")))},checkYear:vs},Js={checkAcronym:Is,neighbours:Ds,orgWords:Cs,nounFallback:Ts,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(Fs.test(l)&&!o[l]&&(l=l.replace(Fs,"")),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||Ss(e[t-1],n.beforeTags,r),o=o||Ss(e[t+1],n.afterTags,r),o}(e,t,i[o],a);zs[o]&&(u=zs[o](e,t)||u),u?(Vs.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),r([s],u,n,null,"3-[variable]")):Vs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Ms=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 Ks={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: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 al=/'/;var rl=function(e,t){let n=e[t].normal.split(al)[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 ol=/'/;var il=function(e,t){let n=e[t].normal.split(ol)[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 sl=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 ll={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ul={in:!0,by:!0,for:!0};var cl=(e,t)=>{let n=e[t];if(ll.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===ul[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 dl=/'/,hl=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)},gl={d:(e,t)=>il(e,t),t:(e,t)=>sl(e,t),s:(e,t,n)=>cl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):rl(e,t)},ml=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===dl.test(a[o].normal)&&([,i]=a[o].normal.split(dl));let s=null;gl.hasOwnProperty(i)&&(s=gl[i](a,o,t)),s&&(s=ml(s,e),nl(n,[r,o],s),hl(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=tl.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=el},hooks:["contractionTwo"]};const fl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const bl=["i","we","they"];let yl=[].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:"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)",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:fl+" #Person",tag:"Person",reason:"randy-smith"},{match:fl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${fl}]`,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: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"}]);let vl=null;var wl={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;vl=vl||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(vl),e.uncache(),e}},model:{two:{matches:yl}},hooks:["postTagger"]};var kl=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 Pl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?kl(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 Al={api:function(e){e.prototype.swap=Pl}};m.plugin(_s),m.plugin(pl),m.plugin(wl),m.plugin(Al);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]);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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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.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 j=function(e){if(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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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},C.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 T=C;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;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 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,T,z,F,M,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"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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 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};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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e)){return e.fullPointer.length>0}if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Ze=function(e){let t=e.split(We),n=[];t.forEach(e=>{Ue(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Re(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?a.push(e):a=a.concat(e.split(qe))}),a=Re(a),a};const Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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){jt(e,e.t).length=a-e.t}return 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){jt(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 Ct=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 Tt=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 Bt=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 Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Tt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Dt(r))return null}else{if(!Nt(r))return null}else{if(!It(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,""),Ut.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&&Rt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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 gn={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},bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=bn(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 vn={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:bn,splitAll:yn}}};var wn=function(e,t){let n=e.concat(t),a=bn(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=>fn(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 Pn=function(e,t){let n=bn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},En=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},jn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.difference=jn.not,jn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},jn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=En(e,this.document),this.update(e)};var In={methods:vn,api:function(e){Object.assign(e.prototype,jn)}};var Gn=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};function Nn(e,t,n){return e.splice(t,1,...n),e}const Dn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},xn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Cn=function(e){let t=[];return e.forEach(e=>{for(let n=0;n{let r=Object.assign({},e);r.regs=r.regs.slice(0),a=a.map(t=>xn(e.regs[n],t)),r.regs=Nn(r.regs,n,a),t.push(r)})}}t.push(e)}),t};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 Bn=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=Tn(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Tn(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var On=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t};var zn=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 Vn=function(e,t){for(let n=0;ne.needs.every(e=>a.has(e))),e[n]=e[n].filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))}return e};var Fn=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 $n=function(e,t){let[n,a,r]=e.pointer,o=t[n],i=a>4?a-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const d=e=>""+e+"";for(;ir+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>a&&i{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=Gn(e,t),e=Cn(e);let n=(e=Bn(e)).filter(e=>0===e.needs.length);return{index:On(e),always:n}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=zn(r,t.index);return o=Vn(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),Fn(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;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 r=e.reason||e.match;l.DEBUG_TAGS&&$n(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Sn(u,e.tag,a))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,r),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,r),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const Jn=/ /,Mn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Ln=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.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[0],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(/^#/,""),Ln(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nWn(e,t,n,a))};var Kn=Wn;var qn=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=>Un({id:e})),t}return[Un({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},_n=e=>"[object Array]"===Object.prototype.toString.call(e),Xn=e=>(e=e||"").trim(),Yn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Rn.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 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=Un({});return e.forEach(e=>{if((e=Un(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(Un),t);var t},ea=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},ta=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},na={text:ea,txt:ea,array:ta,flat:ta},aa=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(ea(e,!0)),null):na.hasOwnProperty(t)?na[t](e):e},ra=e=>{Qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},oa=/\//;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),!oa.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)||Un({});return new g$1(t)}add(e,t={}){if(_n(e))return e.forEach(e=>this.add(Xn(e),t)),this;e=Xn(e);let n=Un({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 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 _n(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ra(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 ra(this.json),aa(this.json,e)}debug(){return ra(this.json),aa(this.json,"debug"),this}}const ia=function(e){let t=Yn(e);return new g$1(t)};ia.prototype.plugin=function(e){e(this)};var sa={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const la=function(e){if(sa.hasOwnProperty(e.id))return sa[e.id];if(sa.hasOwnProperty(e.is))return sa[e.is];let t=e._cache.parents.find(e=>sa[e]);return sa[t]};var ua=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:la(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 ca=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=ca(e[t].children),e[t].not=ca(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 ha={one:{setTag:Kn,unTag:qn,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 ia(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ua(n)}}};const ga=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ma={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||""),ga(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 ga(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 pa=function(e){Object.assign(e.prototype,ma)};var fa={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 ba=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(ba.has(e)||!t.hasOwnProperty(n))return 1;if(ba.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:ha,api:pa,lib:fa};const va=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,wa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var ka=function(e){let t=[],n=e.split(wa);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 Sa=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ha=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ja=/['’]/,Ma=/^[a-z]\.([a-z]\.)+/i,La=/^[-+.][0-9]/,Wa=/^'[0-9]{2}/;var Ka=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Sa,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!La.test(e)?"'"===n&&Wa.test(e)?(n="",t):"":(n="",t)))).replace(Ha,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 qa=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]?,?$/,Ra=/^[A-Z]\.,?$/,Za=/[A-Z]{2,}('s|,)?$/,Qa=/([a-z]\.)+[a-z]\.?$/;var _a=function(e){return function(e){return!0===Ua.test(e)||!0===Qa.test(e)||!0===Ra.test(e)||!0===Za.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Xa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=qa(a),a=n(a,t),a=_a(a),e.normal=a};var Ya={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:Da,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(Fa);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=Oa(n),n=Ta(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ka(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 er={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let tr={},nr={};[[["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=>{tr[t]=!0,nr[t]="Abbreviation",void 0!==e[1]&&(nr[t]=[nr[t],e[1]])})});var ar=["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 rr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},or={};Object.keys(rr).forEach((function(e){rr[e].split("").forEach((function(t){or[t]=e}))}));const ir=/\//,sr=/[a-z]\.[a-z]/i,lr=/[0-9]/;var ur=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])),ir.test(n)&&!sr.test(n)&&!lr.test(n)){let t=n.split(ir);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const cr=/^\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"),cr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var hr=function(e){let t=0,n=0,a=e.document;for(let e=0;egr(e,ur),machine:e=>gr(e,dr),normal:e=>gr(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 br={safe:!0,min:3};var yr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=pr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},br,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=fr(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(pn),m.extend(St),m.extend(In),m.extend(ya),m.plugin(be),m.extend(mr),m.plugin(f),m.extend(De),m.extend(yr),m.extend(Pe),m.extend(Hn);var vr={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"},wr={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 kr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Pr=kr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ar=function(e){if(void 0!==Pr[e])return Pr[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 Er=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=Ir(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Gr(wr[e]);Cr.test(e)?Object.keys(t).forEach(t=>{if(Br[t]=e,"Noun|Verb"===e){let e=xr(t,Or);Br[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Tr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Tr[e]="Emoticon"),delete Tr[""],delete Tr.null,delete Tr[" "];const zr="Adjective";var Vr={beforeTags:{Determiner:zr,Possessive:zr},afterTags:{Adjective:zr},beforeWords:{seem:zr,seemed:zr,seems:zr,feel:zr,feels:zr,felt:zr,appear:zr,appears:zr,appeared:zr,also:zr,over:zr,under:zr,too:zr,it:zr,but:zr,still:zr,really:zr,quite:zr,well:zr,very:zr,deeply:zr,profoundly:zr,extremely:zr,so:zr,badly:zr,mostly:zr,totally:zr,awfully:zr,rather:zr,nothing:zr,something:zr,anything:zr},afterWords:{too:zr,also:zr,or:zr}};const Fr="Gerund";var $r={beforeTags:{Adverb:Fr,Preposition:Fr,Conjunction:Fr},afterTags:{Adverb:Fr,Possessive:Fr,Person:Fr,Pronoun:Fr,Determiner:Fr,Copula:Fr,Preposition:Fr,Conjunction:Fr,Comparative:Fr},beforeWords:{been:Fr,keep:Fr,continue:Fr,stop:Fr,am:Fr,be:Fr,me:Fr,began:Fr,start:Fr,starts:Fr,started:Fr,stops:Fr,stopped:Fr,help:Fr,helps:Fr,avoid:Fr,avoids:Fr,love:Fr,loves:Fr,loved:Fr,hate:Fr,hates:Fr,hated:Fr},afterWords:{you:Fr,me:Fr,her:Fr,him:Fr,them:Fr,their:Fr,it:Fr,this:Fr,there:Fr,on:Fr,about:Fr,for:Fr}};var Sr={beforeTags:Object.assign({},Vr.beforeTags,$r.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Vr.afterTags,$r.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Vr.beforeWords,$r.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Vr.afterWords,$r.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Hr="Singular";var Jr={beforeTags:{Determiner:Hr,Possessive:Hr,Acronym:Hr,Noun:Hr,Adjective:Hr,PresentTense:Hr,Gerund:Hr,PastTense:Hr,Infinitive:Hr,Date:Hr},afterTags:{Value:Hr,Modal:Hr,Copula:Hr,PresentTense:Hr,PastTense:Hr,Demonym:Hr},beforeWords:{the:Hr,with:Hr,without:Hr,of:Hr,for:Hr,any:Hr,all:Hr,on:Hr,cut:Hr,cuts:Hr,save:Hr,saved:Hr,saves:Hr,make:Hr,makes:Hr,made:Hr,minus:Hr,plus:Hr,than:Hr,another:Hr,versus:Hr,neither:Hr,favorite:Hr,best:Hr,daily:Hr,weekly:Hr,linear:Hr,binary:Hr,mobile:Hr,lexical:Hr,technical:Hr,computer:Hr,scientific:Hr,formal:Hr},afterWords:{of:Hr,system:Hr,aid:Hr,method:Hr,utility:Hr,tool:Hr,reform:Hr,therapy:Hr,philosophy:Hr,room:Hr,authority:Hr,says:Hr,said:Hr,wants:Hr,wanted:Hr}};const Mr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Lr={beforeTags:Object.assign({},Vr.beforeTags,Jr.beforeTags,Mr.beforeTags),afterTags:Object.assign({},Vr.afterTags,Jr.afterTags),beforeWords:Object.assign({},Vr.beforeWords,Jr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vr.afterWords,Jr.afterWords)};const Wr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Kr={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"},Ur={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Rr={beforeTags:Object.assign({},Vr.beforeTags,Wr),afterTags:Object.assign({},Vr.afterTags,Kr),beforeWords:Object.assign({},Vr.beforeWords,qr),afterWords:Object.assign({},Vr.afterWords,Ur)};const Zr="Infinitive";var Qr={beforeTags:{Modal:Zr,Adverb:Zr,Negative:Zr,Plural:Zr},afterTags:{Determiner:Zr,Adverb:Zr,Possessive:Zr,Preposition:Zr},beforeWords:{i:Zr,we:Zr,you:Zr,they:Zr,to:Zr,please:Zr,will:Zr,have:Zr,had:Zr,would:Zr,could:Zr,should:Zr,do:Zr,did:Zr,does:Zr,can:Zr,must:Zr,us:Zr,me:Zr,he:Zr,she:Zr,it:Zr,being:Zr},afterWords:{the:Zr,me:Zr,you:Zr,him:Zr,her:Zr,them:Zr,it:Zr,a:Zr,an:Zr,up:Zr,down:Zr,by:Zr,out:Zr,off:Zr,when:Zr,all:Zr,to:Zr,because:Zr,although:Zr,before:Zr,how:Zr,otherwise:Zr,though:Zr,yet:Zr}};const _r={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xr={beforeTags:Object.assign({},Vr.beforeTags,Qr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Vr.afterTags,Qr.afterTags,_r.afterTags),beforeWords:Object.assign({},Vr.beforeWords,Qr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vr.afterWords,Qr.afterWords,{to:void 0})};const Yr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},eo={},to={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},no={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ao={beforeTags:Object.assign({},$r.beforeTags,Jr.beforeTags,Yr),afterTags:Object.assign({},$r.afterTags,Jr.afterTags,eo),beforeWords:Object.assign({},$r.beforeWords,Jr.beforeWords,to),afterWords:Object.assign({},$r.afterWords,Jr.afterWords,no)};var ro={beforeTags:Object.assign({},Qr.beforeTags,Jr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Qr.afterTags,Jr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Qr.beforeWords,Jr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Qr.afterWords,Jr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oo="Person";var io={beforeTags:{Honorific:oo,Person:oo,Preposition:oo},afterTags:{Person:oo,ProperNoun:oo,Verb:oo},ownTags:{ProperNoun:oo},beforeWords:{hi:oo,hey:oo,yo:oo,dear:oo,hello:oo},afterWords:{said:oo,says:oo,told:oo,tells:oo,feels:oo,felt:oo,seems:oo,thinks:oo,thought:oo,spends:oo,spendt:oo,plays:oo,played:oo,sing:oo,sang:oo,learn:oo,learned:oo,wants:oo,wanted:oo}};const so="Month",lo={beforeTags:{Date:so,Value:so},afterTags:{Date:so,Value:so},beforeWords:{by:so,in:so,on:so,during:so,after:so,before:so,between:so,until:so,til:so,sometime:so,of:so,this:so,next:so,last:so,previous:so,following:so},afterWords:{sometime:so,in:so,of:so,until:so,the:so}};var uo={beforeTags:Object.assign({},io.beforeTags,lo.beforeTags),afterTags:Object.assign({},io.afterTags,lo.afterTags),beforeWords:Object.assign({},io.beforeWords,lo.beforeWords),afterWords:Object.assign({},io.afterWords,lo.afterWords)};const co={Place:"Place"},ho={Place:"Place",Abbreviation:"Place"},go={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},mo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const po={"Adj|Gerund":Sr,"Adj|Noun":Lr,"Adj|Past":Rr,"Adj|Present":Xr,"Noun|Verb":ro,"Noun|Gerund":ao,"Person|Noun":{beforeTags:Object.assign({},Jr.beforeTags,io.beforeTags),afterTags:Object.assign({},Jr.afterTags,io.afterTags),beforeWords:Object.assign({},Jr.beforeWords,io.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Jr.afterWords,io.afterWords)},"Person|Date":uo,"Person|Verb":{beforeTags:Object.assign({},io.beforeTags,Qr.beforeTags),afterTags:Object.assign({},io.afterTags,Qr.afterTags),beforeWords:Object.assign({},io.beforeWords,Qr.beforeWords),afterWords:Object.assign({},io.afterWords,Qr.afterWords)},"Person|Place":{beforeTags:Object.assign({},co,io.beforeTags),afterTags:Object.assign({},ho,io.afterTags),beforeWords:Object.assign({},go,io.beforeWords),afterWords:Object.assign({},mo,io.afterWords)}},fo=(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:fo(po["Noun|Verb"].beforeWords,{}),afterWords:fo(po["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:fo(po["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:fo(po["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var bo=po;const yo="Adjective",vo="Infinitive",wo="PresentTense",ko="Singular",Po="PastTense",Ao="Adverb",Eo="Plural",jo="Verb",Io="LastName",Go="Participle";var No=[null,null,{ea:ko,ia:"Noun",ic:yo,ly:Ao,"'n":jo,"'t":jo},{oed:Po,ued:Po,xed:Po," so":Ao,"'ll":"Modal","'re":"Copula",azy:yo,eer:"Noun",end:jo,ped:Po,ffy:yo,ify:vo,ing:"Gerund",ize:vo,ibe:vo,lar:yo,mum:yo,nes:wo,nny:yo,ous:yo,que:yo,rol:ko,sis:ko,ogy:ko,oid:ko,ian:ko,zes:wo,eld:Po,ken:Go,ven:Go,ten:Go,ect:vo,ict:vo,ign:vo,ful:yo,bal:yo},{amed:Po,aped:Po,ched:Po,lked:Po,rked:Po,reed:Po,nded:Po,mned:yo,cted:Po,dged:Po,ield:ko,akis:Io,cede:vo,chuk:Io,czyk:Io,ects:wo,ends:jo,enko:Io,ette:ko,wner:ko,fies:wo,fore:Ao,gate:vo,gone:yo,ices:Eo,ints:Eo,ruct:vo,ines:Eo,ions:Eo,less:yo,llen:yo,made:yo,nsen:Io,oses:wo,ould:"Modal",some:yo,sson:Io,tion:ko,tage:"Noun",ique:ko,tive:yo,tors:"Noun",vice:ko,lier:ko,fier:ko,wned:Po,gent:ko,tist:ko,pist:ko,rist:ko,mist:ko,yist:ko,vist:ko,lite:ko,site:ko,rite:ko,mite:ko,bite:ko,mate:ko,date:ko,ndal:ko,vent:ko,uist:ko,gist:ko,note:ko,cide:ko,wide:yo,vide:vo,ract:vo,duce:vo,pose:vo,eive:vo,lyze:vo,lyse:vo,iant:yo,nary:yo},{elist:ko,holic:ko,phite:ko,tized:Po,urned:Po,eased:Po,ances:Eo,bound:yo,ettes:Eo,fully:Ao,ishes:wo,ities:Eo,marek:Io,nssen:Io,ology:"Noun",osome:ko,tment:ko,ports:Eo,rough:yo,tches:wo,tieth:"Ordinal",tures:Eo,wards:Ao,where:Ao,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:ko,scent:ko,onist:ko,anist:ko,alist:ko,olist:ko,icist:ko,ounce:vo,iable:yo,borne:yo,gnant:yo,inant:yo,igent:yo,atory:yo,rient:ko,dient:ko},{auskas:Io,parent:ko,cedent:ko,ionary:ko,cklist:ko,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Io,borough:"Place",sdottir:Io}];const Do="Adjective";var xo=[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 Co="Adjective",To="Infinitive",Bo="PresentTense",Oo="Singular",zo="PastTense",Vo="Expression",Fo="LastName";var $o={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Fo],[/.[^aeiou]ica$/,Oo,"harmonica"],[/^([hyj]a+)+$/,Vo,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Oo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,To,"antagonize"],[/.[^aeiou]ise$/,To,"antagonise"],[/.[aeiou]te$/,To,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,Fo,"..ovich"],[/^ug?h+$/,Vo,"ughh"],[/^uh[ -]?oh$/,Vo,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Fo,"polish-male"]],k:[[/^(k){2}$/,Vo,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Oo,"magnesium"],[/[^aeiou]ism$/,Oo,"schism"],[/^[hu]m+$/,Vo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Vo,"noooo"],[/^(yo)+$/,Vo,"yoo"],[/^wo{2,}[pt]?$/,Vo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Oo],[/[^i]fer$/,To],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Oo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,Oo],[/[a-z]'s$/,"Noun"],[/^yes+$/,Vo]],v:[[/.[^aeiou][ai][kln]ov$/,Fo]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Oo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,"Adverb"],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Oo]]};const So="Verb",Ho="Noun";var Jo={leftTags:[["Adjective",Ho],["Possessive",Ho],["Determiner",Ho],["Adverb",So],["Pronoun",So],["Value",Ho],["Ordinal",Ho],["Modal",So],["Superlative",Ho],["Demonym",Ho],["Honorific","Person"]],leftWords:[["i",So],["first",Ho],["it",So],["there",So],["not",So],["because",Ho],["if",Ho],["but",Ho],["who",So],["this",Ho],["his",Ho],["when",Ho],["you",So],["very","Adjective"],["old",Ho],["never",So],["before",Ho],["a","Singular"],["the",Ho],["been",So]],rightTags:[["Copula",Ho],["PastTense",Ho],["Conjunction",Ho],["Modal",Ho]],rightWords:[["there",So],["me",So],["man","Adjective"],["only",So],["him",So],["it",So],["were",Ho],["took",Ho],["himself",So],["went",Ho],["who",Ho],["jr","Person"]]},Mo={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"},Lo={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"},Wo={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"},Ko={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"},qo={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 Uo=/^.([0-9]+)/;var Ro=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(Uo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Uo,"")}(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]+)/,_o=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 Xo=function(e={}){return(e=Object.assign({},e)).rules=_o(e.rules),e.rules=Zo(e.rules),e.rev&&(e.rev=_o(e.rev),e.rev=Zo(e.rev)),e.exceptions=_o(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Yo=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 ei=Xo({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"}),ti=Xo(Ko),ni=Xo(Lo),ai=Xo(Wo),ri=Yo(ei),oi=Yo(ti),ii=Yo(ni),si=Yo(ai),li=Xo(Mo),ui=Xo(qo);var ci={fromPast:ei,fromPresent:ti,fromGerund:ni,fromParticiple:ai,toPast:ri,toPresent:oi,toGerund:ii,toParticiple:si,toComparative:li,toSuperlative:ui,fromComparative:Yo(li),fromSuperlative:Yo(ui)},di=["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),{}),hi=[[/([^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 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(mi[t].forEach(n=>e[n]=t),e),{});var pi=mi;var fi=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 bi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var yi=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=fi(e)),bi.hasOwnProperty(e))c=bi[e];else if("Participle"===n)c=Ro(l,i);else if("PastTense"===n)c=Ro(l,a);else if("PresentTense"===n)c=Ro(l,r);else{if("Gerund"!==n)return e;c=Ro(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var vi=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:Ro(i,n),PresentTense:Ro(i,a),Gerund:Ro(i,r),FutureTense:"will "+e},u=Ro(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var wi=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 ki="ically",Pi=new Set(["analyt"+ki,"chem"+ki,"class"+ki,"clin"+ki,"crit"+ki,"ecolog"+ki,"electr"+ki,"empir"+ki,"frant"+ki,"grammat"+ki,"ident"+ki,"ideolog"+ki,"log"+ki,"mag"+ki,"mathemat"+ki,"mechan"+ki,"med"+ki,"method"+ki,"method"+ki,"mus"+ki,"phys"+ki,"phys"+ki,"polit"+ki,"pract"+ki,"rad"+ki,"satir"+ki,"statist"+ki,"techn"+ki,"technolog"+ki,"theoret"+ki,"typ"+ki,"vert"+ki,"whims"+ki]),Ai=[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"}],Ei=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 Ii=function(e){return e.endsWith("ly")?Pi.has(e)?e.replace(/ically/,"ical"):Ei.has(e)?null:ji.hasOwnProperty(e)?ji[e]:wi(e,Ai)||e:null};const Gi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ni={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Di=function(e){if(Ni.hasOwnProperty(e))return Ni[e];let t=wi(e,Gi);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"}],Ci={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"},Ti=new Set(["terrible","annoying"]);const Bi=function(e,t){const n=t.two.models.toSuperlative;return Ro(e,n)},Oi=function(e,t){const n=t.two.models.toComparative;return Ro(e,n)};var zi={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 Vi={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===zi.hasOwnProperty(i)&&zi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:xr,nounToSingular:gi,verbToInfinitive:yi,getTense:fi,verbConjugate:vi,adjToSuperlative:Bi,adjToComparative:Oi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Ro(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Ro(e,n)},advToAdjective:Ii,adjToAdverb:Di,adjToNoun:function(e){if(Ci.hasOwnProperty(e))return Ci[e];if(Ti.has(e))return null;let t=wi(e,xi);return t||e+"ness"}}}};var Fi=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 Si=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 Hi={two:{models:ci}};const Ji={"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"},Mi=function(e,t){const n={model:t,methods:Vi};let{lex:a,_multi:r}=Vi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Li=function(e,t,n){let a=vi(e,Hi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Wi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Ji[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Li(r,a,!1),"Adj|Present"===o&&(Li(r,a,!0),function(e,t,n){let a=Bi(e,n);t[a]=t[a]||"Superlative";let r=Oi(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=yi(r,Hi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=yi(r,Hi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Mi(n,t)};let Ki={one:{_multiCache:{},lexicon:Tr},two:{irregularPlurals:vr,models:ci,suffixPatterns:No,prefixPatterns:xo,endsWith:$o,neighbours:Jo,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:bo,uncountable:{},orgWords:di}};Ki=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=Mi(e.one.lexicon,e)).one.lexicon,e),e=Wi(e.two.switches,e),e=Si(e),e=Fi(e)}(Ki);var qi=Ki;const Ui=/^(under|over|mis|re|un|dis|semi)-?/;var Ri=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(Ui.test(r.normal)){let e=r.normal.replace(Ui,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Zi=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"]},_i=new Set(["formulas","koalas","israelis","menus"]),Xi=["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 Yi=function(e){if(!e||e.length<=3)return!1;if(_i.has(e))return!0;let t=e[e.length-1];return Qi.hasOwnProperty(t)?Qi[t].find(t=>e.endsWith(t)):"s"===t&&!Xi.find(t=>e.endsWith(t))};const es=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ts=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(Yi(e.normal)?Zi(e,"Plural","3-plural-guess"):Zi(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=fi(e.normal);t&&Zi(e,t,"3-verb-tense-guess")}}(a)};const ns=/^\p{Lu}[\p{Ll}'’]/u,as=/[0-9]/,rs=["Date","Month","WeekDay","Unit"],os=/^[IVXLCDM]{2,}$/,is=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ss={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ls=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===ns.test(o)&&!1===as.test(o)?rs.find(e=>a.tags.has(e))?null:(ts(e,t,n),a.tags.has("Noun")||a.tags.clear(),Zi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&os.test(o)&&is.test(o)&&!ss[a.normal]?(Zi(a,"RomanNumeral","2-xvii"),!0):null};const us=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 cs=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=us(a.normal,n.two.suffixPatterns);if(null!==e)return Zi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=us(a.implicit,n.two.suffixPatterns),null!==e))return Zi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ds=/['‘’‛‵′`´]/,hs=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 Zi(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"]),fs=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"))},bs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ys=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 a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(fs(r)||fs(o))return Zi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(bs(r)||bs(o))return Zi(n,"Year","2-tagYear-close");if(ys(e[t-2])||ys(e[t+2]))return Zi(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 Zi(n,"Year","2-tagYear-noun")}}}return null};const ws=/^[A-Z]('s|,)?$/,ks=/^[A-Z-]+$/,Ps=/([A-Z]\.)+[A-Z]?,?$/,As=/[A-Z]{2,}('s|,)?$/,Es=/([a-z]\.)+[a-z]\.?$/,js={I:!0,A:!0};var Is=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===ks.test(n)||n.length>5||js.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ps.test(n)&&!0!==Es.test(n)&&!0!==ws.test(n)&&!0!==As.test(n))}(a,n)?(a.tags.clear(),Zi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!js.hasOwnProperty(a.text)&&ws.test(a.text)?(a.tags.clear(),Zi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Zi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&ks.test(a.text)&&a.text.length<=6?(Zi(a,"Acronym","3-titlecase-acronym"),!0):null};const Gs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ns=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: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||Gs(e[t-1],r),l=l||Gs(e[t+1],o),l=l||Ns(e[t-1],a),l=l||Ns(e[t+1],i),l)return Zi(s,l,"3-[neighbour]"),ts(e,t,n),e[t].confidence=.2,!0}return null};const xs=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 Cs=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]&&xs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&xs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Ts=function(e,t,n){0===e[t].tags.size&&(Zi(e[t],"Noun","3-[fallback]"),ts(e,t,n),e[t].confidence=.1)};const Bs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Os=(e,t,n)=>0!==t||e[1]?null:n;var zs={"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)||Os(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Bs(e,t)||Os(e,t,"PresentTense"),"Person|Noun":(e,t)=>Bs(e,t),"Person|Verb":(e,t)=>0!==t&&Bs(e,t)};const Vs="undefined"!=typeof process&&process.env?process.env:self.env||{},Fs=/^(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&&Vs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ss=(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&&Vs.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Hs={tagSwitch:Ri,checkSuffix:cs,checkRegex:gs,checkCase:ls,checkPrefix:ms,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")&&(Zi(o,"Verb","3-[prefix]"),Zi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Zi(o,"Adjective","3-[prefix]"),Zi(o,"Prefix","3-[prefix]")))},checkYear:vs},Js={checkAcronym:Is,neighbours:Ds,orgWords:Cs,nounFallback:Ts,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(Fs.test(l)&&!o[l]&&(l=l.replace(Fs,"")),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||Ss(e[t-1],n.beforeTags,r),o=o||Ss(e[t+1],n.afterTags,r),o}(e,t,i[o],a);zs[o]&&(u=zs[o](e,t)||u),u?(Vs.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),r([s],u,n,null,"3-[variable]")):Vs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Ms=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 Ks={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: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 al=/'/;var rl=function(e,t){let n=e[t].normal.split(al)[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 ol=/'/;var il=function(e,t){let n=e[t].normal.split(ol)[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 sl=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 ll={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ul={in:!0,by:!0,for:!0};var cl=(e,t)=>{let n=e[t];if(ll.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===ul[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 dl=/'/,hl=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)},gl={d:(e,t)=>il(e,t),t:(e,t)=>sl(e,t),s:(e,t,n)=>cl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):rl(e,t)},ml=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===dl.test(a[o].normal)&&([,i]=a[o].normal.split(dl));let s=null;gl.hasOwnProperty(i)&&(s=gl[i](a,o,t)),s&&(s=ml(s,e),nl(n,[r,o],s),hl(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=tl.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=el},hooks:["contractionTwo"]};const fl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const bl=["i","we","they"];let yl=[].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:"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)",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:fl+" #Person",tag:"Person",reason:"randy-smith"},{match:fl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${fl}]`,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: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"}]);let vl=null;var wl={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;vl=vl||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(vl),e.uncache(),e}},model:{two:{matches:yl}},hooks:["postTagger"]};var kl=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 Pl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?kl(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 Al={api:function(e){e.prototype.swap=Pl}};m.plugin(_s),m.plugin(pl),m.plugin(wl),m.plugin(Al);export{m as default}; diff --git a/scratch.js b/scratch.js index 46b6c0bdf..512deb2cb 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/dates/src/plugin.js' // nlp.plugin(plg) @@ -47,14 +47,19 @@ import nlp from './src/two.js' // Upload documents required to verify your eligibility let matches = [ - { match: '(he|she|they|#Noun) (has|have) (a|an)' } + // { match: '(he|she|they|#Noun) (has|have) (a|an|some)' }, + // { match: 'you foo' }, + // { match: 'foo bar' }, + { match: '{appointment}' } ] let net = nlp.buildNet(matches) -let doc = nlp(`you have a appointment`) +let doc = nlp(`you have some appointments`) +doc.compute('root') +console.log(doc.text('root')) // doc.debug() // doc.verbs().toFutureTense() doc.match(net).debug() -console.log(doc.has(net)) +// console.log(doc.has(net)) // doc.debug() // console.log(doc.has('re-purpose')) diff --git a/src/1-one/cache/methods/cacheDoc.js b/src/1-one/cache/methods/cacheDoc.js index faeb7752d..de52aa3d2 100644 --- a/src/1-one/cache/methods/cacheDoc.js +++ b/src/1-one/cache/methods/cacheDoc.js @@ -17,6 +17,9 @@ const createCache = function (document) { 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)) diff --git a/src/1-one/sweep/methods/sweep/02-trim-down.js b/src/1-one/sweep/methods/sweep/02-trim-down.js index 0e4c9b74b..1afae74b1 100644 --- a/src/1-one/sweep/methods/sweep/02-trim-down.js +++ b/src/1-one/sweep/methods/sweep/02-trim-down.js @@ -1,6 +1,5 @@ // filter-down list of maybe-matches const localTrim = function (maybeList, docCache) { - // console.log(maybeList) for (let n = 0; n < docCache.length; n += 1) { let haves = docCache[n] diff --git a/tests/three/sweep-tag.test.js b/tests/three/sweep-tag.test.js index 8001ca3ce..66980d4fe 100644 --- a/tests/three/sweep-tag.test.js +++ b/tests/three/sweep-tag.test.js @@ -10,4 +10,15 @@ test('cache-one:', function (t) { let doc = nlp(`you have a appointment`) t.equal(doc.has(net), true, here + 'Noun cache') t.end() +}) + +test('sweep-root:', function (t) { + let matches = [ + { match: '{appointment}' } + ] + let net = nlp.buildNet(matches) + let doc = nlp(`you have some appointments`) + doc.compute('root') + t.equal(doc.has(net), true, here + 'root cache') + t.end() }) \ No newline at end of file From 6f20857ed337ae2da3b4874dc619414f6c9bb256 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 13 Jun 2022 14:10:21 -0400 Subject: [PATCH 05/13] huge refactor of optionals in sweep --- scratch.js | 63 +++++++++++++++--- src/1-one/sweep/lib.js | 9 +-- src/1-one/sweep/methods/buildNet/01-parse.js | 65 +++++++++++++++++++ .../sweep/methods/buildNet/02-multiply.js | 51 --------------- src/1-one/sweep/methods/buildNet/03-cache.js | 54 --------------- src/1-one/sweep/methods/buildNet/04-group.js | 12 ---- src/1-one/sweep/methods/buildNet/index.js | 50 +++++++------- .../sweep/methods/sweep/01-candidates.js | 14 ---- src/1-one/sweep/methods/sweep/01-getHooks.js | 23 +++++++ src/1-one/sweep/methods/sweep/02-trim-down.js | 19 ++++-- .../sweep/{03-runMatch.js => 04-runMatch.js} | 0 src/1-one/sweep/methods/sweep/index.js | 27 ++++---- tests/one/match/sweep.test.js | 4 +- 13 files changed, 199 insertions(+), 192 deletions(-) delete mode 100644 src/1-one/sweep/methods/buildNet/02-multiply.js delete mode 100644 src/1-one/sweep/methods/buildNet/03-cache.js delete mode 100644 src/1-one/sweep/methods/buildNet/04-group.js delete mode 100644 src/1-one/sweep/methods/sweep/01-candidates.js create mode 100644 src/1-one/sweep/methods/sweep/01-getHooks.js rename src/1-one/sweep/methods/sweep/{03-runMatch.js => 04-runMatch.js} (100%) diff --git a/scratch.js b/scratch.js index 512deb2cb..b4fe2a454 100644 --- a/scratch.js +++ b/scratch.js @@ -1,8 +1,9 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/three.js' +import nlp from './src/two.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) - +import fs from 'fs' +let txt = fs.readFileSync('/Users/spencer/mountain/compromise/plugins/speed/tests/files/freshPrince.txt').toString() // nlp.verbose('tagger') // let doc = nlp('one match two three') @@ -47,18 +48,60 @@ import nlp from './src/three.js' // Upload documents required to verify your eligibility let matches = [ - // { match: '(he|she|they|#Noun) (has|have) (a|an|some)' }, - // { match: 'you foo' }, - // { match: 'foo bar' }, - { match: '{appointment}' } + // { match: 'two flub' }, + // { match: '(one|two) foo' } + // { match: '^(go|stop|wait) please (and|stop)' }, + // { match: '(foo|bar) please' } + // { match: '(one|two) please' }, + // { match: ' please two please' }, + // { match: '#Determiner [(shit|damn|hell)]' }, + // { match: 'the [(can|will|may)]' }, + // { match: 'to [(shit|hell)]' }, + // { match: '(right|rights) of .' } + // { match: 'please (and|stop) please' } + + // - #Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)? + // - (had|has) to [#Noun] (#Determiner|#Possessive) + // - (a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun) + // - (king|queen|prince|saint|lady) of #Noun + // - (the|these) [#Singular] (were|are) + // - (let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it) + // - (the|those|these|a|an) #Adjective? [#Infinitive] + // - (the|those|these|a|an) #Adjective? [#PresentTense] + // - #Infinitive (this|that|the) [#Infinitive] + // - (the|this|a|an) [#Infinitive] #Adverb? #Verb + // - ^[#Infinitive] (your|my|the|some|a|an) + // - #Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition + // - [#Verb (in|out|up|down|off|back)] (on|in) + // - (prince|lady) #Place + // - (king|queen|prince|saint) #ProperNoun + // - (this|next|last) [(march|may)] + // - [(half|quarter)] of? (a|an) + // - !once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion) + // - ^(go|stop|wait|hurry) please?$ + { match: '(well|so|okay|now)' } +] + + +matches = [ + { match: '2nd quarter 2022' }, ] let net = nlp.buildNet(matches) -let doc = nlp(`you have some appointments`) -doc.compute('root') -console.log(doc.text('root')) +let doc = nlp(` in the 2nd quarter 2022`) +let { view, found } = doc.sweep(net) +view.debug() + +// 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() +// doc.match(net).debug() // console.log(doc.has(net)) // doc.debug() // console.log(doc.has('re-purpose')) diff --git a/src/1-one/sweep/lib.js b/src/1-one/sweep/lib.js index 817f4410b..2204ca44c 100644 --- a/src/1-one/sweep/lib.js +++ b/src/1-one/sweep/lib.js @@ -2,11 +2,8 @@ export default { // compile a list of matches into a match-net buildNet: function (matches) { const methods = this.methods() - let { index, always } = methods.one.buildNet(matches, this.world()) - return { - isNet: true, - index, - always - } + let net = methods.one.buildNet(matches, this.world()) + net.isNet = true + return net } } \ No newline at end of file diff --git a/src/1-one/sweep/methods/buildNet/01-parse.js b/src/1-one/sweep/methods/buildNet/01-parse.js index 886a7e9bc..9598a8390 100644 --- a/src/1-one/sweep/methods/buildNet/01-parse.js +++ b/src/1-one/sweep/methods/buildNet/01-parse.js @@ -1,3 +1,63 @@ +// extract the clear needs for an individual match token +const getTokenNeeds = function (reg) { + // negatives can't be cached + if (reg.optional === true || reg.negative === true) { + return null + } + if (reg.tag) { + return '#' + reg.tag + } + if (reg.word) { + return reg.word + } + if (reg.switch) { + return `%${reg.switch}%` + } + return null +} + +const getNeeds = function (regs) { + let needs = [] + regs.forEach(reg => { + 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 = [] + regs.forEach(reg => { + if (reg.operator === 'or') { + // 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) { + wants.push(n) + } + }) + }) + } + } + }) + return wants +} + const parse = function (matches, world) { const parseMatch = world.methods.one.parseMatch matches.forEach(obj => { @@ -6,6 +66,11 @@ const parse = function (matches, world) { if (typeof obj.ifNo === 'string') { obj.ifNo = [obj.ifNo] } + // cache any requirements up-front + obj.needs = getNeeds(obj.regs) + obj.wants = getWants(obj.regs) + // get rid of tiny sentences + obj.minWords = obj.regs.filter(o => !o.optional).length }) return matches } diff --git a/src/1-one/sweep/methods/buildNet/02-multiply.js b/src/1-one/sweep/methods/buildNet/02-multiply.js deleted file mode 100644 index f37b129e6..000000000 --- a/src/1-one/sweep/methods/buildNet/02-multiply.js +++ /dev/null @@ -1,51 +0,0 @@ -// 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 -} - - -export default buildUp diff --git a/src/1-one/sweep/methods/buildNet/03-cache.js b/src/1-one/sweep/methods/buildNet/03-cache.js deleted file mode 100644 index ee5f961a7..000000000 --- a/src/1-one/sweep/methods/buildNet/03-cache.js +++ /dev/null @@ -1,54 +0,0 @@ -// extract the clear needs for an individual match token -const getTokenNeeds = function (reg) { - // negatives can't be cached - if (reg.optional === true || reg.negative === true) { - return null - } - if (reg.tag) { - return '#' + reg.tag - } - if (reg.word) { - return reg.word - } - if (reg.switch) { - return `%${reg.switch}%` - } - return null -} - -// extract the clear needs for each match -const findNeeds = function (regs) { - // parse match strings - let need = new Set() - 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 => { - let n = getTokenNeeds(r) - if (n) { - need.add(n) - } - }) - }) - } - } - }) - return need -} - -// produce quick lookups for a list of matches -const cache = function (matches) { - matches.forEach(obj => { - obj.needs = Array.from(findNeeds(obj.regs)) - // get rid of tiny sentences - obj.minWords = obj.regs.filter(o => !o.optional).length - }) - return matches -} - -export default cache diff --git a/src/1-one/sweep/methods/buildNet/04-group.js b/src/1-one/sweep/methods/buildNet/04-group.js deleted file mode 100644 index 2d8dd5e0f..000000000 --- a/src/1-one/sweep/methods/buildNet/04-group.js +++ /dev/null @@ -1,12 +0,0 @@ -const groupBy = function (matches) { - let byGroup = {} - matches.forEach(obj => { - obj.needs.forEach(need => { - byGroup[need] = byGroup[need] || [] - byGroup[need].push(obj) - }) - }) - return byGroup -} - -export default groupBy diff --git a/src/1-one/sweep/methods/buildNet/index.js b/src/1-one/sweep/methods/buildNet/index.js index df4c406e7..3eaef132d 100644 --- a/src/1-one/sweep/methods/buildNet/index.js +++ b/src/1-one/sweep/methods/buildNet/index.js @@ -1,34 +1,40 @@ import parse from './01-parse.js' -import buildUp from './02-multiply.js' -import cache from './03-cache.js' -import group from './04-group.js' // do some indexing on the list of matches const compile = function (matches, world) { - let { methods } = world // turn match-syntax into json matches = parse(matches, world) - // convert (a|b) to ['a', 'b'] - matches = buildUp(matches) - // matches = buildUp(matches) // run this twice - // retrieve the needs of each match statement - matches = cache(matches, methods) - // 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, methods) - // 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! + // collect by wants and needs + let hooks = {} + matches.forEach(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 + }) + }) + // keep all un-cacheable matches (those with no needs) + let always = matches.filter(o => o.needs.length === 0 && o.wants.length === 0) return { - index: byGroup, + hooks, always } } diff --git a/src/1-one/sweep/methods/sweep/01-candidates.js b/src/1-one/sweep/methods/sweep/01-candidates.js deleted file mode 100644 index 9f0c01609..000000000 --- a/src/1-one/sweep/methods/sweep/01-candidates.js +++ /dev/null @@ -1,14 +0,0 @@ -// 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]) - } - }) - return new Set(maybes) - }) -} - -export default matchUp diff --git a/src/1-one/sweep/methods/sweep/01-getHooks.js b/src/1-one/sweep/methods/sweep/01-getHooks.js new file mode 100644 index 000000000..2aecd25f9 --- /dev/null +++ b/src/1-one/sweep/methods/sweep/01-getHooks.js @@ -0,0 +1,23 @@ +// for each cached-sentence, find a list of possible matches +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]) + } + }) + // remove duplicates + let already = {} + maybe = maybe.filter(m => { + if (already[m.match]) { + return false + } + already[m.match] = true + return true + }) + return maybe + }) +} + +export default getHooks diff --git a/src/1-one/sweep/methods/sweep/02-trim-down.js b/src/1-one/sweep/methods/sweep/02-trim-down.js index 1afae74b1..4850c9cce 100644 --- a/src/1-one/sweep/methods/sweep/02-trim-down.js +++ b/src/1-one/sweep/methods/sweep/02-trim-down.js @@ -1,20 +1,27 @@ // filter-down list of maybe-matches const localTrim = function (maybeList, docCache) { - 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 + return obj.wants.find(str => haves.has(str)) + }) + return list + }) } export default localTrim diff --git a/src/1-one/sweep/methods/sweep/03-runMatch.js b/src/1-one/sweep/methods/sweep/04-runMatch.js similarity index 100% rename from src/1-one/sweep/methods/sweep/03-runMatch.js rename to src/1-one/sweep/methods/sweep/04-runMatch.js diff --git a/src/1-one/sweep/methods/sweep/index.js b/src/1-one/sweep/methods/sweep/index.js index a8b00d3cf..5e3666e77 100644 --- a/src/1-one/sweep/methods/sweep/index.js +++ b/src/1-one/sweep/methods/sweep/index.js @@ -1,15 +1,8 @@ -import getCandidates from './01-candidates.js' +import getHooks from './01-getHooks.js' import trimDown from './02-trim-down.js' -import runMatch from './03-runMatch.js' +// import getWants from './03-get-wants.js' +import runMatch from './04-runMatch.js' -// 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) => { @@ -25,7 +18,7 @@ const sweep = function (document, net, methods, opts = {}) { // 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(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 @@ -34,13 +27,15 @@ const sweep = function (document, net, methods, opts = {}) { } // 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(maybeList, document, methods, opts) // console.dir(results, { depth: 5 }) diff --git a/tests/one/match/sweep.test.js b/tests/one/match/sweep.test.js index dca251694..be0639689 100644 --- a/tests/one/match/sweep.test.js +++ b/tests/one/match/sweep.test.js @@ -3,7 +3,6 @@ import nlp from '../_lib.js' const here = '[one/sweep] ' test('sweep-basic:', function (t) { - let matches = [ { match: '2nd quarter of? 2022', tag: 'TimePeriod' }, { match: '(from|by|before) now', tag: 'FooBar' }, @@ -38,6 +37,7 @@ test('match-net-basic:', function (t) { // return after the first match let { view, found } = doc.sweep(net, { tagger: false, matchOne: true }) t.equal(view.length, 1, here + 'matchOne') + found[0] = found[0] || {} t.equal(found[0].match, 'john c .', here + 'matchOne-first') // .match @@ -160,6 +160,8 @@ test('sweep absolute indexes:', function (t) { res.view.soften() t.equal(res.view.text(), 'third', here + 'abs index in res') + res.found[0] = res.found[0] || {} + res.found[0].view = res.found[0].view || doc.none() res.found[0].view.soften() t.equal(res.found[0].view.text(), 'third', here + 'abs index in found') t.end() From b3cb16dcade2c359f38d80f0894ac2f873c23bec Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 13 Jun 2022 14:49:13 -0400 Subject: [PATCH 06/13] tests almost passing again --- 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 +- scratch.js | 53 +++---------------- src/1-one/sweep/methods/buildNet/01-parse.js | 2 +- src/2-two/postTagger/model/verbs/auxiliary.js | 33 +++--------- 10 files changed, 29 insertions(+), 87 deletions(-) diff --git a/builds/compromise.js b/builds/compromise.js index 9b62e9e76..869b5ddab 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.0";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.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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}},In=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};function Gn(e,t,n){return e.splice(t,1,...n),e}const Tn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Cn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Dn=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=>Cn(e.regs[n],t)),a.regs=Gn(a.regs,n,r),t.push(a)})}t.push(e)}),t};const On=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Bn=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=On(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=On(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Vn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t},zn=function(e,t){return e.map(e=>{let n=[];return e.forEach(e=>{t.hasOwnProperty(e)&&(n=n.concat(t[e]))}),new Set(n)})},$n=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},Fn=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},Sn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=In(e,t),e=Dn(e);let n=(e=Bn(e)).filter(e=>0===e.needs.length);return{index:Vn(e),always:n}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=zn(a,t.index);return o=$n(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),Fn(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&&Sn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(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 Jn=/ /,Ln=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Wn=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],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(/^#/,""),Wn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nqn(e,t,n,r))};var Kn=qn,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: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=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},tr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return _n(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=_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},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=>{_n(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 _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 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=_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 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},pr={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 mr=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||""),mr(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 mr(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)}},fr=function(e){Object.assign(e.prototype,gr)},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 vr=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(vr.has(e)||!t.hasOwnProperty(n))return 1;if(vr.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:fr,lib:br};const wr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,kr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var Pr=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 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]+$/,Jr=/['’]/,Lr=/^[a-z]\.([a-z]\.)+/i,Wr=/^[-+.][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||!Wr.test(e)?"'"===n&&qr.test(e)?(n="",t):"":(n="",t)))).replace(Mr,a=>(r=a,Jr.test(a)&&/[sn]['’]$/.test(t)&&!1===Jr.test(n)?(r=r.replace(Jr,""),"'"):!0===Lr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},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]\.,?$/,Zr=/[A-Z]{2,}('s|,)?$/,_r=/([a-z]\.)+[a-z]\.?$/;var Yr=function(e){return function(e){return!0===Rr.test(e)||!0===_r.test(e)||!0===Qr.test(e)||!0===Zr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},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},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:Tr,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||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Xr(e,t)}),n})}}}},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","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=>{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;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)},pa=function(e){let t=0,n=0,r=e.document;for(let e=0;ema(e,ca),machine:e=>ma(e,da),normal:e=>ma(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 va={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({},va,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ba(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(fn),m.extend(St),m.extend(Nn),m.extend(yr),m.plugin(be),m.extend(ga),m.plugin(f),m.extend(Ge),m.extend(ya),m.extend(Pe),m.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"},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",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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 Pa=36,Aa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ja=Aa.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ea=function(e){if(void 0!==ja[e])return ja[e];let t=0,n=1,r=Pa,a=1;for(;n=0;n--,a*=Pa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},xa=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=Ia(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ga(ka[e]);Oa.test(e)?Object.keys(t).forEach(t=>{if(Va[t]=e,"Noun|Verb"===e){let e=Da(t,za);Va[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 $a="Adjective";var Fa={beforeTags:{Determiner:$a,Possessive:$a},afterTags:{Adjective:$a},beforeWords:{seem:$a,seemed:$a,seems:$a,feel:$a,feels:$a,felt:$a,appear:$a,appears:$a,appeared:$a,also:$a,over:$a,under:$a,too:$a,it:$a,but:$a,still:$a,really:$a,quite:$a,well:$a,very:$a,deeply:$a,profoundly:$a,extremely:$a,so:$a,badly:$a,mostly:$a,totally:$a,awfully:$a,rather:$a,nothing:$a,something:$a,anything:$a},afterWords:{too:$a,also:$a,or:$a}};const Sa="Gerund";var Ha={beforeTags:{Adverb:Sa,Preposition:Sa,Conjunction:Sa},afterTags:{Adverb:Sa,Possessive:Sa,Person:Sa,Pronoun:Sa,Determiner:Sa,Copula:Sa,Preposition:Sa,Conjunction:Sa,Comparative:Sa},beforeWords:{been:Sa,keep:Sa,continue:Sa,stop:Sa,am:Sa,be:Sa,me:Sa,began:Sa,start:Sa,starts:Sa,started:Sa,stops:Sa,stopped:Sa,help:Sa,helps:Sa,avoid:Sa,avoids:Sa,love:Sa,loves:Sa,loved:Sa,hate:Sa,hates:Sa,hated:Sa},afterWords:{you:Sa,me:Sa,her:Sa,him:Sa,them:Sa,their:Sa,it:Sa,this:Sa,there:Sa,on:Sa,about:Sa,for:Sa}},Ma={beforeTags:Object.assign({},Fa.beforeTags,Ha.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Fa.afterTags,Ha.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Fa.beforeWords,Ha.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Fa.afterWords,Ha.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ja="Singular";var La={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 Wa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var qa={beforeTags:Object.assign({},Fa.beforeTags,La.beforeTags,Wa.beforeTags),afterTags:Object.assign({},Fa.afterTags,La.afterTags),beforeWords:Object.assign({},Fa.beforeWords,La.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fa.afterWords,La.afterWords)};const Ka={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ua={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ra={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 Za={beforeTags:Object.assign({},Fa.beforeTags,Ka),afterTags:Object.assign({},Fa.afterTags,Ua),beforeWords:Object.assign({},Fa.beforeWords,Ra),afterWords:Object.assign({},Fa.afterWords,Qa)};const _a="Infinitive";var Ya={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,when:_a,all:_a,to:_a,because:_a,although:_a,before:_a,how:_a,otherwise:_a,though:_a,yet:_a}};const Xa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var eo={beforeTags:Object.assign({},Fa.beforeTags,Ya.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Fa.afterTags,Ya.afterTags,Xa.afterTags),beforeWords:Object.assign({},Fa.beforeWords,Ya.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fa.afterWords,Ya.afterWords,{to:void 0})};const to={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},no={},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"},ao={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oo={beforeTags:Object.assign({},Ha.beforeTags,La.beforeTags,to),afterTags:Object.assign({},Ha.afterTags,La.afterTags,no),beforeWords:Object.assign({},Ha.beforeWords,La.beforeWords,ro),afterWords:Object.assign({},Ha.afterWords,La.afterWords,ao)},io={beforeTags:Object.assign({},Ya.beforeTags,La.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ya.afterTags,La.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ya.beforeWords,La.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ya.afterWords,La.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const so="Person";var lo={beforeTags:{Honorific:so,Person:so,Preposition:so},afterTags:{Person:so,ProperNoun:so,Verb:so},ownTags:{ProperNoun:so},beforeWords:{hi:so,hey:so,yo:so,dear:so,hello:so},afterWords:{said:so,says:so,told:so,tells:so,feels:so,felt:so,seems:so,thinks:so,thought:so,spends:so,spendt:so,plays:so,played:so,sing:so,sang:so,learn:so,learned:so,wants:so,wanted:so}};const uo="Month",co={beforeTags:{Date:uo,Value:uo},afterTags:{Date:uo,Value:uo},beforeWords:{by:uo,in:uo,on:uo,during:uo,after:uo,before:uo,between:uo,until:uo,til:uo,sometime:uo,of:uo,this:uo,next:uo,last:uo,previous:uo,following:uo},afterWords:{sometime:uo,in:uo,of:uo,until:uo,the:uo}};var ho={beforeTags:Object.assign({},lo.beforeTags,co.beforeTags),afterTags:Object.assign({},lo.afterTags,co.afterTags),beforeWords:Object.assign({},lo.beforeWords,co.beforeWords),afterWords:Object.assign({},lo.afterWords,co.afterWords)};const po={Place:"Place"},mo={Place:"Place",Abbreviation:"Place"},go={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},bo={"Adj|Gerund":Ma,"Adj|Noun":qa,"Adj|Past":Za,"Adj|Present":eo,"Noun|Verb":io,"Noun|Gerund":oo,"Person|Noun":{beforeTags:Object.assign({},La.beforeTags,lo.beforeTags),afterTags:Object.assign({},La.afterTags,lo.afterTags),beforeWords:Object.assign({},La.beforeWords,lo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},La.afterWords,lo.afterWords)},"Person|Date":ho,"Person|Verb":{beforeTags:Object.assign({},lo.beforeTags,Ya.beforeTags),afterTags:Object.assign({},lo.afterTags,Ya.afterTags),beforeWords:Object.assign({},lo.beforeWords,Ya.beforeWords),afterWords:Object.assign({},lo.afterWords,Ya.afterWords)},"Person|Place":{beforeTags:Object.assign({},po,lo.beforeTags),afterTags:Object.assign({},mo,lo.afterTags),beforeWords:Object.assign({},go,lo.beforeWords),afterWords:Object.assign({},fo,lo.afterWords)}},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",jo="PastTense",Eo="Adverb",xo="Plural",No="Actor",Io="Verb",Go="Noun",To="LastName",Co="Modal",Do="Participle";var Oo=[null,null,{ea:Ao,ia:Go,ic:wo,ly:Eo,"'n":Io,"'t":Io},{oed:jo,ued:jo,xed:jo," so":Eo,"'ll":Co,"'re":"Copula",azy:wo,eer:Go,end:Io,ped:jo,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:jo,ken:Do,ven:Do,ten:Do,ect:ko,ict:ko,ign:ko,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:To,cede:ko,chuk:To,czyk:To,ects:Po,ends:Io,enko:To,ette:Ao,wner:Ao,fies:Po,fore:Eo,gate:ko,gone:wo,ices:xo,ints:xo,ruct:ko,ines:xo,ions:xo,less:wo,llen:wo,made:wo,nsen:To,oses:Po,ould:Co,some:wo,sson:To,tion:Ao,tage:Go,ique:Ao,tive:wo,tors:Go,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:ko,ract:ko,duce:ko,pose:ko,eive:ko,lyze:ko,lyse:ko,iant:wo,nary:wo},{elist:Ao,holic:Ao,phite:Ao,tized:jo,urned:jo,eased:jo,ances:xo,bound:wo,ettes:xo,fully:Eo,ishes:Po,ities:xo,marek:To,nssen:To,ology:Go,osome:Ao,tment:Ao,ports:xo,rough:wo,tches:Po,tieth:"Ordinal",tures:xo,wards:Eo,where:Eo,archy:Go,pathy:Go,opoly:Go,embly:Go,phate:Go,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:To,parent:Ao,cedent:Ao,ionary:Ao,cklist:Ao,keeper:No,logist:No,teenth:"Value"},{opoulos:To,borough:"Place",sdottir:To}];const Bo="Adjective",Vo="Noun",zo="Verb";var $o=[null,null,{},{neo:Vo,bio:Vo,"de-":zo,"re-":zo,"un-":zo},{anti:Vo,auto:Vo,faux:Bo,hexa:Vo,kilo:Vo,mono:Vo,nano:Vo,octa:Vo,poly:Vo,semi:Bo,tele:Vo,"pro-":Bo,"mis-":zo,"dis-":zo,"pre-":Bo},{anglo:Vo,centi:Vo,ethno:Vo,ferro:Vo,grand:Vo,hepta:Vo,hydro:Vo,intro:Vo,macro:Vo,micro:Vo,milli:Vo,nitro:Vo,penta:Vo,quasi:Bo,radio:Vo,tetra:Vo,"omni-":Bo,"post-":Bo},{pseudo:Bo,"extra-":Bo,"hyper-":Bo,"inter-":Bo,"intra-":Bo,"deca-":Bo},{electro:Vo}];const Fo="Adjective",So="Infinitive",Ho="PresentTense",Mo="Singular",Jo="PastTense",Lo="Adverb",Wo="Expression",qo="Actor",Ko="Verb",Uo="Noun",Ro="LastName";var Qo={a:[[/.[aeiou]na$/,Uo,"tuna"],[/.[oau][wvl]ska$/,Ro],[/.[^aeiou]ica$/,Mo,"harmonica"],[/^([hyj]a+)+$/,Wo,"haha"]],c:[[/.[^aeiou]ic$/,Fo]],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$/,Mo,"steward"],[/[aeiou][^aeiou]id$/,Fo,""],[/.[vrl]id$/,Fo,"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$/,So,"antagonize"],[/.[^aeiou]ise$/,So,"antagonise"],[/.[aeiou]te$/,So,"bite"],[/.[^aeiou][ai]ble$/,Fo,"fixable"],[/.[^aeiou]eable$/,Fo,"maleable"],[/.[ts]ive$/,Fo,"festive"],[/[a-z]-like$/,Fo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Fo,"cornish"],[/.v[iy]ch$/,Ro,"..ovich"],[/^ug?h+$/,Wo,"ughh"],[/^uh[ -]?oh$/,Wo,"uhoh"],[/[a-z]-ish$/,Fo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ro,"polish-male"]],k:[[/^(k){2}$/,Wo,"kkkk"]],l:[[/.[gl]ial$/,Fo,"familial"],[/.[^aeiou]ful$/,Fo,"fitful"],[/.[nrtumcd]al$/,Fo,"natal"],[/.[^aeiou][ei]al$/,Fo,"familial"]],m:[[/.[^aeiou]ium$/,Mo,"magnesium"],[/[^aeiou]ism$/,Mo,"schism"],[/^[hu]m+$/,Wo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Fo,"republican"],[/[^aeiou]ician$/,qo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Wo,"noooo"],[/^(yo)+$/,Wo,"yoo"],[/^wo{2,}[pt]?$/,Wo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mo],[/[^i]fer$/,So],[/.[^aeiou][ao]pher$/,qo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Fo],[/[aeiou].*ist$/,Fo],[/^[a-z]et$/,Ko]],s:[[/.[^aeiou]ises$/,Ho],[/.[rln]ates$/,Ho],[/.[^z]ens$/,Ko],[/.[lstrn]us$/,Mo],[/.[aeiou]sks$/,Ho],[/.[aeiou]kes$/,Ho],[/[aeiou][^aeiou]is$/,Mo],[/[a-z]'s$/,Uo],[/^yes+$/,Wo]],v:[[/.[^aeiou][ai][kln]ov$/,Ro]],y:[[/.[cts]hy$/,Fo],[/.[st]ty$/,Fo],[/.[tnl]ary$/,Fo],[/.[oe]ry$/,Mo],[/[rdntkbhs]ly$/,Lo],[/.(gg|bb|zz)ly$/,Fo],[/...lly$/,Lo],[/.[gk]y$/,Fo],[/[bszmp]{2}y$/,Fo],[/.[ai]my$/,Fo],[/[ea]{2}zy$/,Fo],[/.[^aeiou]ity$/,Mo]]};const Zo="Verb",_o="Noun";var Yo={leftTags:[["Adjective",_o],["Possessive",_o],["Determiner",_o],["Adverb",Zo],["Pronoun",Zo],["Value",_o],["Ordinal",_o],["Modal",Zo],["Superlative",_o],["Demonym",_o],["Honorific","Person"]],leftWords:[["i",Zo],["first",_o],["it",Zo],["there",Zo],["not",Zo],["because",_o],["if",_o],["but",_o],["who",Zo],["this",_o],["his",_o],["when",_o],["you",Zo],["very","Adjective"],["old",_o],["never",Zo],["before",_o],["a","Singular"],["the",_o],["been",Zo]],rightTags:[["Copula",_o],["PastTense",_o],["Conjunction",_o],["Modal",_o]],rightWords:[["there",Zo],["me",Zo],["man","Adjective"],["only",Zo],["him",Zo],["it",Zo],["were",_o],["took",_o],["himself",Zo],["went",_o],["who",_o],["jr","Person"]]},Xo={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"},ei={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"},ti={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"},ni={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"},ri={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 oi=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},si=/^([0-9]+)/,li=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(si);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(si,"")]}(n[0],n[1])})};var ui=function(e={}){return(e=Object.assign({},e)).rules=li(e.rules),e.rules=ii(e.rules),e.rev&&(e.rev=li(e.rev),e.rev=ii(e.rev)),e.exceptions=li(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ci=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 hi=ui({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"}),di=ui(ni),pi=ui(ei),mi=ui(ti),gi=ci(hi),fi=ci(di),bi=ci(pi),vi=ci(mi),yi=ui(Xo),wi=ui(ri);var ki={fromPast:hi,fromPresent:di,fromGerund:pi,fromParticiple:mi,toPast:gi,toPresent:fi,toGerund:bi,toParticiple:vi,toComparative:yi,toSuperlative:wi,fromComparative:ci(yi),fromSuperlative:ci(wi)},Pi=["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),{}),Ai=[[/([^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,""]],ji=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(Ei[t].forEach(n=>e[n]=t),e),{});var xi=Ei,Ni=function(e){let t=e.substring(e.length-3);if(!0===xi.hasOwnProperty(t))return xi[t];let n=e.substring(e.length-2);return!0===xi.hasOwnProperty(n)?xi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ii={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Gi=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=Ni(e)),Ii.hasOwnProperty(e))c=Ii[e];else if("Participle"===n)c=oi(l,i);else if("PastTense"===n)c=oi(l,r);else if("PresentTense"===n)c=oi(l,a);else{if("Gerund"!==n)return e;c=oi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ti=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:oi(i,n),PresentTense:oi(i,r),Gerund:oi(i,a),FutureTense:"will "+e},u=oi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Ci=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 Di="ically",Oi=new Set(["analyt"+Di,"chem"+Di,"class"+Di,"clin"+Di,"crit"+Di,"ecolog"+Di,"electr"+Di,"empir"+Di,"frant"+Di,"grammat"+Di,"ident"+Di,"ideolog"+Di,"log"+Di,"mag"+Di,"mathemat"+Di,"mechan"+Di,"med"+Di,"method"+Di,"method"+Di,"mus"+Di,"phys"+Di,"phys"+Di,"polit"+Di,"pract"+Di,"rad"+Di,"satir"+Di,"statist"+Di,"techn"+Di,"technolog"+Di,"theoret"+Di,"typ"+Di,"vert"+Di,"whims"+Di]),Bi=[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"}],Vi=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"]),zi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var $i=function(e){return e.endsWith("ly")?Oi.has(e)?e.replace(/ically/,"ical"):Vi.has(e)?null:zi.hasOwnProperty(e)?zi[e]:Ci(e,Bi)||e:null};const Fi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Si={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Hi=function(e){if(Si.hasOwnProperty(e))return Si[e];let t=Ci(e,Fi);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"}],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"},Li=new Set(["terrible","annoying"]),Wi=function(e,t){const n=t.two.models.toSuperlative;return oi(e,n)},qi=function(e,t){const n=t.two.models.toComparative;return oi(e,n)};var Ki={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"]}},Ui={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===Ki.hasOwnProperty(i)&&Ki[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:ji,verbToInfinitive:Gi,getTense:Ni,verbConjugate:Ti,adjToSuperlative:Wi,adjToComparative:qi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return oi(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return oi(e,n)},advToAdjective:$i,adjToAdverb:Hi,adjToNoun:function(e){if(Ji.hasOwnProperty(e))return Ji[e];if(Li.has(e))return null;let t=Ci(e,Mi);return t||e+"ness"}}}},Ri=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 Zi=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 _i={two:{models:ki}};const Yi={"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"},Xi=function(e,t){const n={model:t,methods:Ui};let{lex:r,_multi:a}=Ui.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},es=function(e,t,n){let r=Ti(e,_i);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ts=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Yi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||es(a,r,!1),"Adj|Present"===o&&(es(a,r,!0),function(e,t,n){let r=Wi(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=Gi(a,_i,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Gi(a,_i,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Xi(n,t)};let ns={one:{_multiCache:{},lexicon:Ba},two:{irregularPlurals:wa,models:ki,suffixPatterns:Oo,prefixPatterns:$o,endsWith:Qo,neighbours:Yo,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:Pi}};ns=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=Xi(e.one.lexicon,e)).one.lexicon,e),e=ts(e.two.switches,e),e=Zi(e),e=Ri(e)}(ns);var rs=ns;const as=/^(under|over|mis|re|un|dis|semi)-?/;var os=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])}},is=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 ss={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ls=new Set(["formulas","koalas","israelis","menus"]),us=["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 cs=function(e){if(!e||e.length<=3)return!1;if(ls.has(e))return!0;let t=e[e.length-1];return ss.hasOwnProperty(t)?ss[t].find(t=>e.endsWith(t)):"s"===t&&!us.find(t=>e.endsWith(t))};const hs=["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))||(cs(e.normal)?is(e,"Plural","3-plural-guess"):is(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ni(e.normal);t&&is(e,t,"3-verb-tense-guess")}}(r)};const ps=/^\p{Lu}[\p{Ll}'’]/u,ms=/[0-9]/,gs=["Date","Month","WeekDay","Unit"],fs=/^[IVXLCDM]{2,}$/,bs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,vs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ys=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===ps.test(o)&&!1===ms.test(o)?gs.find(e=>r.tags.has(e))?null:(ds(e,t,n),r.tags.has("Noun")||r.tags.clear(),is(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&fs.test(o)&&bs.test(o)&&!vs[r.normal]?(is(r,"RomanNumeral","2-xvii"),!0):null};const ws=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 ks=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ws(r.normal,n.two.suffixPatterns);if(null!==e)return is(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ws(r.implicit,n.two.suffixPatterns),null!==e))return is(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Ps=/['‘’‛‵′`´]/,As=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 is(r,e,"2-prefix"),r.confidence=.5,!0}return null};const xs=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"]),Ns=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!xs.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Is=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Gs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Ts=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(Ns(a)||Ns(o))return is(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Is(a)||Is(o))return is(n,"Year","2-tagYear-close");if(Gs(e[t-2])||Gs(e[t+2]))return is(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 is(n,"Year","2-tagYear-noun")}}}return null};const Cs=/^[A-Z]('s|,)?$/,Ds=/^[A-Z-]+$/,Os=/([A-Z]\.)+[A-Z]?,?$/,Bs=/[A-Z]{2,}('s|,)?$/,Vs=/([a-z]\.)+[a-z]\.?$/,zs={I:!0,A:!0};var $s=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===Ds.test(n)||n.length>5||zs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Os.test(n)&&!0!==Vs.test(n)&&!0!==Cs.test(n)&&!0!==Bs.test(n))}(r,n)?(r.tags.clear(),is(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!zs.hasOwnProperty(r.text)&&Cs.test(r.text)?(r.tags.clear(),is(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(is(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ds.test(r.text)&&r.text.length<=6?(is(r,"Acronym","3-titlecase-acronym"),!0):null};const Fs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ss=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Hs=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||Fs(e[t-1],a),l=l||Fs(e[t+1],o),l=l||Ss(e[t-1],r),l=l||Ss(e[t+1],i),l)return is(s,l,"3-[neighbour]"),ds(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 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]&&Ms(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ms(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ls=function(e,t,n){0===e[t].tags.size&&(is(e[t],"Noun","3-[fallback]"),ds(e,t,n),e[t].confidence=.1)};const Ws=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,qs=(e,t,n)=>0!==t||e[1]?null:n;var Ks={"Adj|Gerund":(e,t)=>Ws(e,t),"Adj|Noun":(e,t)=>Ws(e,t),"Adj|Past":(e,t)=>Ws(e,t),"Adj|Present":(e,t)=>Ws(e,t),"Noun|Gerund":(e,t)=>Ws(e,t),"Noun|Verb":(e,t)=>Ws(e,t)||qs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ws(e,t)||qs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ws(e,t),"Person|Verb":(e,t)=>0!==t&&Ws(e,t)};const Us="undefined"!=typeof process&&process.env?process.env:self.env||{},Rs=/^(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&&Us.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Zs=(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&&Us.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},_s={tagSwitch:os,checkSuffix:ks,checkRegex:js,checkCase:ys,checkPrefix:Es,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")&&(is(o,"Verb","3-[prefix]"),is(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(is(o,"Adjective","3-[prefix]"),is(o,"Prefix","3-[prefix]")))},checkYear:Ts},Ys={checkAcronym:$s,neighbours:Hs,orgWords:Js,nounFallback:Ls,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(Rs.test(l)&&!o[l]&&(l=l.replace(Rs,"")),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||Zs(e[t-1],n.beforeTags,a),o=o||Zs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ks[o]&&(u=Ks[o](e,t)||u),u?(Us.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):Us.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Xs=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)},nl={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 rl={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 ml=/'/;var gl=function(e,t){let n=e[t].normal.split(ml)[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 fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[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"]},vl=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 yl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},wl={in:!0,by:!0,for:!0};var kl=(e,t)=>{let n=e[t];if(yl.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===wl[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 Pl=/'/,Al=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)},jl={d:(e,t)=>bl(e,t),t:(e,t)=>vl(e,t),s:(e,t,n)=>kl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):gl(e,t)},El=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var xl={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===Pl.test(r[o].normal)&&([,i]=r[o].normal.split(Pl));let s=null;jl.hasOwnProperty(i)&&(s=jl[i](r,o,t)),s&&(s=El(s,e),pl(n,[a,o],s),Al(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=hl},hooks:["contractionTwo"]};const Nl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Il=["i","we","they"];let Gl=[].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:"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)",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:Nl+" #Person",tag:"Person",reason:"randy-smith"},{match:Nl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Nl}]`,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:Il,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:Il,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Il,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"}]),Tl=null;var Cl={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;Tl=Tl||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(Tl),e.uncache(),e}},model:{two:{matches:Gl}},hooks:["postTagger"]},Dl=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)},Ol=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Dl(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},Bl={api:function(e){e.prototype.swap=Ol}};m.plugin(ll),m.plugin(xl),m.plugin(Cl),m.plugin(Bl);var Vl=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},zl=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 $l={this:"Noun",then:"Pivot"};var Fl=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))})},Kl={compute:{chunks:function(e){const{document:t,world:n}=e;Fl(t),Sl(t),Jl(e,t,n),Wl(t),ql(t)}},api:function(e){e.prototype.chunks=zl,e.prototype.clauses=Vl},hooks:["chunks"]};const Ul=/'s$/;var Rl=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(Ul,""),e.normal=e.normal.replace(Ul,"")})}),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=/\(/,Zl=/\)/,_l=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Ql,"");let t=e[e.length-1];t.post=t.post.replace(Zl,"")}),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 Xl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},eu=RegExp("("+Object.keys(Xl).join("|")+")"),tu=RegExp("("+Object.values(Xl).join("|")+")"),nu=function(e,t){const n=e[t].pre.match(eu)[0]||"";if(!n||!Xl[n])return null;const r=Xl[n];for(;t{e[0].pre=e[0].pre.replace(eu,"");let t=e[e.length-1];t.post=t.post.replace(tu,"")})}(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 au=/\./g;var ou=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(au,""),e.normal=e.normal.replace(au,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(au,""),e.normal=e.normal.replace(au,""),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)}},iu=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 su=(e,t)=>"number"==typeof t?e.eq(t):e,lu=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 uu=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=lu(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 su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=su(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=su(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=su(t,e),new Adjectives(t.document,t.pointer)}};const cu=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},hu=[["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 du=[["emojis","emoji"],["atmentions","atMentions"]];var pu=function(e){hu.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=cu,du.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},mu={api:function(e){pu(e),Rl(e),Yl(e),ru(e),uu(e),iu(e),ou(e)}};const gu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var fu={case:e=>{gu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;gu(e,e=>e.text=n(e.text,t))},whitespace:e=>{gu(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=>{gu(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 bu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),vu="unicode|punctuation|whitespace|acronyms",yu="|case|contractions|parentheses|quotations|emoji|honorifics",wu={light:bu(vu),medium:bu(vu+yu),heavy:bu(vu+yu+"|possessives|adverbs|nouns|verbs")};var ku={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=wu[e]),Object.keys(e).forEach(t=>{fu.hasOwnProperty(t)&&fu[t](this,e[t])}),this}}},Pu=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 Au=["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 ju=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")},xu=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:Eu(e,t),isSubordinate:ju(e),root:t}};const Nu=e=>e.text(),Iu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Gu=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Tu=function(e){let t=xu(e);return{root:Nu(t.root),number:Gu(t.number),determiner:Nu(t.determiner),adjectives:Iu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Cu={tags:!0};var Du=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,Cu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Cu),e};const Ou={tags:!0};var Bu=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,Ou).tag("Singular","toPlural"),e};const Vu=(e,t)=>"number"==typeof t?e.eq(t):e;var zu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Vu(this,e).map(xu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Tu(t)),n},[])}isPlural(e){let t=this.filter(e=>xu(e).isPlural);return Vu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=xu(e).adjectives;n.found&&(t=t.concat(n))}),Vu(t,e)}toPlural(e){return Vu(this,e).map(e=>Du(e,xu(e)))}toSingular(e){return Vu(this,e).map(e=>{let t=xu(e);return Bu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Pu(this);return t=Vu(t,e),new Nouns(this.document,t.pointer)}}},$u=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},Fu=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(Su.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Su.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Su.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Mu=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 Lu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Wu={"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 Ku=function(e){if(!0===Wu.hasOwnProperty(e))return Wu[e];if("a"===e||"an"===e)return 1;const t=Fu(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=Ru(n),r=Ru(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:Ru(n);let a=r.text("reduced");return Uu.test(a)&&(a=a.replace(Uu,""),r=r.replaceWith(a)),r=Qu.hasOwnProperty(a)?Qu[a]:Ru(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:Ru(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},_u=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 Yu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Xu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],ec=[[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"]],tc=function(e){let t=[];if(e>100)return t;for(let n=0;n=Yu[n][1]&&(e-=Yu[n][1],t.push(Yu[n][0]));return Xu[e]&&t.push(Xu[e]),t};var nc=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=_u(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return ec.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(tc(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=_u(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(" ")},rc=function(e){return e.numerator&&e.denominator?`${nc({num:e.numerator})} out of ${nc({num:e.denominator})}`:""};const ac={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 oc=e=>{let t=nc(e).split(" "),n=t[t.length-1];return ac.hasOwnProperty(n)?t[t.length-1]=ac[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},ic=function(e){if(!e.numerator||!e.denominator)return"";let t=nc({num:e.numerator}),n=oc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const sc=(e,t)=>"number"==typeof t?e.eq(t):e;var lc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return sc(this,e).map(Zu)}get(e){return sc(this,e).map(Zu)}json(e){return sc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Zu(t);return n.fraction=r,n},[])}toDecimal(e){return sc(this,e).forEach(e=>{let{decimal:t}=Zu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return sc(this,e).forEach(e=>{let t=Zu(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 sc(this,e).forEach(e=>{let t=Zu(e),n=ic(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return sc(this,e).forEach(e=>{let t=Zu(e),n=rc(t);e.replaceWith(n)}),this}toPercentage(e){return sc(this,e).forEach(e=>{let{decimal:t}=Zu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=$u(this);return t=sc(t,e),new Fractions(this.document,t.pointer)}};const uc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var cc=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("("+uc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+uc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+uc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+uc+")"));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) (${uc})`),r=e.has("("+uc+") #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("("+uc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+uc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},hc=function(e){if("string"==typeof e)return{num:Ku(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=Zu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Ku(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")}},dc=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=_u(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const pc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},mc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var gc=function(e){let t={suffix:"",prefix:e.prefix};return pc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+pc[e.prefix],t.prefix=""),mc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+mc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},fc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=gc(e);return t+oc(e)+n}if("Ordinal"===t)return e.prefix+dc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=gc(e);return t+nc(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const bc=(e,t)=>"number"==typeof t?e.eq(t):e;var vc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return bc(this,e).map(hc)}get(e){return bc(this,e).map(hc).map(e=>e.num)}json(e){return bc(this,e).map(t=>{let n=t.toView().json(e)[0],r=hc(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=hc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=fc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=hc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=fc(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=>hc(t).num===e)}greaterThan(e){return this.filter(t=>hc(t).num>e)}lessThan(e){return this.filter(t=>hc(t).num{let r=hc(n).num;return r>e&&r{let n=hc(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=fc(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=hc(e).num);let t=this.map(t=>{let n=hc(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=fc(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=cc(this);return t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=cc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=cc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},yc={api:function(e){lc(e),vc(e)}};const wc={people:!0,emails:!0,phoneNumbers:!0,places:!0},kc=function(e={}){return!1!==(e=Object.assign({},wc,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 Pc={api:function(e){e.prototype.redact=kc}},Ac=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))})},jc=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))))))},Ec=function(e){let t=e.clauses(),n=jc(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}},xc=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},Nc=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},Ic=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},Gc=function(e){return e.verbs().toInfinitive(),e};const Tc=(e,t)=>"number"==typeof t?e.eq(t):e;var Cc={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}=Ec(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Tc(this,e).map(e=>(Ec(e),xc(e)))}toPresentTense(e){return Tc(this,e).map(e=>(Ec(e),Nc(e)))}toFutureTense(e){return Tc(this,e).map(e=>(Ec(e),e=Ic(e)))}toInfinitive(e){return Tc(this,e).map(e=>(Ec(e),Gc(e)))}toNegative(e){return Tc(this,e).map(e=>(Ec(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Tc(this,e).map(e=>(Ec(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 Tc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Tc(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=Tc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Ac(this);return Tc(t,e)}};Object.assign(e.prototype,t)}},Dc=function(e){return e.match("#Honorific+? #Person+")},Oc=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 Bc="male",Vc="female",zc={mr:Bc,mrs:Vc,miss:Vc,madam:Vc,king:Bc,queen:Vc,duke:Bc,duchess:Vc,baron:Bc,baroness:Vc,count:Bc,countess:Vc,prince:Bc,princess:Vc,sire:Bc,dame:Vc,lady:Vc,ayatullah:Bc,congressman:Bc,congresswoman:Vc,"first lady":Vc,mx:null};var $c=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Vc;if(n.has("#MaleName"))return Bc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),zc.hasOwnProperty(e))return zc[e];if(/^her /.test(e))return Vc;if(/^his /.test(e))return Bc}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 Bc;if(n&&!t)return Vc}return null};const Fc=(e,t)=>"number"==typeof t?e.eq(t):e;var Sc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Fc(this,e).map(Oc)}json(e){return Fc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Oc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:$c(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=Dc(this);return t=Fc(t,e),new People(this.document,t.pointer)}},Hc=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},Mc=function(e){e.prototype.places=function(t){let n=Hc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Jc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Lc=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 Wc=function(e){e.prototype.topics=Lc},qc={api:function(e){Sc(e),Mc(e),Jc(e),Wc(e)}},Kc=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},Uc=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},Rc=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},Zc=function(e){return e.match("#Negative")},_c=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Yc=function(e){let t=e.clone();t.contractions().expand();const n=Uc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Rc(t,n),auxiliary:Qc(t,n),negative:Zc(t),phrasal:_c(n)}};const Xc={tense:"PresentTense"},eh={conditional:!0},th={tense:"FutureTense"},nh={progressive:!0},rh={tense:"PastTense"},ah={complete:!0,progressive:!1},oh={passive:!0},ih=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},sh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Xc]],["^wanted to #Infinitive$",[rh]],["^will want to #Infinitive$",[th]]],"gerund-phrase":[["^#PastTense #Gerund$",[rh]],["^#PresentTense #Gerund$",[Xc]],["^#Infinitive #Gerund$",[Xc]],["^will #Infinitive #Gerund$",[th]],["^have #PastTense #Gerund$",[rh]],["^will have #PastTense #Gerund$",[rh]]],"simple-present":[["^#PresentTense$",[Xc]],["^#Infinitive$",[Xc]]],"simple-past":[["^#PastTense$",[rh]]],"simple-future":[["^will #Adverb? #Infinitive",[th]]],"present-progressive":[["^(is|are|am) #Gerund$",[Xc,nh]]],"past-progressive":[["^(was|were) #Gerund$",[rh,nh]]],"future-progressive":[["^will be #Gerund$",[th,nh]]],"present-perfect":[["^(has|have) #PastTense$",[rh,ah]]],"past-perfect":[["^had #PastTense$",[rh,ah]],["^had #PastTense to #Infinitive",[rh,ah]]],"future-perfect":[["^will have #PastTense$",[th,ah]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[rh,nh]]],"past-perfect-progressive":[["^had been #Gerund$",[rh,nh]]],"future-perfect-progressive":[["^will have been #Gerund$",[th,nh]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[rh,oh]],["^(was|were) being (#PastTense|#Participle)",[rh,oh]],["^(had|have) been (#PastTense|#Participle)",[rh,oh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Xc,oh]],["^(is|are|am) being (#PastTense|#Participle)",[Xc,oh]],["^has been (#PastTense|#Participle)",[Xc,oh]]],"passive-future":[["will have been (#PastTense|#Participle)",[th,oh,eh]],["will be being? (#PastTense|#Participle)",[th,oh,eh]]],"present-conditional":[["would be #PastTense",[Xc,eh]]],"past-conditional":[["would have been #PastTense",[rh,eh]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[th]]],"auxiliary-past":[["^did #Infinitive$",[rh,{plural:!1}]],["^used to #Infinitive$",[rh,ah]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Xc,ah,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[rh]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let lh=[];Object.keys(sh).map(e=>{sh[e].forEach(t=>{lh.push({name:e,match:t[0],data:ih(t[1])})})});var uh=lh,ch=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(),hh(r)&&(n.remove(r),r=n.last()),hh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:dh(t,e)}};const mh=e=>e,gh=(e,t)=>{let n=ph(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},fh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=ph(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},bh=function(e,t){let n=ph(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},vh=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},yh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,vh(e)),r&&e.replace(t.root,r),e},wh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),kh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Ph=function(e){return e&&e.isView?e.text("normal"):""},Ah=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,vh(e))};var jh=function(e){let t=Yc(e);e=e.clone().toView();const n=ch(e,t);return{root:t.root.text(),preAdverbs:kh(t.adverbs.pre),postAdverbs:kh(t.adverbs.post),auxiliary:Ph(t.auxiliary),negative:t.negative.found,prefix:Ph(t.prefix),infinitive:Ah(t.root),grammar:n}};const Eh={tags:!0};var xh=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,vh(r)),i&&e.replace(r,i,Eh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=bh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Nh={tags:!0},Ih={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,vh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=ph(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Nh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ih.simple(e,t),e=Ih.noAux(e,t))},hasHad:e=>(e.replace("has","had",Nh),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,vh(a)),n(o,e.model).Participle}},Gh={infinitive:Ih.simple,"simple-present":Ih.simple,"simple-past":mh,"simple-future":Ih.both,"present-progressive":e=>(e.replace("are","were",Nh),e.replace("(is|are|am)","was",Nh),e),"past-progressive":mh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ih.hasHad,"past-perfect":mh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=wh(e)),e.remove("have"),e),"present-perfect-progressive":Ih.hasHad,"past-perfect-progressive":mh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Nh),e),"passive-past":e=>(e.replace("have","had",Nh),e),"passive-present":e=>(e.replace("(is|are)","was",Nh),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",Nh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":mh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Nh),e),"auxiliary-past":mh,"auxiliary-present":e=>(e.replace("(do|does)","did",Nh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Nh):(Ih.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":mh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Nh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ih.simple(e,t),wh(e),e)};var Th=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},Dh=(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,vh(a)),!1===gh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=fh(e)),o&&(e=e.replace(a,o,Ch)).not("#Particle").tag("PresentTense"),e},Oh=(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,vh(a)),!1===gh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Ch)).not("#Particle").tag("Gerund"),e},Bh={infinitive:Dh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Dh(e,t);{let t=ph(e).subject;if(gh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Ch)}return e},"simple-past":Dh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=fh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Dh(e,t),e=e.remove("will");return e},"present-progressive":mh,"past-progressive":(e,t)=>{let n=fh(e);return e.replace("(were|was)",n,Ch)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Dh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=ph(e).subject;return gh(e)||n.has("i")?((e=yh(e,t)).remove("had"),e):(e.replace("had","has",Ch),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":mh,"past-perfect-progressive":e=>e.replace("had","has",Ch),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=fh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Ch),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":mh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":mh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Oh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=bh(e);return e.replace(t.auxiliary,n),e}return Oh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":mh,"modal-infinitive":mh,"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,vh(r)),a&&(e=e.replace(t.root,a,Ch))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Dh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return gh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Ch),e.remove("will"),e}};var Vh=function(e,t,n){return Bh.hasOwnProperty(n)?((e=Bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const zh={tags:!0},$h=(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,vh(r)),o&&(e=e.replace(r,o,zh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Fh=(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,vh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,zh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Sh={infinitive:$h,"simple-present":$h,"simple-past":$h,"simple-future":mh,"present-progressive":Fh,"past-progressive":Fh,"future-progressive":mh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":mh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":mh,"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":mh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":mh,"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":mh,"modal-past":mh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),$h(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Hh=function(e,t,n){return e.has("will")||e.has("going to")?e:Sh.hasOwnProperty(n)?((e=Sh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Mh={tags:!0};var Jh=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,vh(a));let s=r(i,e.model).Gerund;return s&&(s=`${fh(e)} ${s}`,e.replace(a,s,Mh)),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 Lh={tags:!0},Wh=function(e,t){let n=bh(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)},Kh=e=>e.has("(is|was|am|are|will|were|be)"),Uh={"simple-present":(e,t)=>!0===Kh(e)?qh(e):(e=yh(e,t),e=Wh(e)),"simple-past":(e,t)=>!0===Kh(e)?qh(e):((e=yh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Kh(e)?qh(e):Wh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Lh),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=Wh(e)).replace("wants","want",Lh)};var Rh=function(e,t,n){if(e.has("#Negative"))return e;if(Uh.hasOwnProperty(n))return e=Uh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Kh(e)?qh(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 Zh={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(Yc)}json(e,t){return Qh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=jh(t),n},[])}subjects(e){return Qh(this,e).map(e=>(Yc(e),ph(e).subject))}adverbs(e){return Qh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Qh(this,e).filter(e=>!0!==ph(e).plural)}isPlural(e){return Qh(this,e).filter(e=>!0===ph(e).plural)}isImperative(e){return Qh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return xh(e,t,n.form)})}toPresentTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Vh(e,t,n.form)})}toPastTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Th(e,t,n.form)})}toFutureTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Hh(e,t,n.form)})}toGerund(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Jh(e,t,n.form)})}conjugate(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:xh(e.clone(),t,n.form).text("normal"),PastTense:Th(e.clone(),t,n.form).text("normal"),PresentTense:Vh(e.clone(),t,n.form).text("normal"),FutureTense:Hh(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=Yc(e),n=ch(e,t);return Rh(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=Kc(this);return t=Qh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Kl),m.plugin(mu),m.plugin(ku),m.plugin(zu),m.plugin(yc),m.plugin(Pc),m.plugin(Cc),m.plugin(qc),m.plugin(Zh),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]);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.0";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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=In(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Tn=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})},Cn=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.find(e=>r.has(e)))})},Dn=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},On=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=Gn(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=Tn(a,t.hooks);return o=Cn(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),Dn(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&&On(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Bn(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 zn=/ /,$n=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],t,a),1!=(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(/^#/,""),Fn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nSn(e,t,n,r))};var Hn=Sn,Mn=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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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):(qn(t=e).forEach(Jn),t);var t},Qn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return qn(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=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},_n={text:Qn,txt:Qn,array:Zn,flat:Zn},Yn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Qn(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Xn=e=>{qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},er=/\//;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),!er.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(Kn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Jn({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 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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(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 Xn(this.json),Yn(this.json,e)}debug(){return Xn(this.json),Yn(this.json,"debug"),this}}const tr=function(e){let t=Rn(e);return new g$1(t)};tr.prototype.plugin=function(e){e(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(e){if(nr.hasOwnProperty(e.id))return nr[e.id];if(nr.hasOwnProperty(e.is))return nr[e.is];let t=e._cache.parents.find(e=>nr[e]);return nr[t]};var ar=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:rr(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 or=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=or(e[t].children),e[t].not=or(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},sr={one:{setTag:Hn,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=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 tr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ar(n)}}};const lr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ur={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||""),lr(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 lr(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,ur)},hr={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 dr=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(dr.has(e)||!t.hasOwnProperty(n))return 1;if(dr.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:sr,api:cr,lib:hr};const mr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var fr=function(e){let t=[],n=e.split(gr);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]+/,Vr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,zr=/['’]/,$r=/^[a-z]\.([a-z]\.)+/i,Fr=/^[-+.][0-9]/,Sr=/^'[0-9]{2}/;var Hr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Br,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fr.test(e)?"'"===n&&Sr.test(e)?(n="",t):"":(n="",t)))).replace(Vr,a=>(r=a,zr.test(a)&&/[sn]['’]$/.test(t)&&!1===zr.test(n)?(r=r.replace(zr,""),"'"):!0===$r.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Mr=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]?,?$/,Lr=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,qr=/([a-z]\.)+[a-z]\.?$/;var Kr=function(e){return function(e){return!0===Jr.test(e)||!0===qr.test(e)||!0===Lr.test(e)||!0===Wr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Ur=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Mr(r),r=n(r,t),r=Kr(r),e.normal=r},Rr={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:jr,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(Dr);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=Nr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Hr(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})}}}},Qr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zr={},_r={};[[["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,_r[t]="Abbreviation",void 0!==e[1]&&(_r[t]=[_r[t],e[1]])})});var Yr=["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 Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},ea={};Object.keys(Xr).forEach((function(e){Xr[e].split("").forEach((function(t){ea[t]=e}))}));const ta=/\//,na=/[a-z]\.[a-z]/i,ra=/[0-9]/;var aa=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])),ta.test(n)&&!na.test(n)&&!ra.test(n)){let t=n.split(ta);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const oa=/^\p{Letter}+-\p{Letter}+$/u;var ia=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"),oa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},sa=function(e){let t=0,n=0,r=e.document;for(let e=0;ela(e,aa),machine:e=>la(e,ia),normal:e=>la(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 da={safe:!0,min:3};var pa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ca},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},da,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ha(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(fn),m.extend(St),m.extend(Nn),m.extend(pr),m.plugin(be),m.extend(ua),m.plugin(f),m.extend(Ge),m.extend(pa),m.extend(Pe),m.extend(Vn);var ma={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"},ga={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 fa=36,ba="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",va=ba.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ya=function(e){if(void 0!==va[e])return va[e];let t=0,n=1,r=fa,a=1;for(;n=0;n--,a*=fa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},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(ga[e]);Na.test(e)?Object.keys(t).forEach(t=>{if(Ga[t]=e,"Noun|Verb"===e){let e=xa(t,Ta);Ga[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 Ca="Adjective";var Da={beforeTags:{Determiner:Ca,Possessive:Ca},afterTags:{Adjective:Ca},beforeWords:{seem:Ca,seemed:Ca,seems:Ca,feel:Ca,feels:Ca,felt:Ca,appear:Ca,appears:Ca,appeared:Ca,also:Ca,over:Ca,under:Ca,too:Ca,it:Ca,but:Ca,still:Ca,really:Ca,quite:Ca,well:Ca,very:Ca,deeply:Ca,profoundly:Ca,extremely:Ca,so:Ca,badly:Ca,mostly:Ca,totally:Ca,awfully:Ca,rather:Ca,nothing:Ca,something:Ca,anything:Ca},afterWords:{too:Ca,also:Ca,or:Ca}};const Oa="Gerund";var Ba={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}},Va={beforeTags:Object.assign({},Da.beforeTags,Ba.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Da.afterTags,Ba.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Da.beforeWords,Ba.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Da.afterWords,Ba.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({},Da.beforeTags,$a.beforeTags,Fa.beforeTags),afterTags:Object.assign({},Da.afterTags,$a.afterTags),beforeWords:Object.assign({},Da.beforeWords,$a.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.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"},Ja={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},La={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wa={beforeTags:Object.assign({},Da.beforeTags,Ha),afterTags:Object.assign({},Da.afterTags,Ma),beforeWords:Object.assign({},Da.beforeWords,Ja),afterWords:Object.assign({},Da.afterWords,La)};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,when:qa,all:qa,to:qa,because:qa,although:qa,before:qa,how:qa,otherwise:qa,though:qa,yet:qa}};const Ua={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Da.beforeTags,Ka.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,Ka.afterTags,Ua.afterTags),beforeWords:Object.assign({},Da.beforeWords,Ka.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,Ka.afterWords,{to:void 0})};const Qa={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Za={},_a={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({},Ba.beforeTags,$a.beforeTags,Qa),afterTags:Object.assign({},Ba.afterTags,$a.afterTags,Za),beforeWords:Object.assign({},Ba.beforeWords,$a.beforeWords,_a),afterWords:Object.assign({},Ba.afterWords,$a.afterWords,Ya)},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"},co={"Adj|Gerund":Va,"Adj|Noun":Sa,"Adj|Past":Wa,"Adj|Present":Ra,"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",bo="Singular",vo="PastTense",yo="Adverb",wo="Plural",ko="Actor",Po="Verb",Ao="Noun",jo="LastName",Eo="Modal",xo="Participle";var No=[null,null,{ea:bo,ia:Ao,ic:mo,ly:yo,"'n":Po,"'t":Po},{oed:vo,ued:vo,xed:vo," so":yo,"'ll":Eo,"'re":"Copula",azy:mo,eer:Ao,end:Po,ped:vo,ffy:mo,ify:go,ing:"Gerund",ize:go,ibe:go,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:vo,ken:xo,ven:xo,ten:xo,ect:go,ict:go,ign:go,ful:mo,bal:mo},{amed:vo,aped:vo,ched:vo,lked:vo,rked:vo,reed:vo,nded:vo,mned:mo,cted:vo,dged:vo,ield:bo,akis:jo,cede:go,chuk:jo,czyk:jo,ects:fo,ends:Po,enko:jo,ette:bo,wner:bo,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:jo,oses:fo,ould:Eo,some:mo,sson:jo,tion:bo,tage:Ao,ique:bo,tive:mo,tors:Ao,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:mo,vide:go,ract:go,duce:go,pose:go,eive:go,lyze:go,lyse:go,iant:mo,nary:mo},{elist:bo,holic:bo,phite:bo,tized:vo,urned:vo,eased:vo,ances:wo,bound:mo,ettes:wo,fully:yo,ishes:fo,ities:wo,marek:jo,nssen:jo,ology:Ao,osome:bo,tment:bo,ports:wo,rough:mo,tches:fo,tieth:"Ordinal",tures:wo,wards:yo,where:yo,archy:Ao,pathy:Ao,opoly:Ao,embly:Ao,phate:Ao,ndent:bo,scent:bo,onist:bo,anist:bo,alist:bo,olist:bo,icist:bo,ounce:go,iable:mo,borne:mo,gnant:mo,inant:mo,igent:mo,atory:mo,rient:bo,dient:bo},{auskas:jo,parent:bo,cedent:bo,ionary:bo,cklist:bo,keeper:ko,logist:ko,teenth:"Value"},{opoulos:jo,borough:"Place",sdottir:jo}];const Io="Adjective",Go="Noun",To="Verb";var Co=[null,null,{},{neo:Go,bio:Go,"de-":To,"re-":To,"un-":To},{anti:Go,auto:Go,faux:Io,hexa:Go,kilo:Go,mono:Go,nano:Go,octa:Go,poly:Go,semi:Io,tele:Go,"pro-":Io,"mis-":To,"dis-":To,"pre-":Io},{anglo:Go,centi:Go,ethno:Go,ferro:Go,grand:Go,hepta:Go,hydro:Go,intro:Go,macro:Go,micro:Go,milli:Go,nitro:Go,penta:Go,quasi:Io,radio:Go,tetra:Go,"omni-":Io,"post-":Io},{pseudo:Io,"extra-":Io,"hyper-":Io,"inter-":Io,"intra-":Io,"deca-":Io},{electro:Go}];const Do="Adjective",Oo="Infinitive",Bo="PresentTense",Vo="Singular",zo="PastTense",$o="Adverb",Fo="Expression",So="Actor",Ho="Verb",Mo="Noun",Jo="LastName";var Lo={a:[[/.[aeiou]na$/,Mo,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,Do]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Vo,"steward"],[/[aeiou][^aeiou]id$/,Do,""],[/.[vrl]id$/,Do,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,Oo,"antagonize"],[/.[^aeiou]ise$/,Oo,"antagonise"],[/.[aeiou]te$/,Oo,"bite"],[/.[^aeiou][ai]ble$/,Do,"fixable"],[/.[^aeiou]eable$/,Do,"maleable"],[/.[ts]ive$/,Do,"festive"],[/[a-z]-like$/,Do,"woman-like"]],h:[[/.[^aeiouf]ish$/,Do,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,Do,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Fo,"kkkk"]],l:[[/.[gl]ial$/,Do,"familial"],[/.[^aeiou]ful$/,Do,"fitful"],[/.[nrtumcd]al$/,Do,"natal"],[/.[^aeiou][ei]al$/,Do,"familial"]],m:[[/.[^aeiou]ium$/,Vo,"magnesium"],[/[^aeiou]ism$/,Vo,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Do,"republican"],[/[^aeiou]ician$/,So,"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$/,Vo],[/[^i]fer$/,Oo],[/.[^aeiou][ao]pher$/,So],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Do],[/[aeiou].*ist$/,Do],[/^[a-z]et$/,Ho]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,Ho],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,Mo],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,Do],[/.[st]ty$/,Do],[/.[tnl]ary$/,Do],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,$o],[/.(gg|bb|zz)ly$/,Do],[/...lly$/,$o],[/.[gk]y$/,Do],[/[bszmp]{2}y$/,Do],[/.[ai]my$/,Do],[/[ea]{2}zy$/,Do],[/.[^aeiou]ity$/,Vo]]};const Wo="Verb",qo="Noun";var Ko={leftTags:[["Adjective",qo],["Possessive",qo],["Determiner",qo],["Adverb",Wo],["Pronoun",Wo],["Value",qo],["Ordinal",qo],["Modal",Wo],["Superlative",qo],["Demonym",qo],["Honorific","Person"]],leftWords:[["i",Wo],["first",qo],["it",Wo],["there",Wo],["not",Wo],["because",qo],["if",qo],["but",qo],["who",Wo],["this",qo],["his",qo],["when",qo],["you",Wo],["very","Adjective"],["old",qo],["never",Wo],["before",qo],["a","Singular"],["the",qo],["been",Wo]],rightTags:[["Copula",qo],["PastTense",qo],["Conjunction",qo],["Modal",qo]],rightWords:[["there",Wo],["me",Wo],["man","Adjective"],["only",Wo],["him",Wo],["it",Wo],["were",qo],["took",qo],["himself",Wo],["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"},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"},Zo={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],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},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(Zo),si=ri(Ro),li=ri(Qo),ui=ai(oi),ci=ai(ii),hi=ai(si),di=ai(li),pi=ri(Uo),mi=ri(_o);var gi={fromPast:oi,fromPresent:ii,fromGerund:si,fromParticiple:li,toPast:ui,toPresent:ci,toGerund:hi,toParticiple:di,toComparative:pi,toSuperlative:mi,fromComparative:ai(pi),fromSuperlative:ai(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,""]],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(yi[t].forEach(n=>e[n]=t),e),{});var wi=yi,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=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},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},Ei=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 xi="ically",Ni=new Set(["analyt"+xi,"chem"+xi,"class"+xi,"clin"+xi,"crit"+xi,"ecolog"+xi,"electr"+xi,"empir"+xi,"frant"+xi,"grammat"+xi,"ident"+xi,"ideolog"+xi,"log"+xi,"mag"+xi,"mathemat"+xi,"mechan"+xi,"med"+xi,"method"+xi,"method"+xi,"mus"+xi,"phys"+xi,"phys"+xi,"polit"+xi,"pract"+xi,"rad"+xi,"satir"+xi,"statist"+xi,"techn"+xi,"technolog"+xi,"theoret"+xi,"typ"+xi,"vert"+xi,"whims"+xi]),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")?Ni.has(e)?e.replace(/ically/,"ical"):Gi.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:Ei(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=Ei(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"]),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"]}},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.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:xa,nounToSingular:vi,verbToInfinitive:Ai,getTense:ki,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:Ci,adjToAdverb:Bi,adjToNoun:function(e){if(zi.hasOwnProperty(e))return zi[e];if($i.has(e))return null;let t=Ei(e,Vi);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 Li=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Wi=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(r,"Infinitive","Verb"),Object.assign(s,l),l=Li(a,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(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")},Qi=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 Zi={one:{_multiCache:{},lexicon:Ia},two:{irregularPlurals:ma,models:gi,suffixPatterns:No,prefixPatterns:Co,endsWith:Lo,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:Ga,clues:po,uncountable:{},orgWords:fi}};Zi=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=Qi(e.two.switches,e),e=Wi(e),e=Ji(e)}(Zi);var _i=Zi;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])}},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"]},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 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===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 ms=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=ms(r.normal,n.two.suffixPatterns);if(null!==e)return es(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ms(r.implicit,n.two.suffixPatterns),null!==e))return es(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const fs=/['‘’‛‵′`´]/,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 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"]),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 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(ks(a)||ks(o))return es(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Ps(a)||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(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 Es=/^[A-Z]('s|,)?$/,xs=/^[A-Z-]+$/,Ns=/([A-Z]\.)+[A-Z]?,?$/,Is=/[A-Z]{2,}('s|,)?$/,Gs=/([a-z]\.)+[a-z]\.?$/,Ts={I:!0,A:!0};var Cs=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===xs.test(n)||n.length>5||Ts.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ns.test(n)&&!0!==Gs.test(n)&&!0!==Es.test(n)&&!0!==Is.test(n))}(r,n)?(r.tags.clear(),es(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ts.hasOwnProperty(r.text)&&Es.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")&&xs.test(r.text)&&r.text.length<=6?(es(r,"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},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||Ds(e[t-1],a),l=l||Ds(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},$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),"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||{},Js=/^(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&&Ms.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&&Ms.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},qs={tagSwitch:Xi,checkSuffix:gs,checkRegex:vs,checkCase:ps,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:Cs,neighbours:Bs,orgWords:zs,nounFallback:$s,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=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);Hs[o]&&(u=Hs[o](e,t)||u),u?(Ms.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):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)},Zs={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: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"]},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 pl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ml={in:!0,by:!0,for:!0};var gl=(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===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 fl=/'/,bl=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)},vl={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;vl.hasOwnProperty(i)&&(s=vl[i](r,o,t)),s&&(s=yl(s,e),sl(n,[a,o],s),bl(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 kl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",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:"[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:"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)",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: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:"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:"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"}]),jl=null;var El={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;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}},model:{two:{matches:Al}},hooks:["postTagger"]},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)},Nl=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},Il={api:function(e){e.prototype.swap=Nl}};m.plugin(nl),m.plugin(wl),m.plugin(El),m.plugin(Il);var Gl=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},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 Cl={this:"Noun",then:"Pivot"};var Dl=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))})},Hl={compute:{chunks:function(e){const{document:t,world:n}=e;Dl(t),Ol(t),zl(e,t,n),Fl(t),Sl(t)}},api:function(e){e.prototype.chunks=Tl,e.prototype.clauses=Gl},hooks:["chunks"]};const Ml=/'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(Ml,""),e.normal=e.normal.replace(Ml,"")})}),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=/\)/,ql=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 Ul={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Ul).join("|")+")"),Ql=RegExp("("+Object.values(Ul).join("|")+")"),Zl=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Ul[n])return null;const r=Ul[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ql,"")})}(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 Yl=/\./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(Yl,""),e.normal=e.normal.replace(Yl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Yl,""),e.normal=e.normal.replace(Yl,""),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)}},eu=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 tu=(e,t)=>"number"==typeof t?e.eq(t):e,nu=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 ru=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=nu(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 tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=tu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=tu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=tu(t,e),new Adjectives(t.document,t.pointer)}};const au=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},ou=[["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 iu=[["emojis","emoji"],["atmentions","atMentions"]];var su=function(e){ou.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=au,iu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},lu={api:function(e){su(e),Jl(e),Kl(e),_l(e),ru(e),eu(e),Xl(e)}};const uu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var cu={case:e=>{uu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;uu(e,e=>e.text=n(e.text,t))},whitespace:e=>{uu(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=>{uu(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 hu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),du="unicode|punctuation|whitespace|acronyms",pu="|case|contractions|parentheses|quotations|emoji|honorifics",mu={light:hu(du),medium:hu(du+pu),heavy:hu(du+pu+"|possessives|adverbs|nouns|verbs")};var gu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=mu[e]),Object.keys(e).forEach(t=>{cu.hasOwnProperty(t)&&cu[t](this,e[t])}),this}}},fu=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 bu=["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")},wu=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:yu(e,t),isSubordinate:vu(e),root:t}};const ku=e=>e.text(),Pu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Au=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var ju=function(e){let t=wu(e);return{root:ku(t.root),number:Au(t.number),determiner:ku(t.determiner),adjectives:Pu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Eu={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,Eu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Eu),e};const Nu={tags:!0};var Iu=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,Nu).tag("Singular","toPlural"),e};const Gu=(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 Gu(this,e).map(wu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=ju(t)),n},[])}isPlural(e){let t=this.filter(e=>wu(e).isPlural);return Gu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=wu(e).adjectives;n.found&&(t=t.concat(n))}),Gu(t,e)}toPlural(e){return Gu(this,e).map(e=>xu(e,wu(e)))}toSingular(e){return Gu(this,e).map(e=>{let t=wu(e);return Iu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=fu(this);return t=Gu(t,e),new Nouns(this.document,t.pointer)}}},Cu=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},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(Ou.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Ou.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Ou.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},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 $u=/^([0-9,. ]+)\/([0-9,. ]+)$/,Fu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Su=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Hu=function(e){if(!0===Fu.hasOwnProperty(e))return Fu[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=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 Mu.test(a)&&(a=a.replace(Mu,""),r=r.replaceWith(a)),r=Lu.hasOwnProperty(a)?Lu[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},qu=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 Ku=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Uu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Ru=[[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"]],Qu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Ku[n][1]&&(e-=Ku[n][1],t.push(Ku[n][0]));return Uu[e]&&t.push(Uu[e]),t};var Zu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=qu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ru.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(Qu(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=qu(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(" ")},_u=function(e){return e.numerator&&e.denominator?`${Zu({num:e.numerator})} out of ${Zu({num:e.denominator})}`:""};const Yu={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=Zu(e).split(" "),n=t[t.length-1];return Yu.hasOwnProperty(n)?t[t.length-1]=Yu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},ec=function(e){if(!e.numerator||!e.denominator)return"";let t=Zu({num:e.numerator}),n=Xu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const tc=(e,t)=>"number"==typeof t?e.eq(t):e;var nc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return tc(this,e).map(Wu)}get(e){return tc(this,e).map(Wu)}json(e){return tc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Wu(t);return n.fraction=r,n},[])}toDecimal(e){return tc(this,e).forEach(e=>{let{decimal:t}=Wu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return tc(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 tc(this,e).forEach(e=>{let t=Wu(e),n=ec(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return tc(this,e).forEach(e=>{let t=Wu(e),n=_u(t);e.replaceWith(n)}),this}toPercentage(e){return tc(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=Cu(this);return t=tc(t,e),new Fractions(this.document,t.pointer)}};const rc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ac=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("("+rc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+rc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+rc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+rc+")"));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) (${rc})`),r=e.has("("+rc+") #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("("+rc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+rc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},oc=function(e){if("string"==typeof e)return{num:Hu(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=Hu(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")}},ic=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=qu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const sc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},lc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var uc=function(e){let t={suffix:"",prefix:e.prefix};return sc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+sc[e.prefix],t.prefix=""),lc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+lc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},cc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=uc(e);return t+Xu(e)+n}if("Ordinal"===t)return e.prefix+ic(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=uc(e);return t+Zu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const hc=(e,t)=>"number"==typeof t?e.eq(t):e;var dc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return hc(this,e).map(oc)}get(e){return hc(this,e).map(oc).map(e=>e.num)}json(e){return hc(this,e).map(t=>{let n=t.toView().json(e)[0],r=oc(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=oc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=cc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=oc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=cc(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=>oc(t).num===e)}greaterThan(e){return this.filter(t=>oc(t).num>e)}lessThan(e){return this.filter(t=>oc(t).num{let r=oc(n).num;return r>e&&r{let n=oc(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=cc(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=oc(e).num);let t=this.map(t=>{let n=oc(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=cc(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=ac(this);return t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ac(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ac(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},pc={api:function(e){nc(e),dc(e)}};const mc={people:!0,emails:!0,phoneNumbers:!0,places:!0},gc=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 fc={api:function(e){e.prototype.redact=gc}},bc=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))})},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))))))},yc=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}},wc=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},kc=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},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},Ac=function(e){return e.verbs().toInfinitive(),e};const jc=(e,t)=>"number"==typeof t?e.eq(t):e;var Ec={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}=yc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return jc(this,e).map(e=>(yc(e),wc(e)))}toPresentTense(e){return jc(this,e).map(e=>(yc(e),kc(e)))}toFutureTense(e){return jc(this,e).map(e=>(yc(e),e=Pc(e)))}toInfinitive(e){return jc(this,e).map(e=>(yc(e),Ac(e)))}toNegative(e){return jc(this,e).map(e=>(yc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return jc(this,e).map(e=>(yc(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 jc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return jc(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=jc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=bc(this);return jc(t,e)}};Object.assign(e.prototype,t)}},xc=function(e){return e.match("#Honorific+? #Person+")},Nc=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 Ic="male",Gc="female",Tc={mr:Ic,mrs:Gc,miss:Gc,madam:Gc,king:Ic,queen:Gc,duke:Ic,duchess:Gc,baron:Ic,baroness:Gc,count:Ic,countess:Gc,prince:Ic,princess:Gc,sire:Ic,dame:Gc,lady:Gc,ayatullah:Ic,congressman:Ic,congresswoman:Gc,"first lady":Gc,mx:null};var Cc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Gc;if(n.has("#MaleName"))return Ic;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Tc.hasOwnProperty(e))return Tc[e];if(/^her /.test(e))return Gc;if(/^his /.test(e))return Ic}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 Ic;if(n&&!t)return Gc}return null};const Dc=(e,t)=>"number"==typeof t?e.eq(t):e;var Oc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Dc(this,e).map(Nc)}json(e){return Dc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Nc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Cc(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=Dc(t,e),new People(this.document,t.pointer)}},Bc=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},Vc=function(e){e.prototype.places=function(t){let n=Bc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},zc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const $c=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 Fc=function(e){e.prototype.topics=$c},Sc={api:function(e){Oc(e),Vc(e),zc(e),Fc(e)}},Hc=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},Mc=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 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")},qc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Kc=function(e){let t=e.clone();t.contractions().expand();const n=Mc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Jc(t,n),auxiliary:Lc(t,n),negative:Wc(t),phrasal:qc(n)}};const Uc={tense:"PresentTense"},Rc={conditional:!0},Qc={tense:"FutureTense"},Zc={progressive:!0},_c={tense:"PastTense"},Yc={complete:!0,progressive:!1},Xc={passive:!0},eh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},th={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Uc]],["^wanted to #Infinitive$",[_c]],["^will want to #Infinitive$",[Qc]]],"gerund-phrase":[["^#PastTense #Gerund$",[_c]],["^#PresentTense #Gerund$",[Uc]],["^#Infinitive #Gerund$",[Uc]],["^will #Infinitive #Gerund$",[Qc]],["^have #PastTense #Gerund$",[_c]],["^will have #PastTense #Gerund$",[_c]]],"simple-present":[["^#PresentTense$",[Uc]],["^#Infinitive$",[Uc]]],"simple-past":[["^#PastTense$",[_c]]],"simple-future":[["^will #Adverb? #Infinitive",[Qc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Uc,Zc]]],"past-progressive":[["^(was|were) #Gerund$",[_c,Zc]]],"future-progressive":[["^will be #Gerund$",[Qc,Zc]]],"present-perfect":[["^(has|have) #PastTense$",[_c,Yc]]],"past-perfect":[["^had #PastTense$",[_c,Yc]],["^had #PastTense to #Infinitive",[_c,Yc]]],"future-perfect":[["^will have #PastTense$",[Qc,Yc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[_c,Zc]]],"past-perfect-progressive":[["^had been #Gerund$",[_c,Zc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Qc,Zc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[_c,Xc]],["^(was|were) being (#PastTense|#Participle)",[_c,Xc]],["^(had|have) been (#PastTense|#Participle)",[_c,Xc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Uc,Xc]],["^(is|are|am) being (#PastTense|#Participle)",[Uc,Xc]],["^has been (#PastTense|#Participle)",[Uc,Xc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Qc,Xc,Rc]],["will be being? (#PastTense|#Participle)",[Qc,Xc,Rc]]],"present-conditional":[["would be #PastTense",[Uc,Rc]]],"past-conditional":[["would have been #PastTense",[_c,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Qc]]],"auxiliary-past":[["^did #Infinitive$",[_c,{plural:!1}]],["^used to #Infinitive$",[_c,Yc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Uc,Yc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[_c]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let nh=[];Object.keys(th).map(e=>{th[e].forEach(t=>{nh.push({name:e,match:t[0],data:eh(t[1])})})});var rh=nh,ah=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(),oh(r)&&(n.remove(r),r=n.last()),oh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:ih(t,e)}};const lh=e=>e,uh=(e,t)=>{let n=sh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},ch=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=sh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},hh=function(e,t){let n=sh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},dh=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},ph=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,dh(e)),r&&e.replace(t.root,r),e},mh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),gh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},fh=function(e){return e&&e.isView?e.text("normal"):""},bh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,dh(e))};var vh=function(e){let t=Kc(e);e=e.clone().toView();const n=ah(e,t);return{root:t.root.text(),preAdverbs:gh(t.adverbs.pre),postAdverbs:gh(t.adverbs.post),auxiliary:fh(t.auxiliary),negative:t.negative.found,prefix:fh(t.prefix),infinitive:bh(t.root),grammar:n}};const yh={tags:!0};var wh=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,dh(r)),i&&e.replace(r,i,yh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=hh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const kh={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,dh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=sh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,kh),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",kh),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,dh(a)),n(o,e.model).Participle}},Ah={infinitive:Ph.simple,"simple-present":Ph.simple,"simple-past":lh,"simple-future":Ph.both,"present-progressive":e=>(e.replace("are","were",kh),e.replace("(is|are|am)","was",kh),e),"past-progressive":lh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ph.hasHad,"past-perfect":lh,"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":lh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",kh),e),"passive-past":e=>(e.replace("have","had",kh),e),"passive-present":e=>(e.replace("(is|are)","was",kh),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",kh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":lh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",kh),e),"auxiliary-past":lh,"auxiliary-present":e=>(e.replace("(do|does)","did",kh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",kh):(Ph.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":lh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",kh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ph.simple(e,t),mh(e),e)};var jh=function(e,t,n){return Ah.hasOwnProperty(n)?((e=Ah[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Eh={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,dh(a)),!1===uh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=ch(e)),o&&(e=e.replace(a,o,Eh)).not("#Particle").tag("PresentTense"),e},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,dh(a)),!1===uh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Eh)).not("#Particle").tag("Gerund"),e},Ih={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=sh(e).subject;if(uh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Eh)}return e},"simple-past":xh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=ch(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":lh,"past-progressive":(e,t)=>{let n=ch(e);return e.replace("(were|was)",n,Eh)},"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=sh(e).subject;return uh(e)||n.has("i")?((e=ph(e,t)).remove("had"),e):(e.replace("had","has",Eh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":lh,"past-perfect-progressive":e=>e.replace("had","has",Eh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=ch(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Eh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":lh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":lh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Nh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=hh(e);return e.replace(t.auxiliary,n),e}return Nh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":lh,"modal-infinitive":lh,"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,dh(r)),a&&(e=e.replace(t.root,a,Eh))})(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 uh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Eh),e.remove("will"),e}};var Gh=function(e,t,n){return Ih.hasOwnProperty(n)?((e=Ih[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Th={tags:!0},Ch=(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,dh(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,dh(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},Oh={infinitive:Ch,"simple-present":Ch,"simple-past":Ch,"simple-future":lh,"present-progressive":Dh,"past-progressive":Dh,"future-progressive":lh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":lh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":lh,"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":lh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":lh,"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":lh,"modal-past":lh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Bh=function(e,t,n){return e.has("will")||e.has("going to")?e:Oh.hasOwnProperty(n)?((e=Oh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Vh={tags:!0};var zh=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,dh(a));let s=r(i,e.model).Gerund;return s&&(s=`${ch(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(["preTagger","postTagger","chunks"]),e};const $h={tags:!0},Fh=function(e,t){let n=hh(e);return e.prepend(n+" not"),e},Sh=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)},Hh=e=>e.has("(is|was|am|are|will|were|be)"),Mh={"simple-present":(e,t)=>!0===Hh(e)?Sh(e):(e=ph(e,t),e=Fh(e)),"simple-past":(e,t)=>!0===Hh(e)?Sh(e):((e=ph(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Hh(e)?Sh(e):Fh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",$h),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=Fh(e)).replace("wants","want",$h)};var Jh=function(e,t,n){if(e.has("#Negative"))return e;if(Mh.hasOwnProperty(n))return e=Mh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Hh(e)?Sh(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(Kc)}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=>(Kc(e),sh(e).subject))}adverbs(e){return Lh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Lh(this,e).filter(e=>!0!==sh(e).plural)}isPlural(e){return Lh(this,e).filter(e=>!0===sh(e).plural)}isImperative(e){return Lh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return wh(e,t,n.form)})}toPresentTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return Gh(e,t,n.form)})}toPastTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return jh(e,t,n.form)})}toFutureTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return Bh(e,t,n.form)})}toGerund(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return zh(e,t,n.form)})}conjugate(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:wh(e.clone(),t,n.form).text("normal"),PastTense:jh(e.clone(),t,n.form).text("normal"),PresentTense:Gh(e.clone(),t,n.form).text("normal"),FutureTense:Bh(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=Kc(e),n=ah(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=Hc(this);return t=Lh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Hl),m.plugin(lu),m.plugin(gu),m.plugin(Tu),m.plugin(pc),m.plugin(fc),m.plugin(Ec),m.plugin(Sc),m.plugin(Wh),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 4e94766f4..8c7e000e6 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.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.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,G={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 D=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.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 D.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=G.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof G[t]?(o=o.sort(G[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}},Q={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 R=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,M,I,Q);var H={api:function(t){Object.assign(t.prototype,R)},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]]},Gt=(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},Dt=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=Gt(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=>Dt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Ut=Bt;const Mt=Object.assign({},Lt,Vt,Ut);Mt.lookBehind=Mt.before,Mt.lookBefore=Mt.before,Mt.lookAhead=Mt.after,Mt.lookAfter=Mt.after,Mt.notIf=Mt.ifNo;var Wt=function(t){Object.assign(t.prototype,Mt)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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},Ge=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var De={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=Ge(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=/^\../,Ue=/^#./,Me=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}=Me(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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn,sn=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 ln="";var cn={green:t=>""+t+ln,red:t=>""+t+ln,blue:t=>""+t+ln,magenta:t=>""+t+ln,cyan:t=>""+t+ln,yellow:t=>""+t+ln,black:t=>""+t+ln,dim:t=>""+t+ln,i:t=>""+t+ln},an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(cn.blue("\n ──────")),e.forEach(t=>{console.log(cn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=cn.blue(" │ ")+cn.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 cn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},un=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},hn=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]}${cn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var pn=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()}},gn={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},bn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=bn(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},xn={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:bn,splitAll:vn}}},jn=function(t,e){let n=t.concat(e),r=bn(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=>yn(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},On=function(t,e){let n=bn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>yn(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},Pn=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=kn(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)}};_n.and=_n.union,_n.intersection=function(t){t=kn(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.not=function(t){t=kn(t,this);let e=En(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.difference=_n.not,_n.complement=function(){let t=this.all(),e=En(t.fullPointer,this.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=jn(t,[e])}),t=Pn(t,this.document),this.update(t)};var Sn={methods:xn,api:function(t){Object.assign(t.prototype,_n)}},An=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};function $n(t,e,n){return t.splice(e,1,...n),t}const Tn=function(t){return t.fastOr?Array.from(t.fastOr).map(t=>[{word:t}]):t.choices},Cn=function(t,e){let n=Object.assign({},t,e);return delete n.choices,delete n.fastOr,delete n.operator,n};var zn=function(t){let e=[];return t.forEach(t=>{for(let n=0;n{let o=Object.assign({},t);o.regs=o.regs.slice(0),r=r.map(e=>Cn(t.regs[n],e)),o.regs=$n(o.regs,n,r),e.push(o)})}e.push(t)}),e};const Nn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Fn=function(t){return t.forEach(t=>{t.needs=Array.from(function(t){let e=new Set;return t.forEach(t=>{let n=Nn(t);n?e.add(n):"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Nn(t);n&&e.add(n)})})}),e}(t.regs)),t.minWords=t.regs.filter(t=>!t.optional).length}),t},Ln=function(t){let e={};return t.forEach(t=>{t.needs.forEach(n=>{e[n]=e[n]||[],e[n].push(t)})}),e},Vn=function(t,e){return t.map(t=>{let n=[];return t.forEach(t=>{e.hasOwnProperty(t)&&(n=n.concat(e[t]))}),new Set(n)})},qn=function(t,e){for(let n=0;nt.needs.every(t=>r.has(t))),t[n]=t[n].filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))}return t},Gn=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},Dn=function(t,e){let[n,r,o]=t.pointer,i=e[n],s=r>4?r-2:0,l=t.tag||"";var c;if(c=t.tag,"[object Array]"===Object.prototype.toString.call(c)&&(l=t.tag.join(" #")),!l||i.every(t=>t.tags.has(l)))return;let a=t.reason||t.match;a=a?`|${a}|`:"";let u=(" "+a).padEnd(20)+" - ";const h=t=>""+t+"";for(;so+2);s+=1){let t=i[s].machine||i[s].normal;u+=s>r&&s{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=An(t,e),t=zn(t);let n=(t=Fn(t)).filter(t=>0===t.needs.length);return{index:Ln(t),always:n}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Vn(o,e.index);return i=qn(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;const c="undefined"!=typeof process&&process.env?process.env:self.env||{};return c.DEBUG_TAGS&&console.log(`\n → ${t.length} corrections:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match;c.DEBUG_TAGS&&Dn(t,e);let 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,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.text||"["+t.implicit+"]";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[0],e,o),1!=(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;nQn(t,e,n,r))};var Rn=Qn,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 cr=function(t){let e=er(t);return new g(e)};cr.prototype.plugin=function(t){t(this)};var ar={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(ar.hasOwnProperty(t.id))return ar[t.id];if(ar.hasOwnProperty(t.is))return ar[t.is];let e=t._cache.parents.find(t=>ar[t]);return ar[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},dr={one:{setTag:Rn,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 cr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return hr(n)}}};const gr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var mr={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)}},wr=function(t){Object.assign(t.prototype,mr)},yr={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 br=new Set(["Auxiliary","Possessive"]);var vr={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(br.has(t)||!e.hasOwnProperty(n))return 1;if(br.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:yr};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]/,Qr=/^'[0-9]{2}/;var Rr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Br,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Ir.test(t)?"'"===n&&Qr.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}},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},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},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:Tr,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=Lr(n),n=Nr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Rr(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})}}}},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","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=>{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 co=/\//,ao=/[a-z]\.[a-z]/i,uo=/[0-9]/;var ho=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])),co.test(n)&&!ao.test(n)&&!uo.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 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)},go=function(t){let e=0,n=0,r=t.document;for(let t=0;tmo(t,ho),machine:t=>mo(t,po),normal:t=>mo(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 vo={safe:!0,min:3};var xo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},vo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=bo(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}},jo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=yo},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"]};return d.extend(H),d.extend(wn),d.extend(De),d.extend(Sn),d.extend(vr),d.plugin(yt),d.extend(wo),d.plugin(w),d.extend($t),d.extend(jo),d.extend(Et),d.extend(Un),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]);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.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},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,G={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 D=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.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 D.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=G.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof G[t]?(o=o.sort(G[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}},Q={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 R=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,M,I,Q);var H={api:function(t){Object.assign(t.prototype,R)},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]]},Gt=(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},Dt=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=Gt(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=>Dt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Ut=Bt;const Mt=Object.assign({},Lt,Vt,Ut);Mt.lookBehind=Mt.before,Mt.lookBefore=Mt.before,Mt.lookAhead=Mt.after,Mt.lookAfter=Mt.after,Mt.notIf=Mt.ifNo;var Wt=function(t){Object.assign(t.prototype,Mt)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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},Ge=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var De={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=Ge(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=/^\../,Ue=/^#./,Me=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}=Me(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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn,sn=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 ln="";var cn={green:t=>""+t+ln,red:t=>""+t+ln,blue:t=>""+t+ln,magenta:t=>""+t+ln,cyan:t=>""+t+ln,yellow:t=>""+t+ln,black:t=>""+t+ln,dim:t=>""+t+ln,i:t=>""+t+ln},an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(cn.blue("\n ──────")),e.forEach(t=>{console.log(cn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=cn.blue(" │ ")+cn.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 cn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},un=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},hn=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]}${cn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var pn=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()}},gn={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},bn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=bn(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},xn={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:bn,splitAll:vn}}},jn=function(t,e){let n=t.concat(e),r=bn(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=>yn(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},On=function(t,e){let n=bn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>yn(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},Pn=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=kn(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)}};_n.and=_n.union,_n.intersection=function(t){t=kn(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.not=function(t){t=kn(t,this);let e=En(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.difference=_n.not,_n.complement=function(){let t=this.all(),e=En(t.fullPointer,this.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=jn(t,[e])}),t=Pn(t,this.document),this.update(t)};var Sn={methods:xn,api:function(t){Object.assign(t.prototype,_n)}};const An=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var $n=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(An(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(An(t))})})}),e.filter(t=>t)}(t.regs),t.wants=function(t){let e=[];return t.forEach(t=>{"or"!==t.operator||t.optional||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=An(t);n&&e.push(n)})}))}),e}(t.regs),t.minWords=t.regs.filter(t=>!t.optional).length}),t},Tn=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})},Cn=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.find(t=>r.has(t)))})},zn=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},Nn=function(t,e){let[n,r,o]=t.pointer,i=e[n],s=r>4?r-2:0,l=t.tag||"";var c;if(c=t.tag,"[object Array]"===Object.prototype.toString.call(c)&&(l=t.tag.join(" #")),!l||i.every(t=>t.tags.has(l)))return;let a=t.reason||t.match;a=a?`|${a}|`:"";let u=(" "+a).padEnd(20)+" - ";const h=t=>""+t+"";for(;so+2);s+=1){let t=i[s].machine||i[s].normal;u+=s>r&&s{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=$n(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=Tn(o,e.hooks);return i=Cn(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),zn(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;const c="undefined"!=typeof process&&process.env?process.env:self.env||{};return c.DEBUG_TAGS&&console.log(`\n → ${t.length} corrections:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match;c.DEBUG_TAGS&&Nn(t,e);let a=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Fn(a,t.tag,r))return;if("-"===a[a.length-1].post)return}void 0!==t.tag&&(s(a,t.tag,n,t.safe,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 Vn=/ /,qn=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.text||"["+t.implicit+"]";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[0],e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Vn.test(e))!function(t,e,n,r){let o=e.split(Vn);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;nDn(t,e,n,r))};var Bn=Dn,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=>Mn({id:t})),e}return[Mn({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},Rn=t=>"[object Array]"===Object.prototype.toString.call(t),Hn=t=>(t=t||"").trim(),Zn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Wn.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:In(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=Mn({});return t.forEach(t=>{if((t=Mn(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(Mn),e);var e},Kn=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},Jn=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},Xn={text:Kn,txt:Kn,array:Jn,flat:Jn},Yn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Kn(t,!0)),null):Xn.hasOwnProperty(e)?Xn[e](t):t},tr=t=>{Qn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},er=/\//;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=Hn(t),!er.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)||Mn({});return new g(e)}add(t,e={}){if(Rn(t))return t.forEach(t=>this.add(Hn(t),e)),this;t=Hn(t);let n=Mn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Hn(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 Rn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){tr(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 tr(this.json),Yn(this.json,t)}debug(){return tr(this.json),Yn(this.json,"debug"),this}}const nr=function(t){let e=Zn(t);return new g(e)};nr.prototype.plugin=function(t){t(this)};var rr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const or=function(t){if(rr.hasOwnProperty(t.id))return rr[t.id];if(rr.hasOwnProperty(t.is))return rr[t.is];let e=t._cache.parents.find(t=>rr[t]);return rr[e]};var ir=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:or(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 sr=function(t){return t?"string"==typeof t?[t]:t:[]};var lr=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=sr(t[e].children),t[e].not=sr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},cr={one:{setTag:Bn,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=lr(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 nr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return ir(n)}}};const ar=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ur={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||""),ar(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 ar(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)}},hr=function(t){Object.assign(t.prototype,ur)},fr={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 pr=new Set(["Auxiliary","Possessive"]);var dr={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(pr.has(t)||!e.hasOwnProperty(n))return 1;if(pr.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:hr,lib:fr};const gr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var wr=function(t){let e=[],n=t.split(mr);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 Fr=/^[ \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]+$/,Vr=/['’]/,qr=/^[a-z]\.([a-z]\.)+/i,Gr=/^[-+.][0-9]/,Dr=/^'[0-9]{2}/;var Br=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Fr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Gr.test(t)?"'"===n&&Dr.test(t)?(n="",e):"":(n="",e)))).replace(Lr,o=>(r=o,Vr.test(o)&&/[sn]['’]$/.test(e)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===qr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}},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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Wr=/^[A-Z]\.,?$/,Ir=/[A-Z]{2,}('s|,)?$/,Qr=/([a-z]\.)+[a-z]\.?$/;var Rr=function(t){return function(t){return!0===Mr.test(t)||!0===Qr.test(t)||!0===Wr.test(t)||!0===Ir.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Hr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Ur(r),r=n(r,e),r=Rr(r),t.normal=r},Zr={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:kr,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(zr);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=$r(n),n=Sr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Br(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=>{Hr(t,e)}),n})}}}},Kr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Jr={},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(t=>{t[0].forEach(e=>{Jr[e]=!0,Xr[e]="Abbreviation",void 0!==t[1]&&(Xr[e]=[Xr[e],t[1]])})});var Yr=["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 to={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(to).forEach((function(t){to[t].split("").forEach((function(e){eo[e]=t}))}));const no=/\//,ro=/[a-z]\.[a-z]/i,oo=/[0-9]/;var io=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])),no.test(n)&&!ro.test(n)&&!oo.test(n)){let e=n.split(no);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const so=/^\p{Letter}+-\p{Letter}+$/u;var lo=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"),so.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},co=function(t){let e=0,n=0,r=t.document;for(let t=0;tao(t,io),machine:t=>ao(t,lo),normal:t=>ao(t,Hr),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 po={safe:!0,min:3};var go={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},po,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=fo(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}},mo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=ho},lib:go,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(wn),d.extend(De),d.extend(Sn),d.extend(dr),d.plugin(yt),d.extend(uo),d.plugin(w),d.extend($t),d.extend(mo),d.extend(Et),d.extend(Ln),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 e1d17bf09..9a892c93f 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.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.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),v=(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||!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),v(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 G={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 D=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.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 D.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=G.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof G[t]?(o=o.sort(G[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 v(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 Q={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 R=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,M,I,Q);var H={api:function(t){Object.assign(t.prototype,R)},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 vt=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===bt.test(a)){let t=a.replace(bt,"");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]]},Gt=(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},Dt=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=Gt(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=>Dt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Ut=Bt;const Mt=Object.assign({},Lt,Vt,Ut);Mt.lookBehind=Mt.before,Mt.lookBefore=Mt.before,Mt.lookAhead=Mt.after,Mt.lookAfter=Mt.after,Mt.notIf=Mt.ifNo;var Wt=function(t){Object.assign(t.prototype,Mt)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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),be=(t,e)=>-1!==t.pre.indexOf(e),xe={hasQuote:t=>ge.test(t.pre)||me.test(t.post),hasComma:t=>ve(t,","),hasPeriod:t=>!0===ve(t,".")&&!1===ve(t,"..."),hasExclamation:t=>ve(t,"!"),hasQuestionMark:t=>ve(t,"?")||ve(t,"¿"),hasEllipses:t=>ve(t,"..")||ve(t,"…")||be(t,"..")||be(t,"…"),hasSemicolon:t=>ve(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},Ge=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var De={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=Ge(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=/^\../,Ue=/^#./,Me=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}=Me(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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn;var sn=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 ln={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 an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(ln.blue("\n ──────")),e.forEach(t=>{console.log(ln.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=ln.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=ln.blue(" │ ")+ln.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 ln[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var cn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(ln.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(ln.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(ln.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(ln.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var un=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]}${ln.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const hn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var fn=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 dn={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},yn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=yn(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 bn={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:yn,splitAll:vn}}};var xn=function(t,e){let n=t.concat(e),r=yn(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=>wn(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 En=function(t,e){let n=yn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>wn(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},kn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Pn={union:function(t){t=On(t,this);let e=xn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)}};Pn.and=Pn.union,Pn.intersection=function(t){t=On(t,this);let e=En(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.not=function(t){t=On(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.difference=Pn.not,Pn.complement=function(){let t=this.all(),e=jn(t.fullPointer,this.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=xn(t,[e])}),t=kn(t,this.document),this.update(t)};var _n={methods:bn,api:function(t){Object.assign(t.prototype,Pn)}};var Sn=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};function An(t,e,n){return t.splice(e,1,...n),t}const $n=function(t){return t.fastOr?Array.from(t.fastOr).map(t=>[{word:t}]):t.choices},Tn=function(t,e){let n=Object.assign({},t,e);return delete n.choices,delete n.fastOr,delete n.operator,n};var Cn=function(t){let e=[];return t.forEach(t=>{for(let n=0;n{let o=Object.assign({},t);o.regs=o.regs.slice(0),r=r.map(e=>Tn(t.regs[n],e)),o.regs=An(o.regs,n,r),e.push(o)})}}e.push(t)}),e};const zn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Nn=function(t){return t.forEach(t=>{t.needs=Array.from(function(t){let e=new Set;return t.forEach(t=>{let n=zn(t);n?e.add(n):"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=zn(t);n&&e.add(n)})})}),e}(t.regs)),t.minWords=t.regs.filter(t=>!t.optional).length}),t};var Fn=function(t){let e={};return t.forEach(t=>{t.needs.forEach(n=>{e[n]=e[n]||[],e[n].push(t)})}),e};var Ln=function(t,e){return t.map(t=>{let n=[];return t.forEach(t=>{e.hasOwnProperty(t)&&(n=n.concat(e[t]))}),new Set(n)})};var Vn=function(t,e){for(let n=0;nt.needs.every(t=>r.has(t))),t[n]=t[n].filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))}return t};var qn=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 Gn=function(t,e){let[n,r,o]=t.pointer,i=e[n],s=r>4?r-2:0,l=t.tag||"";var a;if(a=t.tag,"[object Array]"===Object.prototype.toString.call(a)&&(l=t.tag.join(" #")),!l||i.every(t=>t.tags.has(l)))return;let c=t.reason||t.match;c=c?`|${c}|`:"";let u=(" "+c).padEnd(20)+" - ";const h=t=>""+t+"";for(;so+2);s+=1){let t=i[s].machine||i[s].normal;u+=s>r&&s{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=Sn(t,e),t=Cn(t);let n=(t=Nn(t)).filter(t=>0===t.needs.length);return{index:Fn(t),always:n}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Ln(o,e.index);return i=Vn(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),qn(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;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};return a.DEBUG_TAGS&&console.log(`\n → ${t.length} corrections:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match;a.DEBUG_TAGS&&Gn(t,e);let c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Dn(c,t.tag,r))return;if("-"===c[c.length-1].post)return}void 0!==t.tag&&(s(c,t.tag,n,t.safe,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 Un=/ /,Mn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Wn=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.text||"["+t.implicit+"]";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[0],e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Un.test(e))!function(t,e,n,r){let o=e.split(Un);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Wn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nIn(t,e,n,r))};var Qn=In;var Rn=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=>Hn({id:t})),e}return[Hn({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},Xn=t=>"[object Array]"===Object.prototype.toString.call(t),Yn=t=>(t=t||"").trim(),tr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Zn.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:Kn(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=Hn({});return t.forEach(t=>{if((t=Hn(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):(Jn(e=t).forEach(Hn),e);var e},er=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Jn(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},nr=function(t){let e=Jn(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},rr={text:er,txt:er,array:nr,flat:nr},or=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(er(t,!0)),null):rr.hasOwnProperty(e)?rr[e](t):t},ir=t=>{Jn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},sr=/\//;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=Yn(t),!sr.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)||Hn({});return new g(e)}add(t,e={}){if(Xn(t))return t.forEach(t=>this.add(Yn(t),e)),this;t=Yn(t);let n=Hn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Yn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Jn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Jn(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 Jn(this.json)}fillDown(){var t;return t=this.json,Jn(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 Xn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){ir(this.json);let t=Jn(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 ir(this.json),or(this.json,t)}debug(){return ir(this.json),or(this.json,"debug"),this}}const lr=function(t){let e=tr(t);return new g(e)};lr.prototype.plugin=function(t){t(this)};var ar={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const cr=function(t){if(ar.hasOwnProperty(t.id))return ar[t.id];if(ar.hasOwnProperty(t.is))return ar[t.is];let e=t._cache.parents.find(t=>ar[t]);return ar[e]};var ur=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:cr(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 hr=function(t){return t?"string"==typeof t?[t]:t:[]};var fr=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=hr(t[e].children),t[e].not=hr(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 pr={one:{setTag:Qn,unTag:Rn,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=fr(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 lr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return ur(n)}}};const dr=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||""),dr(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 dr(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 mr=function(t){Object.assign(t.prototype,gr)};var wr={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 vr={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:pr,api:mr,lib:wr};const br=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,xr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var jr=function(t){let e=[],n=t.split(xr);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 Dr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Br=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ur=/['’]/,Mr=/^[a-z]\.([a-z]\.)+/i,Wr=/^[-+.][0-9]/,Ir=/^'[0-9]{2}/;var Qr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Dr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Wr.test(t)?"'"===n&&Ir.test(t)?(n="",e):"":(n="",e)))).replace(Br,o=>(r=o,Ur.test(o)&&/[sn]['’]$/.test(e)&&!1===Ur.test(n)?(r=r.replace(Ur,""),"'"):!0===Mr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Rr=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 Hr=/([A-Z]\.)+[A-Z]?,?$/,Zr=/^[A-Z]\.,?$/,Kr=/[A-Z]{2,}('s|,)?$/,Jr=/([a-z]\.)+[a-z]\.?$/;var Xr=function(t){return function(t){return!0===Hr.test(t)||!0===Jr.test(t)||!0===Zr.test(t)||!0===Kr.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Yr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Rr(r),r=n(r,e),r=Xr(r),t.normal=r};var to={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(qr);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=zr(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=>{Yr(t,e)}),n})}}}};var eo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let no={},ro={};[[["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=>{no[e]=!0,ro[e]="Abbreviation",void 0!==t[1]&&(ro[e]=[ro[e],t[1]])})});var oo=["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 io={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},so={};Object.keys(io).forEach((function(t){io[t].split("").forEach((function(e){so[e]=t}))}));const lo=/\//,ao=/[a-z]\.[a-z]/i,co=/[0-9]/;var uo=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])),lo.test(n)&&!ao.test(n)&&!co.test(n)){let e=n.split(lo);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const ho=/^\p{Letter}+-\p{Letter}+$/u;var fo=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"),ho.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var po=function(t){let e=0,n=0,r=t.document;for(let t=0;tgo(t,uo),machine:t=>go(t,fo),normal:t=>go(t,Yr),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 vo={safe:!0,min:3};var bo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},vo,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 xo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=wo},lib:bo,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(mn),d.extend(De),d.extend(_n),d.extend(vr),d.plugin(yt),d.extend(mo),d.plugin(w),d.extend($t),d.extend(xo),d.extend(Et),d.extend(Bn);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]);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.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},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 G={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 D=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.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 D.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=G.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof G[t]?(o=o.sort(G[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 Q={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 R=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,M,I,Q);var H={api:function(t){Object.assign(t.prototype,R)},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]]},Gt=(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},Dt=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=Gt(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=>Dt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Ut=Bt;const Mt=Object.assign({},Lt,Vt,Ut);Mt.lookBehind=Mt.before,Mt.lookBefore=Mt.before,Mt.lookAhead=Mt.after,Mt.lookAfter=Mt.after,Mt.notIf=Mt.ifNo;var Wt=function(t){Object.assign(t.prototype,Mt)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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},Ge=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var De={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=Ge(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=/^\../,Ue=/^#./,Me=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}=Me(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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn;var sn=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 ln={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 an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(ln.blue("\n ──────")),e.forEach(t=>{console.log(ln.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=ln.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=ln.blue(" │ ")+ln.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 ln[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var cn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(ln.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(ln.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(ln.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(ln.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var un=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]}${ln.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const hn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var fn=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 dn={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},yn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var bn=function(t,e){let n=yn(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 vn={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:yn,splitAll:bn}}};var xn=function(t,e){let n=t.concat(e),r=yn(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=>wn(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 En=function(t,e){let n=yn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>wn(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},kn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Pn={union:function(t){t=On(t,this);let e=xn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)}};Pn.and=Pn.union,Pn.intersection=function(t){t=On(t,this);let e=En(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.not=function(t){t=On(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.difference=Pn.not,Pn.complement=function(){let t=this.all(),e=jn(t.fullPointer,this.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=xn(t,[e])}),t=kn(t,this.document),this.update(t)};var _n={methods:vn,api:function(t){Object.assign(t.prototype,Pn)}};const Sn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var An=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(Sn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Sn(t))})})}),e.filter(t=>t)}(t.regs),t.wants=function(t){let e=[];return t.forEach(t=>{"or"!==t.operator||t.optional||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Sn(t);n&&e.push(n)})}))}),e}(t.regs),t.minWords=t.regs.filter(t=>!t.optional).length}),t};var $n=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 Tn=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.find(t=>r.has(t)))})};var Cn=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 zn=function(t,e){let[n,r,o]=t.pointer,i=e[n],s=r>4?r-2:0,l=t.tag||"";var a;if(a=t.tag,"[object Array]"===Object.prototype.toString.call(a)&&(l=t.tag.join(" #")),!l||i.every(t=>t.tags.has(l)))return;let c=t.reason||t.match;c=c?`|${c}|`:"";let u=(" "+c).padEnd(20)+" - ";const h=t=>""+t+"";for(;so+2);s+=1){let t=i[s].machine||i[s].normal;u+=s>r&&s{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=An(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=$n(o,e.hooks);return i=Tn(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),Cn(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;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};return a.DEBUG_TAGS&&console.log(`\n → ${t.length} corrections:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match;a.DEBUG_TAGS&&zn(t,e);let c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Nn(c,t.tag,r))return;if("-"===c[c.length-1].post)return}void 0!==t.tag&&(s(c,t.tag,n,t.safe,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 Ln=/ /,Vn=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.text||"["+t.implicit+"]";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[0],e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Ln.test(e))!function(t,e,n,r){let o=e.split(Ln);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;nGn(t,e,n,r))};var Dn=Gn;var Bn=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=>Un({id:t})),e}return[Un({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},Qn=t=>"[object Array]"===Object.prototype.toString.call(t),Rn=t=>(t=t||"").trim(),Hn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Mn.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:Wn(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=Un({});return t.forEach(t=>{if((t=Un(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):(In(e=t).forEach(Un),e);var e},Zn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return In(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},Kn=function(t){let e=In(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},Jn={text:Zn,txt:Zn,array:Kn,flat:Kn},Xn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Zn(t,!0)),null):Jn.hasOwnProperty(e)?Jn[e](t):t},Yn=t=>{In(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},tr=/\//;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=Rn(t),!tr.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)||Un({});return new g(e)}add(t,e={}){if(Qn(t))return t.forEach(t=>this.add(Rn(t),e)),this;t=Rn(t);let n=Un({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Rn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return In(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=In(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 In(this.json)}fillDown(){var t;return t=this.json,In(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 Qn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){Yn(this.json);let t=In(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 Yn(this.json),Xn(this.json,t)}debug(){return Yn(this.json),Xn(this.json,"debug"),this}}const er=function(t){let e=Hn(t);return new g(e)};er.prototype.plugin=function(t){t(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(t){if(nr.hasOwnProperty(t.id))return nr[t.id];if(nr.hasOwnProperty(t.is))return nr[t.is];let e=t._cache.parents.find(t=>nr[t]);return nr[e]};var or=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:rr(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 ir=function(t){return t?"string"==typeof t?[t]:t:[]};var sr=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=ir(t[e].children),t[e].not=ir(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 lr={one:{setTag:Dn,unTag:Bn,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=sr(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 er(e).cache().fillDown().out("array")}(Object.assign({},e,t));return or(n)}}};const ar=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var cr={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||""),ar(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 ar(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 ur=function(t){Object.assign(t.prototype,cr)};var hr={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 fr=new Set(["Auxiliary","Possessive"]);var pr={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(fr.has(t)||!e.hasOwnProperty(n))return 1;if(fr.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:lr,api:ur,lib:hr};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var mr=function(t){let e=[],n=t.split(gr);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 Nr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Fr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Lr=/['’]/,Vr=/^[a-z]\.([a-z]\.)+/i,qr=/^[-+.][0-9]/,Gr=/^'[0-9]{2}/;var Dr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Nr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!qr.test(t)?"'"===n&&Gr.test(t)?(n="",e):"":(n="",e)))).replace(Fr,o=>(r=o,Lr.test(o)&&/[sn]['’]$/.test(e)&&!1===Lr.test(n)?(r=r.replace(Lr,""),"'"):!0===Vr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Br=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 Ur=/([A-Z]\.)+[A-Z]?,?$/,Mr=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,Ir=/([a-z]\.)+[a-z]\.?$/;var Qr=function(t){return function(t){return!0===Ur.test(t)||!0===Ir.test(t)||!0===Mr.test(t)||!0===Wr.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Rr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Br(r),r=n(r,e),r=Qr(r),t.normal=r};var Hr={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:Or,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(Cr);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=Ar(n),n=_r(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Dr(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=>{Rr(t,e)}),n})}}}};var Zr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Kr={},Jr={};[[["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=>{Kr[e]=!0,Jr[e]="Abbreviation",void 0!==t[1]&&(Jr[e]=[Jr[e],t[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((t,e)=>(t[e]=!0,t),{});let Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},to={};Object.keys(Yr).forEach((function(t){Yr[t].split("").forEach((function(e){to[e]=t}))}));const eo=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var oo=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])),eo.test(n)&&!no.test(n)&&!ro.test(n)){let e=n.split(eo);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const io=/^\p{Letter}+-\p{Letter}+$/u;var so=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"),io.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var lo=function(t){let e=0,n=0,r=t.document;for(let t=0;tao(t,oo),machine:t=>ao(t,so),normal:t=>ao(t,Rr),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 fo={safe:!0,min:3};var po={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},fo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=ho(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 go={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=uo},lib:po,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(mn),d.extend(De),d.extend(_n),d.extend(pr),d.plugin(yt),d.extend(co),d.plugin(w),d.extend($t),d.extend(go),d.extend(Et),d.extend(Fn);export{d as default}; diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index 9b62e9e76..869b5ddab 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.0";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.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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}},In=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};function Gn(e,t,n){return e.splice(t,1,...n),e}const Tn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Cn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Dn=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=>Cn(e.regs[n],t)),a.regs=Gn(a.regs,n,r),t.push(a)})}t.push(e)}),t};const On=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Bn=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=On(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=On(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Vn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t},zn=function(e,t){return e.map(e=>{let n=[];return e.forEach(e=>{t.hasOwnProperty(e)&&(n=n.concat(t[e]))}),new Set(n)})},$n=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},Fn=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},Sn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=In(e,t),e=Dn(e);let n=(e=Bn(e)).filter(e=>0===e.needs.length);return{index:Vn(e),always:n}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=zn(a,t.index);return o=$n(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),Fn(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&&Sn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(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 Jn=/ /,Ln=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Wn=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],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(/^#/,""),Wn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nqn(e,t,n,r))};var Kn=qn,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: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=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},tr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return _n(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=_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},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=>{_n(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 _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 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=_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 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},pr={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 mr=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||""),mr(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 mr(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)}},fr=function(e){Object.assign(e.prototype,gr)},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 vr=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(vr.has(e)||!t.hasOwnProperty(n))return 1;if(vr.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:fr,lib:br};const wr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,kr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var Pr=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 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]+$/,Jr=/['’]/,Lr=/^[a-z]\.([a-z]\.)+/i,Wr=/^[-+.][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||!Wr.test(e)?"'"===n&&qr.test(e)?(n="",t):"":(n="",t)))).replace(Mr,a=>(r=a,Jr.test(a)&&/[sn]['’]$/.test(t)&&!1===Jr.test(n)?(r=r.replace(Jr,""),"'"):!0===Lr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},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]\.,?$/,Zr=/[A-Z]{2,}('s|,)?$/,_r=/([a-z]\.)+[a-z]\.?$/;var Yr=function(e){return function(e){return!0===Rr.test(e)||!0===_r.test(e)||!0===Qr.test(e)||!0===Zr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},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},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:Tr,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||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Xr(e,t)}),n})}}}},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","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=>{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;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)},pa=function(e){let t=0,n=0,r=e.document;for(let e=0;ema(e,ca),machine:e=>ma(e,da),normal:e=>ma(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 va={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({},va,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ba(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(fn),m.extend(St),m.extend(Nn),m.extend(yr),m.plugin(be),m.extend(ga),m.plugin(f),m.extend(Ge),m.extend(ya),m.extend(Pe),m.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"},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",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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 Pa=36,Aa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ja=Aa.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ea=function(e){if(void 0!==ja[e])return ja[e];let t=0,n=1,r=Pa,a=1;for(;n=0;n--,a*=Pa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},xa=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=Ia(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ga(ka[e]);Oa.test(e)?Object.keys(t).forEach(t=>{if(Va[t]=e,"Noun|Verb"===e){let e=Da(t,za);Va[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 $a="Adjective";var Fa={beforeTags:{Determiner:$a,Possessive:$a},afterTags:{Adjective:$a},beforeWords:{seem:$a,seemed:$a,seems:$a,feel:$a,feels:$a,felt:$a,appear:$a,appears:$a,appeared:$a,also:$a,over:$a,under:$a,too:$a,it:$a,but:$a,still:$a,really:$a,quite:$a,well:$a,very:$a,deeply:$a,profoundly:$a,extremely:$a,so:$a,badly:$a,mostly:$a,totally:$a,awfully:$a,rather:$a,nothing:$a,something:$a,anything:$a},afterWords:{too:$a,also:$a,or:$a}};const Sa="Gerund";var Ha={beforeTags:{Adverb:Sa,Preposition:Sa,Conjunction:Sa},afterTags:{Adverb:Sa,Possessive:Sa,Person:Sa,Pronoun:Sa,Determiner:Sa,Copula:Sa,Preposition:Sa,Conjunction:Sa,Comparative:Sa},beforeWords:{been:Sa,keep:Sa,continue:Sa,stop:Sa,am:Sa,be:Sa,me:Sa,began:Sa,start:Sa,starts:Sa,started:Sa,stops:Sa,stopped:Sa,help:Sa,helps:Sa,avoid:Sa,avoids:Sa,love:Sa,loves:Sa,loved:Sa,hate:Sa,hates:Sa,hated:Sa},afterWords:{you:Sa,me:Sa,her:Sa,him:Sa,them:Sa,their:Sa,it:Sa,this:Sa,there:Sa,on:Sa,about:Sa,for:Sa}},Ma={beforeTags:Object.assign({},Fa.beforeTags,Ha.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Fa.afterTags,Ha.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Fa.beforeWords,Ha.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Fa.afterWords,Ha.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ja="Singular";var La={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 Wa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var qa={beforeTags:Object.assign({},Fa.beforeTags,La.beforeTags,Wa.beforeTags),afterTags:Object.assign({},Fa.afterTags,La.afterTags),beforeWords:Object.assign({},Fa.beforeWords,La.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fa.afterWords,La.afterWords)};const Ka={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ua={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ra={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 Za={beforeTags:Object.assign({},Fa.beforeTags,Ka),afterTags:Object.assign({},Fa.afterTags,Ua),beforeWords:Object.assign({},Fa.beforeWords,Ra),afterWords:Object.assign({},Fa.afterWords,Qa)};const _a="Infinitive";var Ya={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,when:_a,all:_a,to:_a,because:_a,although:_a,before:_a,how:_a,otherwise:_a,though:_a,yet:_a}};const Xa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var eo={beforeTags:Object.assign({},Fa.beforeTags,Ya.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Fa.afterTags,Ya.afterTags,Xa.afterTags),beforeWords:Object.assign({},Fa.beforeWords,Ya.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fa.afterWords,Ya.afterWords,{to:void 0})};const to={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},no={},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"},ao={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oo={beforeTags:Object.assign({},Ha.beforeTags,La.beforeTags,to),afterTags:Object.assign({},Ha.afterTags,La.afterTags,no),beforeWords:Object.assign({},Ha.beforeWords,La.beforeWords,ro),afterWords:Object.assign({},Ha.afterWords,La.afterWords,ao)},io={beforeTags:Object.assign({},Ya.beforeTags,La.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ya.afterTags,La.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ya.beforeWords,La.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ya.afterWords,La.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const so="Person";var lo={beforeTags:{Honorific:so,Person:so,Preposition:so},afterTags:{Person:so,ProperNoun:so,Verb:so},ownTags:{ProperNoun:so},beforeWords:{hi:so,hey:so,yo:so,dear:so,hello:so},afterWords:{said:so,says:so,told:so,tells:so,feels:so,felt:so,seems:so,thinks:so,thought:so,spends:so,spendt:so,plays:so,played:so,sing:so,sang:so,learn:so,learned:so,wants:so,wanted:so}};const uo="Month",co={beforeTags:{Date:uo,Value:uo},afterTags:{Date:uo,Value:uo},beforeWords:{by:uo,in:uo,on:uo,during:uo,after:uo,before:uo,between:uo,until:uo,til:uo,sometime:uo,of:uo,this:uo,next:uo,last:uo,previous:uo,following:uo},afterWords:{sometime:uo,in:uo,of:uo,until:uo,the:uo}};var ho={beforeTags:Object.assign({},lo.beforeTags,co.beforeTags),afterTags:Object.assign({},lo.afterTags,co.afterTags),beforeWords:Object.assign({},lo.beforeWords,co.beforeWords),afterWords:Object.assign({},lo.afterWords,co.afterWords)};const po={Place:"Place"},mo={Place:"Place",Abbreviation:"Place"},go={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},bo={"Adj|Gerund":Ma,"Adj|Noun":qa,"Adj|Past":Za,"Adj|Present":eo,"Noun|Verb":io,"Noun|Gerund":oo,"Person|Noun":{beforeTags:Object.assign({},La.beforeTags,lo.beforeTags),afterTags:Object.assign({},La.afterTags,lo.afterTags),beforeWords:Object.assign({},La.beforeWords,lo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},La.afterWords,lo.afterWords)},"Person|Date":ho,"Person|Verb":{beforeTags:Object.assign({},lo.beforeTags,Ya.beforeTags),afterTags:Object.assign({},lo.afterTags,Ya.afterTags),beforeWords:Object.assign({},lo.beforeWords,Ya.beforeWords),afterWords:Object.assign({},lo.afterWords,Ya.afterWords)},"Person|Place":{beforeTags:Object.assign({},po,lo.beforeTags),afterTags:Object.assign({},mo,lo.afterTags),beforeWords:Object.assign({},go,lo.beforeWords),afterWords:Object.assign({},fo,lo.afterWords)}},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",jo="PastTense",Eo="Adverb",xo="Plural",No="Actor",Io="Verb",Go="Noun",To="LastName",Co="Modal",Do="Participle";var Oo=[null,null,{ea:Ao,ia:Go,ic:wo,ly:Eo,"'n":Io,"'t":Io},{oed:jo,ued:jo,xed:jo," so":Eo,"'ll":Co,"'re":"Copula",azy:wo,eer:Go,end:Io,ped:jo,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:jo,ken:Do,ven:Do,ten:Do,ect:ko,ict:ko,ign:ko,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:To,cede:ko,chuk:To,czyk:To,ects:Po,ends:Io,enko:To,ette:Ao,wner:Ao,fies:Po,fore:Eo,gate:ko,gone:wo,ices:xo,ints:xo,ruct:ko,ines:xo,ions:xo,less:wo,llen:wo,made:wo,nsen:To,oses:Po,ould:Co,some:wo,sson:To,tion:Ao,tage:Go,ique:Ao,tive:wo,tors:Go,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:ko,ract:ko,duce:ko,pose:ko,eive:ko,lyze:ko,lyse:ko,iant:wo,nary:wo},{elist:Ao,holic:Ao,phite:Ao,tized:jo,urned:jo,eased:jo,ances:xo,bound:wo,ettes:xo,fully:Eo,ishes:Po,ities:xo,marek:To,nssen:To,ology:Go,osome:Ao,tment:Ao,ports:xo,rough:wo,tches:Po,tieth:"Ordinal",tures:xo,wards:Eo,where:Eo,archy:Go,pathy:Go,opoly:Go,embly:Go,phate:Go,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:To,parent:Ao,cedent:Ao,ionary:Ao,cklist:Ao,keeper:No,logist:No,teenth:"Value"},{opoulos:To,borough:"Place",sdottir:To}];const Bo="Adjective",Vo="Noun",zo="Verb";var $o=[null,null,{},{neo:Vo,bio:Vo,"de-":zo,"re-":zo,"un-":zo},{anti:Vo,auto:Vo,faux:Bo,hexa:Vo,kilo:Vo,mono:Vo,nano:Vo,octa:Vo,poly:Vo,semi:Bo,tele:Vo,"pro-":Bo,"mis-":zo,"dis-":zo,"pre-":Bo},{anglo:Vo,centi:Vo,ethno:Vo,ferro:Vo,grand:Vo,hepta:Vo,hydro:Vo,intro:Vo,macro:Vo,micro:Vo,milli:Vo,nitro:Vo,penta:Vo,quasi:Bo,radio:Vo,tetra:Vo,"omni-":Bo,"post-":Bo},{pseudo:Bo,"extra-":Bo,"hyper-":Bo,"inter-":Bo,"intra-":Bo,"deca-":Bo},{electro:Vo}];const Fo="Adjective",So="Infinitive",Ho="PresentTense",Mo="Singular",Jo="PastTense",Lo="Adverb",Wo="Expression",qo="Actor",Ko="Verb",Uo="Noun",Ro="LastName";var Qo={a:[[/.[aeiou]na$/,Uo,"tuna"],[/.[oau][wvl]ska$/,Ro],[/.[^aeiou]ica$/,Mo,"harmonica"],[/^([hyj]a+)+$/,Wo,"haha"]],c:[[/.[^aeiou]ic$/,Fo]],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$/,Mo,"steward"],[/[aeiou][^aeiou]id$/,Fo,""],[/.[vrl]id$/,Fo,"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$/,So,"antagonize"],[/.[^aeiou]ise$/,So,"antagonise"],[/.[aeiou]te$/,So,"bite"],[/.[^aeiou][ai]ble$/,Fo,"fixable"],[/.[^aeiou]eable$/,Fo,"maleable"],[/.[ts]ive$/,Fo,"festive"],[/[a-z]-like$/,Fo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Fo,"cornish"],[/.v[iy]ch$/,Ro,"..ovich"],[/^ug?h+$/,Wo,"ughh"],[/^uh[ -]?oh$/,Wo,"uhoh"],[/[a-z]-ish$/,Fo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ro,"polish-male"]],k:[[/^(k){2}$/,Wo,"kkkk"]],l:[[/.[gl]ial$/,Fo,"familial"],[/.[^aeiou]ful$/,Fo,"fitful"],[/.[nrtumcd]al$/,Fo,"natal"],[/.[^aeiou][ei]al$/,Fo,"familial"]],m:[[/.[^aeiou]ium$/,Mo,"magnesium"],[/[^aeiou]ism$/,Mo,"schism"],[/^[hu]m+$/,Wo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Fo,"republican"],[/[^aeiou]ician$/,qo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Wo,"noooo"],[/^(yo)+$/,Wo,"yoo"],[/^wo{2,}[pt]?$/,Wo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mo],[/[^i]fer$/,So],[/.[^aeiou][ao]pher$/,qo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Fo],[/[aeiou].*ist$/,Fo],[/^[a-z]et$/,Ko]],s:[[/.[^aeiou]ises$/,Ho],[/.[rln]ates$/,Ho],[/.[^z]ens$/,Ko],[/.[lstrn]us$/,Mo],[/.[aeiou]sks$/,Ho],[/.[aeiou]kes$/,Ho],[/[aeiou][^aeiou]is$/,Mo],[/[a-z]'s$/,Uo],[/^yes+$/,Wo]],v:[[/.[^aeiou][ai][kln]ov$/,Ro]],y:[[/.[cts]hy$/,Fo],[/.[st]ty$/,Fo],[/.[tnl]ary$/,Fo],[/.[oe]ry$/,Mo],[/[rdntkbhs]ly$/,Lo],[/.(gg|bb|zz)ly$/,Fo],[/...lly$/,Lo],[/.[gk]y$/,Fo],[/[bszmp]{2}y$/,Fo],[/.[ai]my$/,Fo],[/[ea]{2}zy$/,Fo],[/.[^aeiou]ity$/,Mo]]};const Zo="Verb",_o="Noun";var Yo={leftTags:[["Adjective",_o],["Possessive",_o],["Determiner",_o],["Adverb",Zo],["Pronoun",Zo],["Value",_o],["Ordinal",_o],["Modal",Zo],["Superlative",_o],["Demonym",_o],["Honorific","Person"]],leftWords:[["i",Zo],["first",_o],["it",Zo],["there",Zo],["not",Zo],["because",_o],["if",_o],["but",_o],["who",Zo],["this",_o],["his",_o],["when",_o],["you",Zo],["very","Adjective"],["old",_o],["never",Zo],["before",_o],["a","Singular"],["the",_o],["been",Zo]],rightTags:[["Copula",_o],["PastTense",_o],["Conjunction",_o],["Modal",_o]],rightWords:[["there",Zo],["me",Zo],["man","Adjective"],["only",Zo],["him",Zo],["it",Zo],["were",_o],["took",_o],["himself",Zo],["went",_o],["who",_o],["jr","Person"]]},Xo={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"},ei={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"},ti={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"},ni={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"},ri={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 oi=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},si=/^([0-9]+)/,li=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(si);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(si,"")]}(n[0],n[1])})};var ui=function(e={}){return(e=Object.assign({},e)).rules=li(e.rules),e.rules=ii(e.rules),e.rev&&(e.rev=li(e.rev),e.rev=ii(e.rev)),e.exceptions=li(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ci=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 hi=ui({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"}),di=ui(ni),pi=ui(ei),mi=ui(ti),gi=ci(hi),fi=ci(di),bi=ci(pi),vi=ci(mi),yi=ui(Xo),wi=ui(ri);var ki={fromPast:hi,fromPresent:di,fromGerund:pi,fromParticiple:mi,toPast:gi,toPresent:fi,toGerund:bi,toParticiple:vi,toComparative:yi,toSuperlative:wi,fromComparative:ci(yi),fromSuperlative:ci(wi)},Pi=["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),{}),Ai=[[/([^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,""]],ji=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(Ei[t].forEach(n=>e[n]=t),e),{});var xi=Ei,Ni=function(e){let t=e.substring(e.length-3);if(!0===xi.hasOwnProperty(t))return xi[t];let n=e.substring(e.length-2);return!0===xi.hasOwnProperty(n)?xi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ii={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Gi=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=Ni(e)),Ii.hasOwnProperty(e))c=Ii[e];else if("Participle"===n)c=oi(l,i);else if("PastTense"===n)c=oi(l,r);else if("PresentTense"===n)c=oi(l,a);else{if("Gerund"!==n)return e;c=oi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ti=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:oi(i,n),PresentTense:oi(i,r),Gerund:oi(i,a),FutureTense:"will "+e},u=oi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Ci=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 Di="ically",Oi=new Set(["analyt"+Di,"chem"+Di,"class"+Di,"clin"+Di,"crit"+Di,"ecolog"+Di,"electr"+Di,"empir"+Di,"frant"+Di,"grammat"+Di,"ident"+Di,"ideolog"+Di,"log"+Di,"mag"+Di,"mathemat"+Di,"mechan"+Di,"med"+Di,"method"+Di,"method"+Di,"mus"+Di,"phys"+Di,"phys"+Di,"polit"+Di,"pract"+Di,"rad"+Di,"satir"+Di,"statist"+Di,"techn"+Di,"technolog"+Di,"theoret"+Di,"typ"+Di,"vert"+Di,"whims"+Di]),Bi=[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"}],Vi=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"]),zi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var $i=function(e){return e.endsWith("ly")?Oi.has(e)?e.replace(/ically/,"ical"):Vi.has(e)?null:zi.hasOwnProperty(e)?zi[e]:Ci(e,Bi)||e:null};const Fi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Si={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Hi=function(e){if(Si.hasOwnProperty(e))return Si[e];let t=Ci(e,Fi);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"}],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"},Li=new Set(["terrible","annoying"]),Wi=function(e,t){const n=t.two.models.toSuperlative;return oi(e,n)},qi=function(e,t){const n=t.two.models.toComparative;return oi(e,n)};var Ki={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"]}},Ui={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===Ki.hasOwnProperty(i)&&Ki[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:ji,verbToInfinitive:Gi,getTense:Ni,verbConjugate:Ti,adjToSuperlative:Wi,adjToComparative:qi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return oi(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return oi(e,n)},advToAdjective:$i,adjToAdverb:Hi,adjToNoun:function(e){if(Ji.hasOwnProperty(e))return Ji[e];if(Li.has(e))return null;let t=Ci(e,Mi);return t||e+"ness"}}}},Ri=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 Zi=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 _i={two:{models:ki}};const Yi={"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"},Xi=function(e,t){const n={model:t,methods:Ui};let{lex:r,_multi:a}=Ui.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},es=function(e,t,n){let r=Ti(e,_i);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ts=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Yi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||es(a,r,!1),"Adj|Present"===o&&(es(a,r,!0),function(e,t,n){let r=Wi(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=Gi(a,_i,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Gi(a,_i,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Xi(n,t)};let ns={one:{_multiCache:{},lexicon:Ba},two:{irregularPlurals:wa,models:ki,suffixPatterns:Oo,prefixPatterns:$o,endsWith:Qo,neighbours:Yo,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:Pi}};ns=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=Xi(e.one.lexicon,e)).one.lexicon,e),e=ts(e.two.switches,e),e=Zi(e),e=Ri(e)}(ns);var rs=ns;const as=/^(under|over|mis|re|un|dis|semi)-?/;var os=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])}},is=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 ss={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ls=new Set(["formulas","koalas","israelis","menus"]),us=["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 cs=function(e){if(!e||e.length<=3)return!1;if(ls.has(e))return!0;let t=e[e.length-1];return ss.hasOwnProperty(t)?ss[t].find(t=>e.endsWith(t)):"s"===t&&!us.find(t=>e.endsWith(t))};const hs=["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))||(cs(e.normal)?is(e,"Plural","3-plural-guess"):is(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ni(e.normal);t&&is(e,t,"3-verb-tense-guess")}}(r)};const ps=/^\p{Lu}[\p{Ll}'’]/u,ms=/[0-9]/,gs=["Date","Month","WeekDay","Unit"],fs=/^[IVXLCDM]{2,}$/,bs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,vs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ys=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===ps.test(o)&&!1===ms.test(o)?gs.find(e=>r.tags.has(e))?null:(ds(e,t,n),r.tags.has("Noun")||r.tags.clear(),is(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&fs.test(o)&&bs.test(o)&&!vs[r.normal]?(is(r,"RomanNumeral","2-xvii"),!0):null};const ws=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 ks=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ws(r.normal,n.two.suffixPatterns);if(null!==e)return is(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ws(r.implicit,n.two.suffixPatterns),null!==e))return is(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Ps=/['‘’‛‵′`´]/,As=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 is(r,e,"2-prefix"),r.confidence=.5,!0}return null};const xs=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"]),Ns=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!xs.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Is=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Gs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Ts=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(Ns(a)||Ns(o))return is(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Is(a)||Is(o))return is(n,"Year","2-tagYear-close");if(Gs(e[t-2])||Gs(e[t+2]))return is(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 is(n,"Year","2-tagYear-noun")}}}return null};const Cs=/^[A-Z]('s|,)?$/,Ds=/^[A-Z-]+$/,Os=/([A-Z]\.)+[A-Z]?,?$/,Bs=/[A-Z]{2,}('s|,)?$/,Vs=/([a-z]\.)+[a-z]\.?$/,zs={I:!0,A:!0};var $s=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===Ds.test(n)||n.length>5||zs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Os.test(n)&&!0!==Vs.test(n)&&!0!==Cs.test(n)&&!0!==Bs.test(n))}(r,n)?(r.tags.clear(),is(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!zs.hasOwnProperty(r.text)&&Cs.test(r.text)?(r.tags.clear(),is(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(is(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ds.test(r.text)&&r.text.length<=6?(is(r,"Acronym","3-titlecase-acronym"),!0):null};const Fs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ss=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Hs=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||Fs(e[t-1],a),l=l||Fs(e[t+1],o),l=l||Ss(e[t-1],r),l=l||Ss(e[t+1],i),l)return is(s,l,"3-[neighbour]"),ds(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 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]&&Ms(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ms(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ls=function(e,t,n){0===e[t].tags.size&&(is(e[t],"Noun","3-[fallback]"),ds(e,t,n),e[t].confidence=.1)};const Ws=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,qs=(e,t,n)=>0!==t||e[1]?null:n;var Ks={"Adj|Gerund":(e,t)=>Ws(e,t),"Adj|Noun":(e,t)=>Ws(e,t),"Adj|Past":(e,t)=>Ws(e,t),"Adj|Present":(e,t)=>Ws(e,t),"Noun|Gerund":(e,t)=>Ws(e,t),"Noun|Verb":(e,t)=>Ws(e,t)||qs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ws(e,t)||qs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ws(e,t),"Person|Verb":(e,t)=>0!==t&&Ws(e,t)};const Us="undefined"!=typeof process&&process.env?process.env:self.env||{},Rs=/^(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&&Us.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Zs=(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&&Us.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},_s={tagSwitch:os,checkSuffix:ks,checkRegex:js,checkCase:ys,checkPrefix:Es,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")&&(is(o,"Verb","3-[prefix]"),is(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(is(o,"Adjective","3-[prefix]"),is(o,"Prefix","3-[prefix]")))},checkYear:Ts},Ys={checkAcronym:$s,neighbours:Hs,orgWords:Js,nounFallback:Ls,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(Rs.test(l)&&!o[l]&&(l=l.replace(Rs,"")),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||Zs(e[t-1],n.beforeTags,a),o=o||Zs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ks[o]&&(u=Ks[o](e,t)||u),u?(Us.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):Us.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Xs=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)},nl={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 rl={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 ml=/'/;var gl=function(e,t){let n=e[t].normal.split(ml)[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 fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[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"]},vl=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 yl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},wl={in:!0,by:!0,for:!0};var kl=(e,t)=>{let n=e[t];if(yl.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===wl[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 Pl=/'/,Al=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)},jl={d:(e,t)=>bl(e,t),t:(e,t)=>vl(e,t),s:(e,t,n)=>kl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):gl(e,t)},El=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var xl={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===Pl.test(r[o].normal)&&([,i]=r[o].normal.split(Pl));let s=null;jl.hasOwnProperty(i)&&(s=jl[i](r,o,t)),s&&(s=El(s,e),pl(n,[a,o],s),Al(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=hl},hooks:["contractionTwo"]};const Nl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Il=["i","we","they"];let Gl=[].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:"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)",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:Nl+" #Person",tag:"Person",reason:"randy-smith"},{match:Nl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Nl}]`,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:Il,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:Il,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Il,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"}]),Tl=null;var Cl={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;Tl=Tl||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(Tl),e.uncache(),e}},model:{two:{matches:Gl}},hooks:["postTagger"]},Dl=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)},Ol=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Dl(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},Bl={api:function(e){e.prototype.swap=Ol}};m.plugin(ll),m.plugin(xl),m.plugin(Cl),m.plugin(Bl);var Vl=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},zl=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 $l={this:"Noun",then:"Pivot"};var Fl=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))})},Kl={compute:{chunks:function(e){const{document:t,world:n}=e;Fl(t),Sl(t),Jl(e,t,n),Wl(t),ql(t)}},api:function(e){e.prototype.chunks=zl,e.prototype.clauses=Vl},hooks:["chunks"]};const Ul=/'s$/;var Rl=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(Ul,""),e.normal=e.normal.replace(Ul,"")})}),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=/\(/,Zl=/\)/,_l=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Ql,"");let t=e[e.length-1];t.post=t.post.replace(Zl,"")}),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 Xl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},eu=RegExp("("+Object.keys(Xl).join("|")+")"),tu=RegExp("("+Object.values(Xl).join("|")+")"),nu=function(e,t){const n=e[t].pre.match(eu)[0]||"";if(!n||!Xl[n])return null;const r=Xl[n];for(;t{e[0].pre=e[0].pre.replace(eu,"");let t=e[e.length-1];t.post=t.post.replace(tu,"")})}(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 au=/\./g;var ou=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(au,""),e.normal=e.normal.replace(au,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(au,""),e.normal=e.normal.replace(au,""),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)}},iu=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 su=(e,t)=>"number"==typeof t?e.eq(t):e,lu=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 uu=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=lu(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 su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return su(this,e).map(e=>{let n=lu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=su(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=su(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=su(t,e),new Adjectives(t.document,t.pointer)}};const cu=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},hu=[["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 du=[["emojis","emoji"],["atmentions","atMentions"]];var pu=function(e){hu.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=cu,du.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},mu={api:function(e){pu(e),Rl(e),Yl(e),ru(e),uu(e),iu(e),ou(e)}};const gu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var fu={case:e=>{gu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;gu(e,e=>e.text=n(e.text,t))},whitespace:e=>{gu(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=>{gu(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 bu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),vu="unicode|punctuation|whitespace|acronyms",yu="|case|contractions|parentheses|quotations|emoji|honorifics",wu={light:bu(vu),medium:bu(vu+yu),heavy:bu(vu+yu+"|possessives|adverbs|nouns|verbs")};var ku={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=wu[e]),Object.keys(e).forEach(t=>{fu.hasOwnProperty(t)&&fu[t](this,e[t])}),this}}},Pu=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 Au=["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 ju=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")},xu=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:Eu(e,t),isSubordinate:ju(e),root:t}};const Nu=e=>e.text(),Iu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Gu=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Tu=function(e){let t=xu(e);return{root:Nu(t.root),number:Gu(t.number),determiner:Nu(t.determiner),adjectives:Iu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Cu={tags:!0};var Du=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,Cu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Cu),e};const Ou={tags:!0};var Bu=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,Ou).tag("Singular","toPlural"),e};const Vu=(e,t)=>"number"==typeof t?e.eq(t):e;var zu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Vu(this,e).map(xu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Tu(t)),n},[])}isPlural(e){let t=this.filter(e=>xu(e).isPlural);return Vu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=xu(e).adjectives;n.found&&(t=t.concat(n))}),Vu(t,e)}toPlural(e){return Vu(this,e).map(e=>Du(e,xu(e)))}toSingular(e){return Vu(this,e).map(e=>{let t=xu(e);return Bu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Pu(this);return t=Vu(t,e),new Nouns(this.document,t.pointer)}}},$u=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},Fu=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(Su.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Su.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Su.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Mu=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 Lu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Wu={"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 Ku=function(e){if(!0===Wu.hasOwnProperty(e))return Wu[e];if("a"===e||"an"===e)return 1;const t=Fu(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=Ru(n),r=Ru(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:Ru(n);let a=r.text("reduced");return Uu.test(a)&&(a=a.replace(Uu,""),r=r.replaceWith(a)),r=Qu.hasOwnProperty(a)?Qu[a]:Ru(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:Ru(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},_u=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 Yu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Xu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],ec=[[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"]],tc=function(e){let t=[];if(e>100)return t;for(let n=0;n=Yu[n][1]&&(e-=Yu[n][1],t.push(Yu[n][0]));return Xu[e]&&t.push(Xu[e]),t};var nc=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=_u(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return ec.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(tc(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=_u(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(" ")},rc=function(e){return e.numerator&&e.denominator?`${nc({num:e.numerator})} out of ${nc({num:e.denominator})}`:""};const ac={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 oc=e=>{let t=nc(e).split(" "),n=t[t.length-1];return ac.hasOwnProperty(n)?t[t.length-1]=ac[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},ic=function(e){if(!e.numerator||!e.denominator)return"";let t=nc({num:e.numerator}),n=oc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const sc=(e,t)=>"number"==typeof t?e.eq(t):e;var lc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return sc(this,e).map(Zu)}get(e){return sc(this,e).map(Zu)}json(e){return sc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Zu(t);return n.fraction=r,n},[])}toDecimal(e){return sc(this,e).forEach(e=>{let{decimal:t}=Zu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return sc(this,e).forEach(e=>{let t=Zu(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 sc(this,e).forEach(e=>{let t=Zu(e),n=ic(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return sc(this,e).forEach(e=>{let t=Zu(e),n=rc(t);e.replaceWith(n)}),this}toPercentage(e){return sc(this,e).forEach(e=>{let{decimal:t}=Zu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=$u(this);return t=sc(t,e),new Fractions(this.document,t.pointer)}};const uc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var cc=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("("+uc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+uc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+uc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+uc+")"));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) (${uc})`),r=e.has("("+uc+") #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("("+uc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+uc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},hc=function(e){if("string"==typeof e)return{num:Ku(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=Zu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Ku(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")}},dc=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=_u(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const pc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},mc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var gc=function(e){let t={suffix:"",prefix:e.prefix};return pc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+pc[e.prefix],t.prefix=""),mc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+mc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},fc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=gc(e);return t+oc(e)+n}if("Ordinal"===t)return e.prefix+dc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=gc(e);return t+nc(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const bc=(e,t)=>"number"==typeof t?e.eq(t):e;var vc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return bc(this,e).map(hc)}get(e){return bc(this,e).map(hc).map(e=>e.num)}json(e){return bc(this,e).map(t=>{let n=t.toView().json(e)[0],r=hc(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=hc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=fc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=hc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=fc(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=hc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=fc(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=>hc(t).num===e)}greaterThan(e){return this.filter(t=>hc(t).num>e)}lessThan(e){return this.filter(t=>hc(t).num{let r=hc(n).num;return r>e&&r{let n=hc(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=fc(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=hc(e).num);let t=this.map(t=>{let n=hc(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=fc(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=cc(this);return t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=cc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=cc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=bc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},yc={api:function(e){lc(e),vc(e)}};const wc={people:!0,emails:!0,phoneNumbers:!0,places:!0},kc=function(e={}){return!1!==(e=Object.assign({},wc,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 Pc={api:function(e){e.prototype.redact=kc}},Ac=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))})},jc=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))))))},Ec=function(e){let t=e.clauses(),n=jc(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}},xc=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},Nc=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},Ic=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},Gc=function(e){return e.verbs().toInfinitive(),e};const Tc=(e,t)=>"number"==typeof t?e.eq(t):e;var Cc={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}=Ec(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Tc(this,e).map(e=>(Ec(e),xc(e)))}toPresentTense(e){return Tc(this,e).map(e=>(Ec(e),Nc(e)))}toFutureTense(e){return Tc(this,e).map(e=>(Ec(e),e=Ic(e)))}toInfinitive(e){return Tc(this,e).map(e=>(Ec(e),Gc(e)))}toNegative(e){return Tc(this,e).map(e=>(Ec(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Tc(this,e).map(e=>(Ec(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 Tc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Tc(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=Tc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Ac(this);return Tc(t,e)}};Object.assign(e.prototype,t)}},Dc=function(e){return e.match("#Honorific+? #Person+")},Oc=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 Bc="male",Vc="female",zc={mr:Bc,mrs:Vc,miss:Vc,madam:Vc,king:Bc,queen:Vc,duke:Bc,duchess:Vc,baron:Bc,baroness:Vc,count:Bc,countess:Vc,prince:Bc,princess:Vc,sire:Bc,dame:Vc,lady:Vc,ayatullah:Bc,congressman:Bc,congresswoman:Vc,"first lady":Vc,mx:null};var $c=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Vc;if(n.has("#MaleName"))return Bc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),zc.hasOwnProperty(e))return zc[e];if(/^her /.test(e))return Vc;if(/^his /.test(e))return Bc}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 Bc;if(n&&!t)return Vc}return null};const Fc=(e,t)=>"number"==typeof t?e.eq(t):e;var Sc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Fc(this,e).map(Oc)}json(e){return Fc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Oc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:$c(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=Dc(this);return t=Fc(t,e),new People(this.document,t.pointer)}},Hc=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},Mc=function(e){e.prototype.places=function(t){let n=Hc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Jc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Lc=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 Wc=function(e){e.prototype.topics=Lc},qc={api:function(e){Sc(e),Mc(e),Jc(e),Wc(e)}},Kc=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},Uc=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},Rc=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},Zc=function(e){return e.match("#Negative")},_c=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Yc=function(e){let t=e.clone();t.contractions().expand();const n=Uc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Rc(t,n),auxiliary:Qc(t,n),negative:Zc(t),phrasal:_c(n)}};const Xc={tense:"PresentTense"},eh={conditional:!0},th={tense:"FutureTense"},nh={progressive:!0},rh={tense:"PastTense"},ah={complete:!0,progressive:!1},oh={passive:!0},ih=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},sh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Xc]],["^wanted to #Infinitive$",[rh]],["^will want to #Infinitive$",[th]]],"gerund-phrase":[["^#PastTense #Gerund$",[rh]],["^#PresentTense #Gerund$",[Xc]],["^#Infinitive #Gerund$",[Xc]],["^will #Infinitive #Gerund$",[th]],["^have #PastTense #Gerund$",[rh]],["^will have #PastTense #Gerund$",[rh]]],"simple-present":[["^#PresentTense$",[Xc]],["^#Infinitive$",[Xc]]],"simple-past":[["^#PastTense$",[rh]]],"simple-future":[["^will #Adverb? #Infinitive",[th]]],"present-progressive":[["^(is|are|am) #Gerund$",[Xc,nh]]],"past-progressive":[["^(was|were) #Gerund$",[rh,nh]]],"future-progressive":[["^will be #Gerund$",[th,nh]]],"present-perfect":[["^(has|have) #PastTense$",[rh,ah]]],"past-perfect":[["^had #PastTense$",[rh,ah]],["^had #PastTense to #Infinitive",[rh,ah]]],"future-perfect":[["^will have #PastTense$",[th,ah]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[rh,nh]]],"past-perfect-progressive":[["^had been #Gerund$",[rh,nh]]],"future-perfect-progressive":[["^will have been #Gerund$",[th,nh]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[rh,oh]],["^(was|were) being (#PastTense|#Participle)",[rh,oh]],["^(had|have) been (#PastTense|#Participle)",[rh,oh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Xc,oh]],["^(is|are|am) being (#PastTense|#Participle)",[Xc,oh]],["^has been (#PastTense|#Participle)",[Xc,oh]]],"passive-future":[["will have been (#PastTense|#Participle)",[th,oh,eh]],["will be being? (#PastTense|#Participle)",[th,oh,eh]]],"present-conditional":[["would be #PastTense",[Xc,eh]]],"past-conditional":[["would have been #PastTense",[rh,eh]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[th]]],"auxiliary-past":[["^did #Infinitive$",[rh,{plural:!1}]],["^used to #Infinitive$",[rh,ah]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Xc,ah,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[rh]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let lh=[];Object.keys(sh).map(e=>{sh[e].forEach(t=>{lh.push({name:e,match:t[0],data:ih(t[1])})})});var uh=lh,ch=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(),hh(r)&&(n.remove(r),r=n.last()),hh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:dh(t,e)}};const mh=e=>e,gh=(e,t)=>{let n=ph(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},fh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=ph(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},bh=function(e,t){let n=ph(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},vh=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},yh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,vh(e)),r&&e.replace(t.root,r),e},wh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),kh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Ph=function(e){return e&&e.isView?e.text("normal"):""},Ah=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,vh(e))};var jh=function(e){let t=Yc(e);e=e.clone().toView();const n=ch(e,t);return{root:t.root.text(),preAdverbs:kh(t.adverbs.pre),postAdverbs:kh(t.adverbs.post),auxiliary:Ph(t.auxiliary),negative:t.negative.found,prefix:Ph(t.prefix),infinitive:Ah(t.root),grammar:n}};const Eh={tags:!0};var xh=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,vh(r)),i&&e.replace(r,i,Eh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=bh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Nh={tags:!0},Ih={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,vh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=ph(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Nh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ih.simple(e,t),e=Ih.noAux(e,t))},hasHad:e=>(e.replace("has","had",Nh),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,vh(a)),n(o,e.model).Participle}},Gh={infinitive:Ih.simple,"simple-present":Ih.simple,"simple-past":mh,"simple-future":Ih.both,"present-progressive":e=>(e.replace("are","were",Nh),e.replace("(is|are|am)","was",Nh),e),"past-progressive":mh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ih.hasHad,"past-perfect":mh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=wh(e)),e.remove("have"),e),"present-perfect-progressive":Ih.hasHad,"past-perfect-progressive":mh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Nh),e),"passive-past":e=>(e.replace("have","had",Nh),e),"passive-present":e=>(e.replace("(is|are)","was",Nh),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",Nh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":mh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Nh),e),"auxiliary-past":mh,"auxiliary-present":e=>(e.replace("(do|does)","did",Nh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Nh):(Ih.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":mh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Nh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ih.simple(e,t),wh(e),e)};var Th=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},Dh=(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,vh(a)),!1===gh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=fh(e)),o&&(e=e.replace(a,o,Ch)).not("#Particle").tag("PresentTense"),e},Oh=(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,vh(a)),!1===gh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Ch)).not("#Particle").tag("Gerund"),e},Bh={infinitive:Dh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Dh(e,t);{let t=ph(e).subject;if(gh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Ch)}return e},"simple-past":Dh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=fh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Dh(e,t),e=e.remove("will");return e},"present-progressive":mh,"past-progressive":(e,t)=>{let n=fh(e);return e.replace("(were|was)",n,Ch)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Dh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=ph(e).subject;return gh(e)||n.has("i")?((e=yh(e,t)).remove("had"),e):(e.replace("had","has",Ch),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":mh,"past-perfect-progressive":e=>e.replace("had","has",Ch),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=fh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Ch),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":mh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":mh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Oh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=bh(e);return e.replace(t.auxiliary,n),e}return Oh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":mh,"modal-infinitive":mh,"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,vh(r)),a&&(e=e.replace(t.root,a,Ch))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Dh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return gh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Ch),e.remove("will"),e}};var Vh=function(e,t,n){return Bh.hasOwnProperty(n)?((e=Bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const zh={tags:!0},$h=(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,vh(r)),o&&(e=e.replace(r,o,zh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Fh=(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,vh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,zh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Sh={infinitive:$h,"simple-present":$h,"simple-past":$h,"simple-future":mh,"present-progressive":Fh,"past-progressive":Fh,"future-progressive":mh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":mh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":mh,"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":mh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":mh,"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":mh,"modal-past":mh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),$h(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Hh=function(e,t,n){return e.has("will")||e.has("going to")?e:Sh.hasOwnProperty(n)?((e=Sh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Mh={tags:!0};var Jh=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,vh(a));let s=r(i,e.model).Gerund;return s&&(s=`${fh(e)} ${s}`,e.replace(a,s,Mh)),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 Lh={tags:!0},Wh=function(e,t){let n=bh(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)},Kh=e=>e.has("(is|was|am|are|will|were|be)"),Uh={"simple-present":(e,t)=>!0===Kh(e)?qh(e):(e=yh(e,t),e=Wh(e)),"simple-past":(e,t)=>!0===Kh(e)?qh(e):((e=yh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Kh(e)?qh(e):Wh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Lh),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=Wh(e)).replace("wants","want",Lh)};var Rh=function(e,t,n){if(e.has("#Negative"))return e;if(Uh.hasOwnProperty(n))return e=Uh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Kh(e)?qh(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 Zh={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(Yc)}json(e,t){return Qh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=jh(t),n},[])}subjects(e){return Qh(this,e).map(e=>(Yc(e),ph(e).subject))}adverbs(e){return Qh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Qh(this,e).filter(e=>!0!==ph(e).plural)}isPlural(e){return Qh(this,e).filter(e=>!0===ph(e).plural)}isImperative(e){return Qh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return xh(e,t,n.form)})}toPresentTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Vh(e,t,n.form)})}toPastTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Th(e,t,n.form)})}toFutureTense(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Hh(e,t,n.form)})}toGerund(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return Jh(e,t,n.form)})}conjugate(e){return Qh(this,e).map(e=>{let t=Yc(e),n=ch(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:xh(e.clone(),t,n.form).text("normal"),PastTense:Th(e.clone(),t,n.form).text("normal"),PresentTense:Vh(e.clone(),t,n.form).text("normal"),FutureTense:Hh(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=Yc(e),n=ch(e,t);return Rh(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=Kc(this);return t=Qh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Kl),m.plugin(mu),m.plugin(ku),m.plugin(zu),m.plugin(yc),m.plugin(Pc),m.plugin(Cc),m.plugin(qc),m.plugin(Zh),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]);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.0";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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=In(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Tn=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})},Cn=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.find(e=>r.has(e)))})},Dn=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},On=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=Gn(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=Tn(a,t.hooks);return o=Cn(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),Dn(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&&On(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Bn(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 zn=/ /,$n=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],t,a),1!=(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(/^#/,""),Fn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nSn(e,t,n,r))};var Hn=Sn,Mn=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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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):(qn(t=e).forEach(Jn),t);var t},Qn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return qn(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=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},_n={text:Qn,txt:Qn,array:Zn,flat:Zn},Yn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Qn(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Xn=e=>{qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},er=/\//;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),!er.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(Kn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Jn({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 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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(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 Xn(this.json),Yn(this.json,e)}debug(){return Xn(this.json),Yn(this.json,"debug"),this}}const tr=function(e){let t=Rn(e);return new g$1(t)};tr.prototype.plugin=function(e){e(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(e){if(nr.hasOwnProperty(e.id))return nr[e.id];if(nr.hasOwnProperty(e.is))return nr[e.is];let t=e._cache.parents.find(e=>nr[e]);return nr[t]};var ar=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:rr(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 or=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=or(e[t].children),e[t].not=or(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},sr={one:{setTag:Hn,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=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 tr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ar(n)}}};const lr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ur={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||""),lr(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 lr(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,ur)},hr={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 dr=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(dr.has(e)||!t.hasOwnProperty(n))return 1;if(dr.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:sr,api:cr,lib:hr};const mr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var fr=function(e){let t=[],n=e.split(gr);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]+/,Vr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,zr=/['’]/,$r=/^[a-z]\.([a-z]\.)+/i,Fr=/^[-+.][0-9]/,Sr=/^'[0-9]{2}/;var Hr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Br,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fr.test(e)?"'"===n&&Sr.test(e)?(n="",t):"":(n="",t)))).replace(Vr,a=>(r=a,zr.test(a)&&/[sn]['’]$/.test(t)&&!1===zr.test(n)?(r=r.replace(zr,""),"'"):!0===$r.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Mr=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]?,?$/,Lr=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,qr=/([a-z]\.)+[a-z]\.?$/;var Kr=function(e){return function(e){return!0===Jr.test(e)||!0===qr.test(e)||!0===Lr.test(e)||!0===Wr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Ur=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Mr(r),r=n(r,t),r=Kr(r),e.normal=r},Rr={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:jr,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(Dr);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=Nr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Hr(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})}}}},Qr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zr={},_r={};[[["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,_r[t]="Abbreviation",void 0!==e[1]&&(_r[t]=[_r[t],e[1]])})});var Yr=["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 Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},ea={};Object.keys(Xr).forEach((function(e){Xr[e].split("").forEach((function(t){ea[t]=e}))}));const ta=/\//,na=/[a-z]\.[a-z]/i,ra=/[0-9]/;var aa=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])),ta.test(n)&&!na.test(n)&&!ra.test(n)){let t=n.split(ta);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const oa=/^\p{Letter}+-\p{Letter}+$/u;var ia=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"),oa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},sa=function(e){let t=0,n=0,r=e.document;for(let e=0;ela(e,aa),machine:e=>la(e,ia),normal:e=>la(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 da={safe:!0,min:3};var pa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ca},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},da,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ha(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(fn),m.extend(St),m.extend(Nn),m.extend(pr),m.plugin(be),m.extend(ua),m.plugin(f),m.extend(Ge),m.extend(pa),m.extend(Pe),m.extend(Vn);var ma={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"},ga={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 fa=36,ba="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",va=ba.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ya=function(e){if(void 0!==va[e])return va[e];let t=0,n=1,r=fa,a=1;for(;n=0;n--,a*=fa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},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(ga[e]);Na.test(e)?Object.keys(t).forEach(t=>{if(Ga[t]=e,"Noun|Verb"===e){let e=xa(t,Ta);Ga[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 Ca="Adjective";var Da={beforeTags:{Determiner:Ca,Possessive:Ca},afterTags:{Adjective:Ca},beforeWords:{seem:Ca,seemed:Ca,seems:Ca,feel:Ca,feels:Ca,felt:Ca,appear:Ca,appears:Ca,appeared:Ca,also:Ca,over:Ca,under:Ca,too:Ca,it:Ca,but:Ca,still:Ca,really:Ca,quite:Ca,well:Ca,very:Ca,deeply:Ca,profoundly:Ca,extremely:Ca,so:Ca,badly:Ca,mostly:Ca,totally:Ca,awfully:Ca,rather:Ca,nothing:Ca,something:Ca,anything:Ca},afterWords:{too:Ca,also:Ca,or:Ca}};const Oa="Gerund";var Ba={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}},Va={beforeTags:Object.assign({},Da.beforeTags,Ba.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Da.afterTags,Ba.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Da.beforeWords,Ba.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Da.afterWords,Ba.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({},Da.beforeTags,$a.beforeTags,Fa.beforeTags),afterTags:Object.assign({},Da.afterTags,$a.afterTags),beforeWords:Object.assign({},Da.beforeWords,$a.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.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"},Ja={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},La={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wa={beforeTags:Object.assign({},Da.beforeTags,Ha),afterTags:Object.assign({},Da.afterTags,Ma),beforeWords:Object.assign({},Da.beforeWords,Ja),afterWords:Object.assign({},Da.afterWords,La)};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,when:qa,all:qa,to:qa,because:qa,although:qa,before:qa,how:qa,otherwise:qa,though:qa,yet:qa}};const Ua={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Da.beforeTags,Ka.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,Ka.afterTags,Ua.afterTags),beforeWords:Object.assign({},Da.beforeWords,Ka.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,Ka.afterWords,{to:void 0})};const Qa={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Za={},_a={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({},Ba.beforeTags,$a.beforeTags,Qa),afterTags:Object.assign({},Ba.afterTags,$a.afterTags,Za),beforeWords:Object.assign({},Ba.beforeWords,$a.beforeWords,_a),afterWords:Object.assign({},Ba.afterWords,$a.afterWords,Ya)},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"},co={"Adj|Gerund":Va,"Adj|Noun":Sa,"Adj|Past":Wa,"Adj|Present":Ra,"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",bo="Singular",vo="PastTense",yo="Adverb",wo="Plural",ko="Actor",Po="Verb",Ao="Noun",jo="LastName",Eo="Modal",xo="Participle";var No=[null,null,{ea:bo,ia:Ao,ic:mo,ly:yo,"'n":Po,"'t":Po},{oed:vo,ued:vo,xed:vo," so":yo,"'ll":Eo,"'re":"Copula",azy:mo,eer:Ao,end:Po,ped:vo,ffy:mo,ify:go,ing:"Gerund",ize:go,ibe:go,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:vo,ken:xo,ven:xo,ten:xo,ect:go,ict:go,ign:go,ful:mo,bal:mo},{amed:vo,aped:vo,ched:vo,lked:vo,rked:vo,reed:vo,nded:vo,mned:mo,cted:vo,dged:vo,ield:bo,akis:jo,cede:go,chuk:jo,czyk:jo,ects:fo,ends:Po,enko:jo,ette:bo,wner:bo,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:jo,oses:fo,ould:Eo,some:mo,sson:jo,tion:bo,tage:Ao,ique:bo,tive:mo,tors:Ao,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:mo,vide:go,ract:go,duce:go,pose:go,eive:go,lyze:go,lyse:go,iant:mo,nary:mo},{elist:bo,holic:bo,phite:bo,tized:vo,urned:vo,eased:vo,ances:wo,bound:mo,ettes:wo,fully:yo,ishes:fo,ities:wo,marek:jo,nssen:jo,ology:Ao,osome:bo,tment:bo,ports:wo,rough:mo,tches:fo,tieth:"Ordinal",tures:wo,wards:yo,where:yo,archy:Ao,pathy:Ao,opoly:Ao,embly:Ao,phate:Ao,ndent:bo,scent:bo,onist:bo,anist:bo,alist:bo,olist:bo,icist:bo,ounce:go,iable:mo,borne:mo,gnant:mo,inant:mo,igent:mo,atory:mo,rient:bo,dient:bo},{auskas:jo,parent:bo,cedent:bo,ionary:bo,cklist:bo,keeper:ko,logist:ko,teenth:"Value"},{opoulos:jo,borough:"Place",sdottir:jo}];const Io="Adjective",Go="Noun",To="Verb";var Co=[null,null,{},{neo:Go,bio:Go,"de-":To,"re-":To,"un-":To},{anti:Go,auto:Go,faux:Io,hexa:Go,kilo:Go,mono:Go,nano:Go,octa:Go,poly:Go,semi:Io,tele:Go,"pro-":Io,"mis-":To,"dis-":To,"pre-":Io},{anglo:Go,centi:Go,ethno:Go,ferro:Go,grand:Go,hepta:Go,hydro:Go,intro:Go,macro:Go,micro:Go,milli:Go,nitro:Go,penta:Go,quasi:Io,radio:Go,tetra:Go,"omni-":Io,"post-":Io},{pseudo:Io,"extra-":Io,"hyper-":Io,"inter-":Io,"intra-":Io,"deca-":Io},{electro:Go}];const Do="Adjective",Oo="Infinitive",Bo="PresentTense",Vo="Singular",zo="PastTense",$o="Adverb",Fo="Expression",So="Actor",Ho="Verb",Mo="Noun",Jo="LastName";var Lo={a:[[/.[aeiou]na$/,Mo,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,Do]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Vo,"steward"],[/[aeiou][^aeiou]id$/,Do,""],[/.[vrl]id$/,Do,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,Oo,"antagonize"],[/.[^aeiou]ise$/,Oo,"antagonise"],[/.[aeiou]te$/,Oo,"bite"],[/.[^aeiou][ai]ble$/,Do,"fixable"],[/.[^aeiou]eable$/,Do,"maleable"],[/.[ts]ive$/,Do,"festive"],[/[a-z]-like$/,Do,"woman-like"]],h:[[/.[^aeiouf]ish$/,Do,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,Do,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Fo,"kkkk"]],l:[[/.[gl]ial$/,Do,"familial"],[/.[^aeiou]ful$/,Do,"fitful"],[/.[nrtumcd]al$/,Do,"natal"],[/.[^aeiou][ei]al$/,Do,"familial"]],m:[[/.[^aeiou]ium$/,Vo,"magnesium"],[/[^aeiou]ism$/,Vo,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Do,"republican"],[/[^aeiou]ician$/,So,"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$/,Vo],[/[^i]fer$/,Oo],[/.[^aeiou][ao]pher$/,So],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Do],[/[aeiou].*ist$/,Do],[/^[a-z]et$/,Ho]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,Ho],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,Mo],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,Do],[/.[st]ty$/,Do],[/.[tnl]ary$/,Do],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,$o],[/.(gg|bb|zz)ly$/,Do],[/...lly$/,$o],[/.[gk]y$/,Do],[/[bszmp]{2}y$/,Do],[/.[ai]my$/,Do],[/[ea]{2}zy$/,Do],[/.[^aeiou]ity$/,Vo]]};const Wo="Verb",qo="Noun";var Ko={leftTags:[["Adjective",qo],["Possessive",qo],["Determiner",qo],["Adverb",Wo],["Pronoun",Wo],["Value",qo],["Ordinal",qo],["Modal",Wo],["Superlative",qo],["Demonym",qo],["Honorific","Person"]],leftWords:[["i",Wo],["first",qo],["it",Wo],["there",Wo],["not",Wo],["because",qo],["if",qo],["but",qo],["who",Wo],["this",qo],["his",qo],["when",qo],["you",Wo],["very","Adjective"],["old",qo],["never",Wo],["before",qo],["a","Singular"],["the",qo],["been",Wo]],rightTags:[["Copula",qo],["PastTense",qo],["Conjunction",qo],["Modal",qo]],rightWords:[["there",Wo],["me",Wo],["man","Adjective"],["only",Wo],["him",Wo],["it",Wo],["were",qo],["took",qo],["himself",Wo],["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"},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"},Zo={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],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},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(Zo),si=ri(Ro),li=ri(Qo),ui=ai(oi),ci=ai(ii),hi=ai(si),di=ai(li),pi=ri(Uo),mi=ri(_o);var gi={fromPast:oi,fromPresent:ii,fromGerund:si,fromParticiple:li,toPast:ui,toPresent:ci,toGerund:hi,toParticiple:di,toComparative:pi,toSuperlative:mi,fromComparative:ai(pi),fromSuperlative:ai(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,""]],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(yi[t].forEach(n=>e[n]=t),e),{});var wi=yi,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=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},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},Ei=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 xi="ically",Ni=new Set(["analyt"+xi,"chem"+xi,"class"+xi,"clin"+xi,"crit"+xi,"ecolog"+xi,"electr"+xi,"empir"+xi,"frant"+xi,"grammat"+xi,"ident"+xi,"ideolog"+xi,"log"+xi,"mag"+xi,"mathemat"+xi,"mechan"+xi,"med"+xi,"method"+xi,"method"+xi,"mus"+xi,"phys"+xi,"phys"+xi,"polit"+xi,"pract"+xi,"rad"+xi,"satir"+xi,"statist"+xi,"techn"+xi,"technolog"+xi,"theoret"+xi,"typ"+xi,"vert"+xi,"whims"+xi]),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")?Ni.has(e)?e.replace(/ically/,"ical"):Gi.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:Ei(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=Ei(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"]),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"]}},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.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:xa,nounToSingular:vi,verbToInfinitive:Ai,getTense:ki,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:Ci,adjToAdverb:Bi,adjToNoun:function(e){if(zi.hasOwnProperty(e))return zi[e];if($i.has(e))return null;let t=Ei(e,Vi);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 Li=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Wi=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(r,"Infinitive","Verb"),Object.assign(s,l),l=Li(a,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(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")},Qi=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 Zi={one:{_multiCache:{},lexicon:Ia},two:{irregularPlurals:ma,models:gi,suffixPatterns:No,prefixPatterns:Co,endsWith:Lo,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:Ga,clues:po,uncountable:{},orgWords:fi}};Zi=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=Qi(e.two.switches,e),e=Wi(e),e=Ji(e)}(Zi);var _i=Zi;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])}},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"]},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 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===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 ms=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=ms(r.normal,n.two.suffixPatterns);if(null!==e)return es(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ms(r.implicit,n.two.suffixPatterns),null!==e))return es(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const fs=/['‘’‛‵′`´]/,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 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"]),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 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(ks(a)||ks(o))return es(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Ps(a)||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(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 Es=/^[A-Z]('s|,)?$/,xs=/^[A-Z-]+$/,Ns=/([A-Z]\.)+[A-Z]?,?$/,Is=/[A-Z]{2,}('s|,)?$/,Gs=/([a-z]\.)+[a-z]\.?$/,Ts={I:!0,A:!0};var Cs=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===xs.test(n)||n.length>5||Ts.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ns.test(n)&&!0!==Gs.test(n)&&!0!==Es.test(n)&&!0!==Is.test(n))}(r,n)?(r.tags.clear(),es(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ts.hasOwnProperty(r.text)&&Es.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")&&xs.test(r.text)&&r.text.length<=6?(es(r,"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},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||Ds(e[t-1],a),l=l||Ds(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},$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),"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||{},Js=/^(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&&Ms.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&&Ms.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},qs={tagSwitch:Xi,checkSuffix:gs,checkRegex:vs,checkCase:ps,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:Cs,neighbours:Bs,orgWords:zs,nounFallback:$s,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=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);Hs[o]&&(u=Hs[o](e,t)||u),u?(Ms.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):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)},Zs={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: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"]},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 pl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ml={in:!0,by:!0,for:!0};var gl=(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===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 fl=/'/,bl=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)},vl={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;vl.hasOwnProperty(i)&&(s=vl[i](r,o,t)),s&&(s=yl(s,e),sl(n,[a,o],s),bl(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 kl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",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:"[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:"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)",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: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:"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:"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"}]),jl=null;var El={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;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}},model:{two:{matches:Al}},hooks:["postTagger"]},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)},Nl=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},Il={api:function(e){e.prototype.swap=Nl}};m.plugin(nl),m.plugin(wl),m.plugin(El),m.plugin(Il);var Gl=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},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 Cl={this:"Noun",then:"Pivot"};var Dl=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))})},Hl={compute:{chunks:function(e){const{document:t,world:n}=e;Dl(t),Ol(t),zl(e,t,n),Fl(t),Sl(t)}},api:function(e){e.prototype.chunks=Tl,e.prototype.clauses=Gl},hooks:["chunks"]};const Ml=/'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(Ml,""),e.normal=e.normal.replace(Ml,"")})}),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=/\)/,ql=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 Ul={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Ul).join("|")+")"),Ql=RegExp("("+Object.values(Ul).join("|")+")"),Zl=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Ul[n])return null;const r=Ul[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ql,"")})}(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 Yl=/\./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(Yl,""),e.normal=e.normal.replace(Yl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Yl,""),e.normal=e.normal.replace(Yl,""),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)}},eu=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 tu=(e,t)=>"number"==typeof t?e.eq(t):e,nu=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 ru=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=nu(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 tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=tu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=tu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=tu(t,e),new Adjectives(t.document,t.pointer)}};const au=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},ou=[["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 iu=[["emojis","emoji"],["atmentions","atMentions"]];var su=function(e){ou.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=au,iu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},lu={api:function(e){su(e),Jl(e),Kl(e),_l(e),ru(e),eu(e),Xl(e)}};const uu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var cu={case:e=>{uu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;uu(e,e=>e.text=n(e.text,t))},whitespace:e=>{uu(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=>{uu(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 hu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),du="unicode|punctuation|whitespace|acronyms",pu="|case|contractions|parentheses|quotations|emoji|honorifics",mu={light:hu(du),medium:hu(du+pu),heavy:hu(du+pu+"|possessives|adverbs|nouns|verbs")};var gu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=mu[e]),Object.keys(e).forEach(t=>{cu.hasOwnProperty(t)&&cu[t](this,e[t])}),this}}},fu=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 bu=["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")},wu=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:yu(e,t),isSubordinate:vu(e),root:t}};const ku=e=>e.text(),Pu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Au=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var ju=function(e){let t=wu(e);return{root:ku(t.root),number:Au(t.number),determiner:ku(t.determiner),adjectives:Pu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Eu={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,Eu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Eu),e};const Nu={tags:!0};var Iu=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,Nu).tag("Singular","toPlural"),e};const Gu=(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 Gu(this,e).map(wu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=ju(t)),n},[])}isPlural(e){let t=this.filter(e=>wu(e).isPlural);return Gu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=wu(e).adjectives;n.found&&(t=t.concat(n))}),Gu(t,e)}toPlural(e){return Gu(this,e).map(e=>xu(e,wu(e)))}toSingular(e){return Gu(this,e).map(e=>{let t=wu(e);return Iu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=fu(this);return t=Gu(t,e),new Nouns(this.document,t.pointer)}}},Cu=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},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(Ou.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Ou.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Ou.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},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 $u=/^([0-9,. ]+)\/([0-9,. ]+)$/,Fu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Su=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Hu=function(e){if(!0===Fu.hasOwnProperty(e))return Fu[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=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 Mu.test(a)&&(a=a.replace(Mu,""),r=r.replaceWith(a)),r=Lu.hasOwnProperty(a)?Lu[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},qu=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 Ku=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Uu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Ru=[[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"]],Qu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Ku[n][1]&&(e-=Ku[n][1],t.push(Ku[n][0]));return Uu[e]&&t.push(Uu[e]),t};var Zu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=qu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ru.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(Qu(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=qu(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(" ")},_u=function(e){return e.numerator&&e.denominator?`${Zu({num:e.numerator})} out of ${Zu({num:e.denominator})}`:""};const Yu={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=Zu(e).split(" "),n=t[t.length-1];return Yu.hasOwnProperty(n)?t[t.length-1]=Yu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},ec=function(e){if(!e.numerator||!e.denominator)return"";let t=Zu({num:e.numerator}),n=Xu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const tc=(e,t)=>"number"==typeof t?e.eq(t):e;var nc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return tc(this,e).map(Wu)}get(e){return tc(this,e).map(Wu)}json(e){return tc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Wu(t);return n.fraction=r,n},[])}toDecimal(e){return tc(this,e).forEach(e=>{let{decimal:t}=Wu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return tc(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 tc(this,e).forEach(e=>{let t=Wu(e),n=ec(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return tc(this,e).forEach(e=>{let t=Wu(e),n=_u(t);e.replaceWith(n)}),this}toPercentage(e){return tc(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=Cu(this);return t=tc(t,e),new Fractions(this.document,t.pointer)}};const rc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ac=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("("+rc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+rc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+rc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+rc+")"));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) (${rc})`),r=e.has("("+rc+") #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("("+rc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+rc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},oc=function(e){if("string"==typeof e)return{num:Hu(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=Hu(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")}},ic=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=qu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const sc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},lc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var uc=function(e){let t={suffix:"",prefix:e.prefix};return sc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+sc[e.prefix],t.prefix=""),lc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+lc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},cc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=uc(e);return t+Xu(e)+n}if("Ordinal"===t)return e.prefix+ic(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=uc(e);return t+Zu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const hc=(e,t)=>"number"==typeof t?e.eq(t):e;var dc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return hc(this,e).map(oc)}get(e){return hc(this,e).map(oc).map(e=>e.num)}json(e){return hc(this,e).map(t=>{let n=t.toView().json(e)[0],r=oc(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=oc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=cc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=oc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=cc(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=>oc(t).num===e)}greaterThan(e){return this.filter(t=>oc(t).num>e)}lessThan(e){return this.filter(t=>oc(t).num{let r=oc(n).num;return r>e&&r{let n=oc(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=cc(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=oc(e).num);let t=this.map(t=>{let n=oc(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=cc(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=ac(this);return t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ac(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ac(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},pc={api:function(e){nc(e),dc(e)}};const mc={people:!0,emails:!0,phoneNumbers:!0,places:!0},gc=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 fc={api:function(e){e.prototype.redact=gc}},bc=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))})},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))))))},yc=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}},wc=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},kc=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},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},Ac=function(e){return e.verbs().toInfinitive(),e};const jc=(e,t)=>"number"==typeof t?e.eq(t):e;var Ec={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}=yc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return jc(this,e).map(e=>(yc(e),wc(e)))}toPresentTense(e){return jc(this,e).map(e=>(yc(e),kc(e)))}toFutureTense(e){return jc(this,e).map(e=>(yc(e),e=Pc(e)))}toInfinitive(e){return jc(this,e).map(e=>(yc(e),Ac(e)))}toNegative(e){return jc(this,e).map(e=>(yc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return jc(this,e).map(e=>(yc(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 jc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return jc(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=jc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=bc(this);return jc(t,e)}};Object.assign(e.prototype,t)}},xc=function(e){return e.match("#Honorific+? #Person+")},Nc=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 Ic="male",Gc="female",Tc={mr:Ic,mrs:Gc,miss:Gc,madam:Gc,king:Ic,queen:Gc,duke:Ic,duchess:Gc,baron:Ic,baroness:Gc,count:Ic,countess:Gc,prince:Ic,princess:Gc,sire:Ic,dame:Gc,lady:Gc,ayatullah:Ic,congressman:Ic,congresswoman:Gc,"first lady":Gc,mx:null};var Cc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Gc;if(n.has("#MaleName"))return Ic;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Tc.hasOwnProperty(e))return Tc[e];if(/^her /.test(e))return Gc;if(/^his /.test(e))return Ic}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 Ic;if(n&&!t)return Gc}return null};const Dc=(e,t)=>"number"==typeof t?e.eq(t):e;var Oc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Dc(this,e).map(Nc)}json(e){return Dc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Nc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Cc(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=Dc(t,e),new People(this.document,t.pointer)}},Bc=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},Vc=function(e){e.prototype.places=function(t){let n=Bc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},zc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const $c=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 Fc=function(e){e.prototype.topics=$c},Sc={api:function(e){Oc(e),Vc(e),zc(e),Fc(e)}},Hc=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},Mc=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 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")},qc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Kc=function(e){let t=e.clone();t.contractions().expand();const n=Mc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Jc(t,n),auxiliary:Lc(t,n),negative:Wc(t),phrasal:qc(n)}};const Uc={tense:"PresentTense"},Rc={conditional:!0},Qc={tense:"FutureTense"},Zc={progressive:!0},_c={tense:"PastTense"},Yc={complete:!0,progressive:!1},Xc={passive:!0},eh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},th={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Uc]],["^wanted to #Infinitive$",[_c]],["^will want to #Infinitive$",[Qc]]],"gerund-phrase":[["^#PastTense #Gerund$",[_c]],["^#PresentTense #Gerund$",[Uc]],["^#Infinitive #Gerund$",[Uc]],["^will #Infinitive #Gerund$",[Qc]],["^have #PastTense #Gerund$",[_c]],["^will have #PastTense #Gerund$",[_c]]],"simple-present":[["^#PresentTense$",[Uc]],["^#Infinitive$",[Uc]]],"simple-past":[["^#PastTense$",[_c]]],"simple-future":[["^will #Adverb? #Infinitive",[Qc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Uc,Zc]]],"past-progressive":[["^(was|were) #Gerund$",[_c,Zc]]],"future-progressive":[["^will be #Gerund$",[Qc,Zc]]],"present-perfect":[["^(has|have) #PastTense$",[_c,Yc]]],"past-perfect":[["^had #PastTense$",[_c,Yc]],["^had #PastTense to #Infinitive",[_c,Yc]]],"future-perfect":[["^will have #PastTense$",[Qc,Yc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[_c,Zc]]],"past-perfect-progressive":[["^had been #Gerund$",[_c,Zc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Qc,Zc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[_c,Xc]],["^(was|were) being (#PastTense|#Participle)",[_c,Xc]],["^(had|have) been (#PastTense|#Participle)",[_c,Xc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Uc,Xc]],["^(is|are|am) being (#PastTense|#Participle)",[Uc,Xc]],["^has been (#PastTense|#Participle)",[Uc,Xc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Qc,Xc,Rc]],["will be being? (#PastTense|#Participle)",[Qc,Xc,Rc]]],"present-conditional":[["would be #PastTense",[Uc,Rc]]],"past-conditional":[["would have been #PastTense",[_c,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Qc]]],"auxiliary-past":[["^did #Infinitive$",[_c,{plural:!1}]],["^used to #Infinitive$",[_c,Yc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Uc,Yc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[_c]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let nh=[];Object.keys(th).map(e=>{th[e].forEach(t=>{nh.push({name:e,match:t[0],data:eh(t[1])})})});var rh=nh,ah=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(),oh(r)&&(n.remove(r),r=n.last()),oh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:ih(t,e)}};const lh=e=>e,uh=(e,t)=>{let n=sh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},ch=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=sh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},hh=function(e,t){let n=sh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},dh=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},ph=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,dh(e)),r&&e.replace(t.root,r),e},mh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),gh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},fh=function(e){return e&&e.isView?e.text("normal"):""},bh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,dh(e))};var vh=function(e){let t=Kc(e);e=e.clone().toView();const n=ah(e,t);return{root:t.root.text(),preAdverbs:gh(t.adverbs.pre),postAdverbs:gh(t.adverbs.post),auxiliary:fh(t.auxiliary),negative:t.negative.found,prefix:fh(t.prefix),infinitive:bh(t.root),grammar:n}};const yh={tags:!0};var wh=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,dh(r)),i&&e.replace(r,i,yh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=hh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const kh={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,dh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=sh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,kh),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",kh),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,dh(a)),n(o,e.model).Participle}},Ah={infinitive:Ph.simple,"simple-present":Ph.simple,"simple-past":lh,"simple-future":Ph.both,"present-progressive":e=>(e.replace("are","were",kh),e.replace("(is|are|am)","was",kh),e),"past-progressive":lh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ph.hasHad,"past-perfect":lh,"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":lh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",kh),e),"passive-past":e=>(e.replace("have","had",kh),e),"passive-present":e=>(e.replace("(is|are)","was",kh),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",kh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":lh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",kh),e),"auxiliary-past":lh,"auxiliary-present":e=>(e.replace("(do|does)","did",kh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",kh):(Ph.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":lh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",kh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ph.simple(e,t),mh(e),e)};var jh=function(e,t,n){return Ah.hasOwnProperty(n)?((e=Ah[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Eh={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,dh(a)),!1===uh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=ch(e)),o&&(e=e.replace(a,o,Eh)).not("#Particle").tag("PresentTense"),e},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,dh(a)),!1===uh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Eh)).not("#Particle").tag("Gerund"),e},Ih={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=sh(e).subject;if(uh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Eh)}return e},"simple-past":xh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=ch(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":lh,"past-progressive":(e,t)=>{let n=ch(e);return e.replace("(were|was)",n,Eh)},"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=sh(e).subject;return uh(e)||n.has("i")?((e=ph(e,t)).remove("had"),e):(e.replace("had","has",Eh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":lh,"past-perfect-progressive":e=>e.replace("had","has",Eh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=ch(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Eh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":lh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":lh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Nh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=hh(e);return e.replace(t.auxiliary,n),e}return Nh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":lh,"modal-infinitive":lh,"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,dh(r)),a&&(e=e.replace(t.root,a,Eh))})(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 uh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Eh),e.remove("will"),e}};var Gh=function(e,t,n){return Ih.hasOwnProperty(n)?((e=Ih[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Th={tags:!0},Ch=(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,dh(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,dh(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},Oh={infinitive:Ch,"simple-present":Ch,"simple-past":Ch,"simple-future":lh,"present-progressive":Dh,"past-progressive":Dh,"future-progressive":lh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":lh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":lh,"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":lh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":lh,"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":lh,"modal-past":lh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Bh=function(e,t,n){return e.has("will")||e.has("going to")?e:Oh.hasOwnProperty(n)?((e=Oh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Vh={tags:!0};var zh=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,dh(a));let s=r(i,e.model).Gerund;return s&&(s=`${ch(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(["preTagger","postTagger","chunks"]),e};const $h={tags:!0},Fh=function(e,t){let n=hh(e);return e.prepend(n+" not"),e},Sh=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)},Hh=e=>e.has("(is|was|am|are|will|were|be)"),Mh={"simple-present":(e,t)=>!0===Hh(e)?Sh(e):(e=ph(e,t),e=Fh(e)),"simple-past":(e,t)=>!0===Hh(e)?Sh(e):((e=ph(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Hh(e)?Sh(e):Fh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",$h),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=Fh(e)).replace("wants","want",$h)};var Jh=function(e,t,n){if(e.has("#Negative"))return e;if(Mh.hasOwnProperty(n))return e=Mh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Hh(e)?Sh(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(Kc)}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=>(Kc(e),sh(e).subject))}adverbs(e){return Lh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Lh(this,e).filter(e=>!0!==sh(e).plural)}isPlural(e){return Lh(this,e).filter(e=>!0===sh(e).plural)}isImperative(e){return Lh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return wh(e,t,n.form)})}toPresentTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return Gh(e,t,n.form)})}toPastTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return jh(e,t,n.form)})}toFutureTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return Bh(e,t,n.form)})}toGerund(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return zh(e,t,n.form)})}conjugate(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:wh(e.clone(),t,n.form).text("normal"),PastTense:jh(e.clone(),t,n.form).text("normal"),PresentTense:Gh(e.clone(),t,n.form).text("normal"),FutureTense:Bh(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=Kc(e),n=ah(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=Hc(this);return t=Lh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Hl),m.plugin(lu),m.plugin(gu),m.plugin(Tu),m.plugin(pc),m.plugin(fc),m.plugin(Ec),m.plugin(Sc),m.plugin(Wh),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 cb065b9cd..0e69950c5 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.0";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.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(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},C.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 D=C;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;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 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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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 Ge={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 Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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 Tt=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 Ct=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 Dt=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 Bt=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]&&Ct(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(!Dt(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 Vt=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(!Tt(a))return null}if(!0!==e.optional)return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Gt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&_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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var bn=function(e,t){let n=vn(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 yn={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:vn,splitAll:bn}}};var wn=function(e,t){let n=e.concat(t),r=vn(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=>fn(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 Pn=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},jn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Nn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=jn(e,this.document),this.update(e)};var En={methods:yn,api:function(e){Object.assign(e.prototype,Nn)}};var xn=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};function In(e,t,n){return e.splice(t,1,...n),e}const Gn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Tn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Cn=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=>Tn(e.regs[n],t)),a.regs=In(a.regs,n,r),t.push(a)})}}t.push(e)}),t};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 On=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=Dn(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Dn(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Bn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t};var Vn=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 zn=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 $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};var Fn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=xn(e,t),e=Cn(e);let n=(e=On(e)).filter(e=>0===e.needs.length);return{index:Bn(e),always:n}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Vn(a,t.index);return o=zn(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&&Fn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Sn(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 Mn=/ /,Jn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Ln=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Mn.test(t))!function(e,t,n,r){let a=t.split(Mn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Ln(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nWn(e,t,n,r))};var qn=Wn;var Kn=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=>Un({id:e})),t}return[Un({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},_n=e=>"[object Array]"===Object.prototype.toString.call(e),Yn=e=>(e=e||"").trim(),Xn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Rn.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=Un({});return e.forEach(e=>{if((e=Un(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(Un),t);var t},er=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},tr=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},nr={text:er,txt:er,array:tr,flat:tr},rr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(er(e,!0)),null):nr.hasOwnProperty(t)?nr[t](e):e},ar=e=>{Zn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},or=/\//;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=Yn(e),!or.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)||Un({});return new g$1(t)}add(e,t={}){if(_n(e))return e.forEach(e=>this.add(Yn(e),t)),this;e=Yn(e);let n=Un({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Yn(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 _n(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ar(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 ar(this.json),rr(this.json,e)}debug(){return ar(this.json),rr(this.json,"debug"),this}}const ir=function(e){let t=Xn(e);return new g$1(t)};ir.prototype.plugin=function(e){e(this)};var sr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const lr=function(e){if(sr.hasOwnProperty(e.id))return sr[e.id];if(sr.hasOwnProperty(e.is))return sr[e.is];let t=e._cache.parents.find(e=>sr[e]);return sr[t]};var ur=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:lr(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 cr=function(e){return e?"string"==typeof e?[e]:e:[]};var hr=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=cr(e[t].children),e[t].not=cr(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 dr={one:{setTag:qn,unTag:Kn,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=hr(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 ir(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ur(n)}}};const pr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var mr={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 gr=function(e){Object.assign(e.prototype,mr)};var fr={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 vr=new Set(["Auxiliary","Possessive"]);var br={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(vr.has(e)||!t.hasOwnProperty(n))return 1;if(vr.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:dr,api:gr,lib:fr};const yr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,wr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var kr=function(e){let t=[],n=e.split(wr);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 Sr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Hr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Mr=/['’]/,Jr=/^[a-z]\.([a-z]\.)+/i,Lr=/^[-+.][0-9]/,Wr=/^'[0-9]{2}/;var qr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Sr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Lr.test(e)?"'"===n&&Wr.test(e)?(n="",t):"":(n="",t)))).replace(Hr,a=>(r=a,Mr.test(a)&&/[sn]['’]$/.test(t)&&!1===Mr.test(n)?(r=r.replace(Mr,""),"'"):!0===Jr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Kr=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 Ur=/([A-Z]\.)+[A-Z]?,?$/,Rr=/^[A-Z]\.,?$/,Qr=/[A-Z]{2,}('s|,)?$/,Zr=/([a-z]\.)+[a-z]\.?$/;var _r=function(e){return function(e){return!0===Ur.test(e)||!0===Zr.test(e)||!0===Rr.test(e)||!0===Qr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Yr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Kr(r),r=n(r,t),r=_r(r),e.normal=r};var Xr={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($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=Br(n),n=Dr(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=>{Yr(e,t)}),n})}}}};var ea={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ta={},na={};[[["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=>{ta[t]=!0,na[t]="Abbreviation",void 0!==e[1]&&(na[t]=[na[t],e[1]])})});var ra=["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:"ŹźŻżŽžƵƶȤȥɀΖ"},oa={};Object.keys(aa).forEach((function(e){aa[e].split("").forEach((function(t){oa[t]=e}))}));const ia=/\//,sa=/[a-z]\.[a-z]/i,la=/[0-9]/;var ua=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])),ia.test(n)&&!sa.test(n)&&!la.test(n)){let t=n.split(ia);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ca=/^\p{Letter}+-\p{Letter}+$/u;var ha=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"),ca.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var da=function(e){let t=0,n=0,r=e.document;for(let e=0;epa(e,ua),machine:e=>pa(e,ha),normal:e=>pa(e,Yr),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 va={safe:!0,min:3};var ba={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ga},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},va,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=fa(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(gn),m.extend(St),m.extend(En),m.extend(br),m.plugin(ve),m.extend(ma),m.plugin(f),m.extend(Ge),m.extend(ba),m.extend(Pe),m.extend(Hn);var ya={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"},wa={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ka="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Pa=ka.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Aa=function(e){if(void 0!==Pa[e])return Pa[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 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=Ea(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=xa(wa[e]);Ca.test(e)?Object.keys(t).forEach(t=>{if(Oa[t]=e,"Noun|Verb"===e){let e=Ta(t,Ba);Oa[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Da[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Da[e]="Emoticon"),delete Da[""],delete Da.null,delete Da[" "];const Va="Adjective";var za={beforeTags:{Determiner:Va,Possessive:Va},afterTags:{Adjective:Va},beforeWords:{seem:Va,seemed:Va,seems:Va,feel:Va,feels:Va,felt:Va,appear:Va,appears:Va,appeared:Va,also:Va,over:Va,under:Va,too:Va,it:Va,but:Va,still:Va,really:Va,quite:Va,well:Va,very:Va,deeply:Va,profoundly:Va,extremely:Va,so:Va,badly:Va,mostly:Va,totally:Va,awfully:Va,rather:Va,nothing:Va,something:Va,anything:Va},afterWords:{too:Va,also:Va,or:Va}};const $a="Gerund";var Fa={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 Sa={beforeTags:Object.assign({},za.beforeTags,Fa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},za.afterTags,Fa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},za.beforeWords,Fa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},za.afterWords,Fa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ha="Singular";var Ma={beforeTags:{Determiner:Ha,Possessive:Ha,Acronym:Ha,Noun:Ha,Adjective:Ha,PresentTense:Ha,Gerund:Ha,PastTense:Ha,Infinitive:Ha,Date:Ha},afterTags:{Value:Ha,Modal:Ha,Copula:Ha,PresentTense:Ha,PastTense:Ha,Demonym:Ha},beforeWords:{the:Ha,with:Ha,without:Ha,of:Ha,for:Ha,any:Ha,all:Ha,on:Ha,cut:Ha,cuts:Ha,save:Ha,saved:Ha,saves:Ha,make:Ha,makes:Ha,made:Ha,minus:Ha,plus:Ha,than:Ha,another:Ha,versus:Ha,neither:Ha,favorite:Ha,best:Ha,daily:Ha,weekly:Ha,linear:Ha,binary:Ha,mobile:Ha,lexical:Ha,technical:Ha,computer:Ha,scientific:Ha,formal:Ha},afterWords:{of:Ha,system:Ha,aid:Ha,method:Ha,utility:Ha,tool:Ha,reform:Ha,therapy:Ha,philosophy:Ha,room:Ha,authority:Ha,says:Ha,said:Ha,wants:Ha,wanted:Ha}};const Ja={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var La={beforeTags:Object.assign({},za.beforeTags,Ma.beforeTags,Ja.beforeTags),afterTags:Object.assign({},za.afterTags,Ma.afterTags),beforeWords:Object.assign({},za.beforeWords,Ma.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},za.afterWords,Ma.afterWords)};const Wa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},qa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ka={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ua={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ra={beforeTags:Object.assign({},za.beforeTags,Wa),afterTags:Object.assign({},za.afterTags,qa),beforeWords:Object.assign({},za.beforeWords,Ka),afterWords:Object.assign({},za.afterWords,Ua)};const Qa="Infinitive";var Za={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,when:Qa,all:Qa,to:Qa,because:Qa,although:Qa,before:Qa,how:Qa,otherwise:Qa,though:Qa,yet:Qa}};const _a={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ya={beforeTags:Object.assign({},za.beforeTags,Za.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},za.afterTags,Za.afterTags,_a.afterTags),beforeWords:Object.assign({},za.beforeWords,Za.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},za.afterWords,Za.afterWords,{to:void 0})};const Xa={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},eo={},to={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},no={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ro={beforeTags:Object.assign({},Fa.beforeTags,Ma.beforeTags,Xa),afterTags:Object.assign({},Fa.afterTags,Ma.afterTags,eo),beforeWords:Object.assign({},Fa.beforeWords,Ma.beforeWords,to),afterWords:Object.assign({},Fa.afterWords,Ma.afterWords,no)};var ao={beforeTags:Object.assign({},Za.beforeTags,Ma.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Za.afterTags,Ma.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Za.beforeWords,Ma.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Za.afterWords,Ma.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oo="Person";var io={beforeTags:{Honorific:oo,Person:oo,Preposition:oo},afterTags:{Person:oo,ProperNoun:oo,Verb:oo},ownTags:{ProperNoun:oo},beforeWords:{hi:oo,hey:oo,yo:oo,dear:oo,hello:oo},afterWords:{said:oo,says:oo,told:oo,tells:oo,feels:oo,felt:oo,seems:oo,thinks:oo,thought:oo,spends:oo,spendt:oo,plays:oo,played:oo,sing:oo,sang:oo,learn:oo,learned:oo,wants:oo,wanted:oo}};const so="Month",lo={beforeTags:{Date:so,Value:so},afterTags:{Date:so,Value:so},beforeWords:{by:so,in:so,on:so,during:so,after:so,before:so,between:so,until:so,til:so,sometime:so,of:so,this:so,next:so,last:so,previous:so,following:so},afterWords:{sometime:so,in:so,of:so,until:so,the:so}};var uo={beforeTags:Object.assign({},io.beforeTags,lo.beforeTags),afterTags:Object.assign({},io.afterTags,lo.afterTags),beforeWords:Object.assign({},io.beforeWords,lo.beforeWords),afterWords:Object.assign({},io.afterWords,lo.afterWords)};const co={Place:"Place"},ho={Place:"Place",Abbreviation:"Place"},po={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},mo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const go={"Adj|Gerund":Sa,"Adj|Noun":La,"Adj|Past":Ra,"Adj|Present":Ya,"Noun|Verb":ao,"Noun|Gerund":ro,"Person|Noun":{beforeTags:Object.assign({},Ma.beforeTags,io.beforeTags),afterTags:Object.assign({},Ma.afterTags,io.afterTags),beforeWords:Object.assign({},Ma.beforeWords,io.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ma.afterWords,io.afterWords)},"Person|Date":uo,"Person|Verb":{beforeTags:Object.assign({},io.beforeTags,Za.beforeTags),afterTags:Object.assign({},io.afterTags,Za.afterTags),beforeWords:Object.assign({},io.beforeWords,Za.beforeWords),afterWords:Object.assign({},io.afterWords,Za.afterWords)},"Person|Place":{beforeTags:Object.assign({},co,io.beforeTags),afterTags:Object.assign({},ho,io.afterTags),beforeWords:Object.assign({},po,io.beforeWords),afterWords:Object.assign({},mo,io.afterWords)}},fo=(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:fo(go["Noun|Verb"].beforeWords,{}),afterWords:fo(go["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:fo(go["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:fo(go["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var vo=go;const bo="Adjective",yo="Infinitive",wo="PresentTense",ko="Singular",Po="PastTense",Ao="Adverb",jo="Plural",No="Verb",Eo="LastName",xo="Participle";var Io=[null,null,{ea:ko,ia:"Noun",ic:bo,ly:Ao,"'n":No,"'t":No},{oed:Po,ued:Po,xed:Po," so":Ao,"'ll":"Modal","'re":"Copula",azy:bo,eer:"Noun",end:No,ped:Po,ffy:bo,ify:yo,ing:"Gerund",ize:yo,ibe:yo,lar:bo,mum:bo,nes:wo,nny:bo,ous:bo,que:bo,rol:ko,sis:ko,ogy:ko,oid:ko,ian:ko,zes:wo,eld:Po,ken:xo,ven:xo,ten:xo,ect:yo,ict:yo,ign:yo,ful:bo,bal:bo},{amed:Po,aped:Po,ched:Po,lked:Po,rked:Po,reed:Po,nded:Po,mned:bo,cted:Po,dged:Po,ield:ko,akis:Eo,cede:yo,chuk:Eo,czyk:Eo,ects:wo,ends:No,enko:Eo,ette:ko,wner:ko,fies:wo,fore:Ao,gate:yo,gone:bo,ices:jo,ints:jo,ruct:yo,ines:jo,ions:jo,less:bo,llen:bo,made:bo,nsen:Eo,oses:wo,ould:"Modal",some:bo,sson:Eo,tion:ko,tage:"Noun",ique:ko,tive:bo,tors:"Noun",vice:ko,lier:ko,fier:ko,wned:Po,gent:ko,tist:ko,pist:ko,rist:ko,mist:ko,yist:ko,vist:ko,lite:ko,site:ko,rite:ko,mite:ko,bite:ko,mate:ko,date:ko,ndal:ko,vent:ko,uist:ko,gist:ko,note:ko,cide:ko,wide:bo,vide:yo,ract:yo,duce:yo,pose:yo,eive:yo,lyze:yo,lyse:yo,iant:bo,nary:bo},{elist:ko,holic:ko,phite:ko,tized:Po,urned:Po,eased:Po,ances:jo,bound:bo,ettes:jo,fully:Ao,ishes:wo,ities:jo,marek:Eo,nssen:Eo,ology:"Noun",osome:ko,tment:ko,ports:jo,rough:bo,tches:wo,tieth:"Ordinal",tures:jo,wards:Ao,where:Ao,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:ko,scent:ko,onist:ko,anist:ko,alist:ko,olist:ko,icist:ko,ounce:yo,iable:bo,borne:bo,gnant:bo,inant:bo,igent:bo,atory:bo,rient:ko,dient:ko},{auskas:Eo,parent:ko,cedent:ko,ionary:ko,cklist:ko,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const Go="Adjective";var To=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Go,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Go,tele:"Noun","pro-":Go,"mis-":"Verb","dis-":"Verb","pre-":Go},{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:Go,radio:"Noun",tetra:"Noun","omni-":Go,"post-":Go},{pseudo:Go,"extra-":Go,"hyper-":Go,"inter-":Go,"intra-":Go,"deca-":Go},{electro:"Noun"}];const Co="Adjective",Do="Infinitive",Oo="PresentTense",Bo="Singular",Vo="PastTense",zo="Expression",$o="LastName";var Fo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,$o],[/.[^aeiou]ica$/,Bo,"harmonica"],[/^([hyj]a+)+$/,zo,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Vo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Vo,"rammed"],[/.[aeiou][sg]hed$/,Vo,"gushed"],[/.[aeiou]red$/,Vo,"hired"],[/.[aeiou]r?ried$/,Vo,"hurried"],[/[^aeiou]ard$/,Bo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,Vo,"hurled"],[/.[iao]sed$/,Vo,""],[/[aeiou]n?[cs]ed$/,Vo,""],[/[aeiou][rl]?[mnf]ed$/,Vo,""],[/[aeiou][ns]?c?ked$/,Vo,"bunked"],[/[aeiou]gned$/,Vo],[/[aeiou][nl]?ged$/,Vo],[/.[tdbwxyz]ed$/,Vo],[/[^aeiou][aeiou][tvx]ed$/,Vo],[/.[cdflmnprstv]ied$/,Vo,"emptied"]],e:[[/.[lnr]ize$/,Do,"antagonize"],[/.[^aeiou]ise$/,Do,"antagonise"],[/.[aeiou]te$/,Do,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,$o,"..ovich"],[/^ug?h+$/,zo,"ughh"],[/^uh[ -]?oh$/,zo,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,$o,"polish-male"]],k:[[/^(k){2}$/,zo,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Bo,"magnesium"],[/[^aeiou]ism$/,Bo,"schism"],[/^[hu]m+$/,zo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,"Actor","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$/,Bo],[/[^i]fer$/,Do],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Bo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Bo],[/[a-z]'s$/,"Noun"],[/^yes+$/,zo]],v:[[/.[^aeiou][ai][kln]ov$/,$o]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Bo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,"Adverb"],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Bo]]};const So="Verb",Ho="Noun";var Mo={leftTags:[["Adjective",Ho],["Possessive",Ho],["Determiner",Ho],["Adverb",So],["Pronoun",So],["Value",Ho],["Ordinal",Ho],["Modal",So],["Superlative",Ho],["Demonym",Ho],["Honorific","Person"]],leftWords:[["i",So],["first",Ho],["it",So],["there",So],["not",So],["because",Ho],["if",Ho],["but",Ho],["who",So],["this",Ho],["his",Ho],["when",Ho],["you",So],["very","Adjective"],["old",Ho],["never",So],["before",Ho],["a","Singular"],["the",Ho],["been",So]],rightTags:[["Copula",Ho],["PastTense",Ho],["Conjunction",Ho],["Modal",Ho]],rightWords:[["there",So],["me",So],["man","Adjective"],["only",So],["him",So],["it",So],["were",Ho],["took",Ho],["himself",So],["went",Ho],["who",Ho],["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"},Lo={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"},Wo={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"},Ko={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 Uo=/^.([0-9]+)/;var Ro=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(Uo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Uo,"")}(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},Zo=/^([0-9]+)/,_o=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Zo);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Zo,"")]}(n[0],n[1])})};var Yo=function(e={}){return(e=Object.assign({},e)).rules=_o(e.rules),e.rules=Qo(e.rules),e.rev&&(e.rev=_o(e.rev),e.rev=Qo(e.rev)),e.exceptions=_o(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Xo=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 ei=Yo({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"}),ti=Yo(qo),ni=Yo(Lo),ri=Yo(Wo),ai=Xo(ei),oi=Xo(ti),ii=Xo(ni),si=Xo(ri),li=Yo(Jo),ui=Yo(Ko);var ci={fromPast:ei,fromPresent:ti,fromGerund:ni,fromParticiple:ri,toPast:ai,toPresent:oi,toGerund:ii,toParticiple:si,toComparative:li,toSuperlative:ui,fromComparative:Xo(li),fromSuperlative:Xo(ui)},hi=["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),{}),di=[[/([^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 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(mi[t].forEach(n=>e[n]=t),e),{});var gi=mi;var fi=function(e){let t=e.substring(e.length-3);if(!0===gi.hasOwnProperty(t))return gi[t];let n=e.substring(e.length-2);return!0===gi.hasOwnProperty(n)?gi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const vi={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=fi(e)),vi.hasOwnProperty(e))c=vi[e];else if("Participle"===n)c=Ro(l,i);else if("PastTense"===n)c=Ro(l,r);else if("PresentTense"===n)c=Ro(l,a);else{if("Gerund"!==n)return e;c=Ro(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var yi=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:Ro(i,n),PresentTense:Ro(i,r),Gerund:Ro(i,a),FutureTense:"will "+e},u=Ro(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var wi=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 ki="ically",Pi=new Set(["analyt"+ki,"chem"+ki,"class"+ki,"clin"+ki,"crit"+ki,"ecolog"+ki,"electr"+ki,"empir"+ki,"frant"+ki,"grammat"+ki,"ident"+ki,"ideolog"+ki,"log"+ki,"mag"+ki,"mathemat"+ki,"mechan"+ki,"med"+ki,"method"+ki,"method"+ki,"mus"+ki,"phys"+ki,"phys"+ki,"polit"+ki,"pract"+ki,"rad"+ki,"satir"+ki,"statist"+ki,"techn"+ki,"technolog"+ki,"theoret"+ki,"typ"+ki,"vert"+ki,"whims"+ki]),Ai=[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"}],ji=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 Ei=function(e){return e.endsWith("ly")?Pi.has(e)?e.replace(/ically/,"ical"):ji.has(e)?null:Ni.hasOwnProperty(e)?Ni[e]:wi(e,Ai)||e:null};const xi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ii={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Gi=function(e){if(Ii.hasOwnProperty(e))return Ii[e];let t=wi(e,xi);return t||e+"ly"};const Ti=[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"}],Ci={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"},Di=new Set(["terrible","annoying"]);const Oi=function(e,t){const n=t.two.models.toSuperlative;return Ro(e,n)},Bi=function(e,t){const n=t.two.models.toComparative;return Ro(e,n)};var Vi={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 zi={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===Vi.hasOwnProperty(i)&&Vi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Ta,nounToSingular:pi,verbToInfinitive:bi,getTense:fi,verbConjugate:yi,adjToSuperlative:Oi,adjToComparative:Bi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Ro(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Ro(e,n)},advToAdjective:Ei,adjToAdverb:Gi,adjToNoun:function(e){if(Ci.hasOwnProperty(e))return Ci[e];if(Di.has(e))return null;let t=wi(e,Ti);return t||e+"ness"}}}};var $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 Fi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Si=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=Fi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Fi(r,"Infinitive","Verb"),Object.assign(s,l),l=Fi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Fi(o,"Adjective","Superlative"),Object.assign(s,l),l=Fi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Hi={two:{models:ci}};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"},Ji=function(e,t){const n={model:t,methods:zi};let{lex:r,_multi:a}=zi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Li=function(e,t,n){let r=yi(e,Hi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Wi=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Mi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Li(a,r,!1),"Adj|Present"===o&&(Li(a,r,!0),function(e,t,n){let r=Oi(e,n);t[r]=t[r]||"Superlative";let a=Bi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=bi(a,Hi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=bi(a,Hi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ji(n,t)};let qi={one:{_multiCache:{},lexicon:Da},two:{irregularPlurals:ya,models:ci,suffixPatterns:Io,prefixPatterns:To,endsWith:Fo,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:Oa,clues:vo,uncountable:{},orgWords:hi}};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=Ji(e.one.lexicon,e)).one.lexicon,e),e=Wi(e.two.switches,e),e=Si(e),e=$i(e)}(qi);var Ki=qi;const Ui=/^(under|over|mis|re|un|dis|semi)-?/;var Ri=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(Ui.test(a.normal)){let e=a.normal.replace(Ui,"");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 Zi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},_i=new Set(["formulas","koalas","israelis","menus"]),Yi=["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 Xi=function(e){if(!e||e.length<=3)return!1;if(_i.has(e))return!0;let t=e[e.length-1];return Zi.hasOwnProperty(t)?Zi[t].find(t=>e.endsWith(t)):"s"===t&&!Yi.find(t=>e.endsWith(t))};const es=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ts=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Xi(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=fi(e.normal);t&&Qi(e,t,"3-verb-tense-guess")}}(r)};const ns=/^\p{Lu}[\p{Ll}'’]/u,rs=/[0-9]/,as=["Date","Month","WeekDay","Unit"],os=/^[IVXLCDM]{2,}$/,is=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ss={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ls=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===ns.test(o)&&!1===rs.test(o)?as.find(e=>r.tags.has(e))?null:(ts(e,t,n),r.tags.has("Noun")||r.tags.clear(),Qi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&os.test(o)&&is.test(o)&&!ss[r.normal]?(Qi(r,"RomanNumeral","2-xvii"),!0):null};const us=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 cs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=us(r.normal,n.two.suffixPatterns);if(null!==e)return Qi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=us(r.implicit,n.two.suffixPatterns),null!==e))return Qi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const hs=/['‘’‛‵′`´]/,ds=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 gs=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"]),fs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!gs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},vs=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 ys=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(fs(a)||fs(o))return Qi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(vs(a)||vs(o))return Qi(n,"Year","2-tagYear-close");if(bs(e[t-2])||bs(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 ws=/^[A-Z]('s|,)?$/,ks=/^[A-Z-]+$/,Ps=/([A-Z]\.)+[A-Z]?,?$/,As=/[A-Z]{2,}('s|,)?$/,js=/([a-z]\.)+[a-z]\.?$/,Ns={I:!0,A:!0};var Es=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===ks.test(n)||n.length>5||Ns.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ps.test(n)&&!0!==js.test(n)&&!0!==ws.test(n)&&!0!==As.test(n))}(r,n)?(r.tags.clear(),Qi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ns.hasOwnProperty(r.text)&&ws.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")&&ks.test(r.text)&&r.text.length<=6?(Qi(r,"Acronym","3-titlecase-acronym"),!0):null};const xs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Is=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Gs=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||xs(e[t-1],a),l=l||xs(e[t+1],o),l=l||Is(e[t-1],r),l=l||Is(e[t+1],i),l)return Qi(s,l,"3-[neighbour]"),ts(e,t,n),e[t].confidence=.2,!0}return null};const Ts=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 Cs=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]&&Ts(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ts(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Ds=function(e,t,n){0===e[t].tags.size&&(Qi(e[t],"Noun","3-[fallback]"),ts(e,t,n),e[t].confidence=.1)};const Os=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Bs=(e,t,n)=>0!==t||e[1]?null:n;var Vs={"Adj|Gerund":(e,t)=>Os(e,t),"Adj|Noun":(e,t)=>Os(e,t),"Adj|Past":(e,t)=>Os(e,t),"Adj|Present":(e,t)=>Os(e,t),"Noun|Gerund":(e,t)=>Os(e,t),"Noun|Verb":(e,t)=>Os(e,t)||Bs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Os(e,t)||Bs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Os(e,t),"Person|Verb":(e,t)=>0!==t&&Os(e,t)};const zs="undefined"!=typeof process&&process.env?process.env:self.env||{},$s=/^(under|over|mis|re|un|dis|semi)-?/,Fs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&zs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ss=(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&&zs.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Hs={tagSwitch:Ri,checkSuffix:cs,checkRegex:ps,checkCase:ls,checkPrefix:ms,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:ys},Ms={checkAcronym:Es,neighbours:Gs,orgWords:Cs,nounFallback:Ds,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=Fs(e[t+1],n.afterWords);return o=o||Fs(e[t-1],n.beforeWords),o=o||Ss(e[t-1],n.beforeTags,a),o=o||Ss(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Vs[o]&&(u=Vs[o](e,t)||u),u?(zs.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):zs.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 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 Ks={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 rl=/'/;var al=function(e,t){let n=e[t].normal.split(rl)[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 ol=/'/;var il=function(e,t){let n=e[t].normal.split(ol)[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 sl=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 ll={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ul={in:!0,by:!0,for:!0};var cl=(e,t)=>{let n=e[t];if(ll.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===ul[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 hl=/'/,dl=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)},pl={d:(e,t)=>il(e,t),t:(e,t)=>sl(e,t),s:(e,t,n)=>cl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):al(e,t)},ml=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var gl={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===hl.test(r[o].normal)&&([,i]=r[o].normal.split(hl));let s=null;pl.hasOwnProperty(i)&&(s=pl[i](r,o,t)),s&&(s=ml(s,e),nl(n,[a,o],s),dl(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=tl.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=el},hooks:["contractionTwo"]};const fl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const vl=["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:"[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:"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)",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:fl+" #Person",tag:"Person",reason:"randy-smith"},{match:fl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${fl}]`,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:vl,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:vl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:vl,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 yl=null;var wl={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;yl=yl||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(yl),e.uncache(),e}},model:{two:{matches:bl}},hooks:["postTagger"]};var kl=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 Pl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?kl(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 Al={api:function(e){e.prototype.swap=Pl}};m.plugin(_s),m.plugin(gl),m.plugin(wl),m.plugin(Al);var jl=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 Nl=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 El={this:"Noun",then:"Pivot"};var xl=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 Vl={compute:{chunks:function(e){const{document:t,world:n}=e;xl(t),Il(t),Cl(e,t,n),Ol(t),Bl(t)}},api:function(e){e.prototype.chunks=Nl,e.prototype.clauses=jl},hooks:["chunks"]};const zl=/'s$/;var $l=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 Fl=/\(/,Sl=/\)/,Hl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Fl,"");let t=e[e.length-1];t.post=t.post.replace(Sl,"")}),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 Jl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Ll=RegExp("("+Object.keys(Jl).join("|")+")"),Wl=RegExp("("+Object.values(Jl).join("|")+")"),ql=function(e,t){const n=e[t].pre.match(Ll)[0]||"";if(!n||!Jl[n])return null;const r=Jl[n];for(;t{e[0].pre=e[0].pre.replace(Ll,"");let t=e[e.length-1];t.post=t.post.replace(Wl,"")})}(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 Ul=/\./g;var Rl=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(Ul,""),e.normal=e.normal.replace(Ul,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Ul,""),e.normal=e.normal.replace(Ul,""),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 Zl=(e,t)=>"number"==typeof t?e.eq(t):e,_l=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 Yl=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=_l(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 Zl(this,e).map(e=>{let n=_l(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Zl(this,e).map(e=>{let n=_l(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Zl(this,e).map(e=>{let n=_l(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Zl(this,e).map(e=>{let n=_l(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Zl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Zl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Zl(t,e),new Adjectives(t.document,t.pointer)}};const Xl=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},eu=[["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 tu=[["emojis","emoji"],["atmentions","atMentions"]];var nu=function(e){eu.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=Xl,tu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},ru={api:function(e){nu(e),$l(e),Ml(e),Kl(e),Yl(e),Ql(e),Rl(e)}};const au=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var ou={case:e=>{au(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;au(e,e=>e.text=n(e.text,t))},whitespace:e=>{au(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=>{au(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 iu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),su="unicode|punctuation|whitespace|acronyms",lu="|case|contractions|parentheses|quotations|emoji|honorifics",uu={light:iu(su),medium:iu(su+lu),heavy:iu(su+lu+"|possessives|adverbs|nouns|verbs")};var cu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=uu[e]),Object.keys(e).forEach(t=>{ou.hasOwnProperty(t)&&ou[t](this,e[t])}),this}}};var hu=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 du=["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 pu=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 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:mu(e,t),isSubordinate:pu(e),root:t}};const fu=e=>e.text(),vu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),bu=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var yu=function(e){let t=gu(e);return{root:fu(t.root),number:bu(t.number),determiner:fu(t.determiner),adjectives:vu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const wu={tags:!0};var ku=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,wu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",wu),e};const Pu={tags:!0};var Au=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,Pu).tag("Singular","toPlural"),e};const ju=(e,t)=>"number"==typeof t?e.eq(t):e;var Nu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return ju(this,e).map(gu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=yu(t)),n},[])}isPlural(e){let t=this.filter(e=>gu(e).isPlural);return ju(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=gu(e).adjectives;n.found&&(t=t.concat(n))}),ju(t,e)}toPlural(e){return ju(this,e).map(e=>ku(e,gu(e)))}toSingular(e){return ju(this,e).map(e=>{let t=gu(e);return Au(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=hu(this);return t=ju(t,e),new Nouns(this.document,t.pointer)}}};var Eu=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 xu=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(Iu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Iu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Iu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Tu=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 Du=/^([0-9,. ]+)\/([0-9,. ]+)$/,Ou={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Bu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Vu=function(e){if(!0===Ou.hasOwnProperty(e))return Ou[e];if("a"===e||"an"===e)return 1;const t=xu(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=$u(n),r=$u(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:$u(n);let a=r.text("reduced");return zu.test(a)&&(a=a.replace(zu,""),r=r.replaceWith(a)),r=Fu.hasOwnProperty(a)?Fu[a]:$u(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:$u(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 Hu=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 Mu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Ju=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Lu=[[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"]],Wu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Mu[n][1]&&(e-=Mu[n][1],t.push(Mu[n][0]));return Ju[e]&&t.push(Ju[e]),t};var qu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Hu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Lu.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(Wu(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=Hu(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 Ku=function(e){if(!e.numerator||!e.denominator)return"";return`${qu({num:e.numerator})} out of ${qu({num:e.denominator})}`};const Uu={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 Ru=e=>{let t=qu(e).split(" "),n=t[t.length-1];return Uu.hasOwnProperty(n)?t[t.length-1]=Uu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Qu=function(e){if(!e.numerator||!e.denominator)return"";let t=qu({num:e.numerator}),n=Ru({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Zu=(e,t)=>"number"==typeof t?e.eq(t):e;var _u=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Zu(this,e).map(Su)}get(e){return Zu(this,e).map(Su)}json(e){return Zu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Su(t);return n.fraction=r,n},[])}toDecimal(e){return Zu(this,e).forEach(e=>{let{decimal:t}=Su(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Zu(this,e).forEach(e=>{let t=Su(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 Zu(this,e).forEach(e=>{let t=Su(e),n=Qu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Zu(this,e).forEach(e=>{let t=Su(e),n=Ku(t);e.replaceWith(n)}),this}toPercentage(e){return Zu(this,e).forEach(e=>{let{decimal:t}=Su(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Eu(this);return t=Zu(t,e),new Fractions(this.document,t.pointer)}};const Yu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Xu=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("("+Yu+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Yu+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Yu+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Yu+")"));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) (${Yu})`),r=e.has("("+Yu+") #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("("+Yu+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Yu+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var ec=function(e){if("string"==typeof e)return{num:Vu(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=Su(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Vu(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 tc=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=Hu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const nc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},rc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var ac=function(e){let t={suffix:"",prefix:e.prefix};return nc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+nc[e.prefix],t.prefix=""),rc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+rc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var oc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=ac(e);return t+Ru(e)+n}if("Ordinal"===t)return e.prefix+tc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=ac(e);return t+qu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const ic=(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 ic(this,e).map(ec)}get(e){return ic(this,e).map(ec).map(e=>e.num)}json(e){return ic(this,e).map(t=>{let n=t.toView().json(e)[0],r=ec(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=ec(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=oc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=ec(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=oc(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=ec(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=oc(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=ec(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=oc(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=ec(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=oc(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=>ec(t).num===e)}greaterThan(e){return this.filter(t=>ec(t).num>e)}lessThan(e){return this.filter(t=>ec(t).num{let r=ec(n).num;return r>e&&r{let n=ec(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=oc(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=ec(e).num);let t=this.map(t=>{let n=ec(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=oc(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=Xu(this);return t=ic(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Xu(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=ic(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Xu(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=ic(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var lc={api:function(e){_u(e),sc(e)}};const uc={people:!0,emails:!0,phoneNumbers:!0,places:!0},cc=function(e={}){return!1!==(e=Object.assign({},uc,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 hc={api:function(e){e.prototype.redact=cc}};var dc=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 pc=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 mc=function(e){let t=e.clauses(),n=pc(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 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};var fc=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 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};var bc=function(e){return e.verbs().toInfinitive(),e};const yc=(e,t)=>"number"==typeof t?e.eq(t):e;var wc={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}=mc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return yc(this,e).map(e=>(mc(e),gc(e)))}toPresentTense(e){return yc(this,e).map(e=>(mc(e),fc(e)))}toFutureTense(e){return yc(this,e).map(e=>(mc(e),e=vc(e)))}toInfinitive(e){return yc(this,e).map(e=>(mc(e),bc(e)))}toNegative(e){return yc(this,e).map(e=>(mc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return yc(this,e).map(e=>(mc(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 yc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return yc(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=yc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=dc(this);return yc(t,e)}};Object.assign(e.prototype,t)}};var kc=function(e){return e.match("#Honorific+? #Person+")};var Pc=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 Ac="male",jc="female",Nc={mr:Ac,mrs:jc,miss:jc,madam:jc,king:Ac,queen:jc,duke:Ac,duchess:jc,baron:Ac,baroness:jc,count:Ac,countess:jc,prince:Ac,princess:jc,sire:Ac,dame:jc,lady:jc,ayatullah:Ac,congressman:Ac,congresswoman:jc,"first lady":jc,mx:null};var Ec=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return jc;if(n.has("#MaleName"))return Ac;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Nc.hasOwnProperty(e))return Nc[e];if(/^her /.test(e))return jc;if(/^his /.test(e))return Ac}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 Ac;if(n&&!t)return jc}return null};const xc=(e,t)=>"number"==typeof t?e.eq(t):e;var Ic=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return xc(this,e).map(Pc)}json(e){return xc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Pc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Ec(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=kc(this);return t=xc(t,e),new People(this.document,t.pointer)}};var Gc=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 Tc=function(e){e.prototype.places=function(t){let n=Gc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var Cc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Dc=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 Oc=function(e){e.prototype.topics=Dc};var Bc={api:function(e){Ic(e),Tc(e),Cc(e),Oc(e)}};var Vc=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 $c=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 Fc=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},Sc=function(e){return e.match("#Negative")},Hc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Mc=function(e){let t=e.clone();t.contractions().expand();const n=zc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:$c(t,n),auxiliary:Fc(t,n),negative:Sc(t),phrasal:Hc(n)}};const Jc={tense:"PresentTense"},Lc={conditional:!0},Wc={tense:"FutureTense"},qc={progressive:!0},Kc={tense:"PastTense"},Uc={complete:!0,progressive:!1},Rc={passive:!0},Qc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Zc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Jc]],["^wanted to #Infinitive$",[Kc]],["^will want to #Infinitive$",[Wc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Kc]],["^#PresentTense #Gerund$",[Jc]],["^#Infinitive #Gerund$",[Jc]],["^will #Infinitive #Gerund$",[Wc]],["^have #PastTense #Gerund$",[Kc]],["^will have #PastTense #Gerund$",[Kc]]],"simple-present":[["^#PresentTense$",[Jc]],["^#Infinitive$",[Jc]]],"simple-past":[["^#PastTense$",[Kc]]],"simple-future":[["^will #Adverb? #Infinitive",[Wc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Jc,qc]]],"past-progressive":[["^(was|were) #Gerund$",[Kc,qc]]],"future-progressive":[["^will be #Gerund$",[Wc,qc]]],"present-perfect":[["^(has|have) #PastTense$",[Kc,Uc]]],"past-perfect":[["^had #PastTense$",[Kc,Uc]],["^had #PastTense to #Infinitive",[Kc,Uc]]],"future-perfect":[["^will have #PastTense$",[Wc,Uc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Kc,qc]]],"past-perfect-progressive":[["^had been #Gerund$",[Kc,qc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Wc,qc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Kc,Rc]],["^(was|were) being (#PastTense|#Participle)",[Kc,Rc]],["^(had|have) been (#PastTense|#Participle)",[Kc,Rc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Jc,Rc]],["^(is|are|am) being (#PastTense|#Participle)",[Jc,Rc]],["^has been (#PastTense|#Participle)",[Jc,Rc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Wc,Rc,Lc]],["will be being? (#PastTense|#Participle)",[Wc,Rc,Lc]]],"present-conditional":[["would be #PastTense",[Jc,Lc]]],"past-conditional":[["would have been #PastTense",[Kc,Lc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Wc]]],"auxiliary-past":[["^did #Infinitive$",[Kc,{plural:!1}]],["^used to #Infinitive$",[Kc,Uc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Jc,Uc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Kc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let _c=[];Object.keys(Zc).map(e=>{Zc[e].forEach(t=>{_c.push({name:e,match:t[0],data:Qc(t[1])})})});var Yc=_c;var Xc=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(),eh(r)&&(n.remove(r),r=n.last()),eh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:th(t,e)}};const rh=e=>e,ah=(e,t)=>{let n=nh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},oh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=nh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},ih=function(e,t){let n=nh(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},lh=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},uh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),ch=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},hh=function(e){return e&&e.isView?e.text("normal"):""},dh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,sh(e))};var ph=function(e){let t=Mc(e);e=e.clone().toView();const n=Xc(e,t);return{root:t.root.text(),preAdverbs:ch(t.adverbs.pre),postAdverbs:ch(t.adverbs.post),auxiliary:hh(t.auxiliary),negative:t.negative.found,prefix:hh(t.prefix),infinitive:dh(t.root),grammar:n}};const mh={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,sh(r)),i&&e.replace(r,i,mh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=ih(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const fh={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,sh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=nh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,fh),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",fh),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}},bh={infinitive:vh.simple,"simple-present":vh.simple,"simple-past":rh,"simple-future":vh.both,"present-progressive":e=>(e.replace("are","were",fh),e.replace("(is|are|am)","was",fh),e),"past-progressive":rh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":vh.hasHad,"past-perfect":rh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=uh(e)),e.remove("have"),e),"present-perfect-progressive":vh.hasHad,"past-perfect-progressive":rh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",fh),e),"passive-past":e=>(e.replace("have","had",fh),e),"passive-present":e=>(e.replace("(is|are)","was",fh),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",fh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":rh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",fh),e),"auxiliary-past":rh,"auxiliary-present":e=>(e.replace("(do|does)","did",fh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",fh):(vh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":rh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",fh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),vh.simple(e,t),uh(e),e)};var yh=function(e,t,n){return bh.hasOwnProperty(n)?((e=bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const wh={tags:!0},kh=(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===ah(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=oh(e)),o&&(e=e.replace(a,o,wh)).not("#Particle").tag("PresentTense"),e},Ph=(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===ah(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,wh)).not("#Particle").tag("Gerund"),e},Ah={infinitive:kh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return kh(e,t);{let t=nh(e).subject;if(ah(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,wh)}return e},"simple-past":kh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=oh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else kh(e,t),e=e.remove("will");return e},"present-progressive":rh,"past-progressive":(e,t)=>{let n=oh(e);return e.replace("(were|was)",n,wh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(kh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=nh(e).subject;return ah(e)||n.has("i")?((e=lh(e,t)).remove("had"),e):(e.replace("had","has",wh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":rh,"past-perfect-progressive":e=>e.replace("had","has",wh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=oh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,wh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":rh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":rh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Ph(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=ih(e);return e.replace(t.auxiliary,n),e}return Ph(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":rh,"modal-infinitive":rh,"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,wh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),kh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return ah(e)&&(n="want"),e.replace("(want|wanted|wants)",n,wh),e.remove("will"),e}};var jh=function(e,t,n){return Ah.hasOwnProperty(n)?((e=Ah[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Nh={tags:!0},Eh=(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,Nh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},xh=(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,Nh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Ih={infinitive:Eh,"simple-present":Eh,"simple-past":Eh,"simple-future":rh,"present-progressive":xh,"past-progressive":xh,"future-progressive":rh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":rh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":rh,"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":rh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":rh,"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":rh,"modal-past":rh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Eh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Gh=function(e,t,n){return e.has("will")||e.has("going to")?e:Ih.hasOwnProperty(n)?((e=Ih[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Th={tags:!0};var Ch=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=`${oh(e)} ${s}`,e.replace(a,s,Th)),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 Dh={tags:!0},Oh=function(e,t){let n=ih(e);return e.prepend(n+" not"),e},Bh=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)},Vh=e=>e.has("(is|was|am|are|will|were|be)"),zh={"simple-present":(e,t)=>!0===Vh(e)?Bh(e):(e=lh(e,t),e=Oh(e)),"simple-past":(e,t)=>!0===Vh(e)?Bh(e):((e=lh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Vh(e)?Bh(e):Oh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Dh),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=Oh(e)).replace("wants","want",Dh)};var $h=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===Vh(e)?Bh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Fh=(e,t)=>"number"==typeof t?e.eq(t):e;var Sh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Fh(this,e).map(Mc)}json(e,t){return Fh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=ph(t),n},[])}subjects(e){return Fh(this,e).map(e=>(Mc(e),nh(e).subject))}adverbs(e){return Fh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Fh(this,e).filter(e=>!0!==nh(e).plural)}isPlural(e){return Fh(this,e).filter(e=>!0===nh(e).plural)}isImperative(e){return Fh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return gh(e,t,n.form)})}toPresentTense(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return jh(e,t,n.form)})}toPastTense(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return yh(e,t,n.form)})}toFutureTense(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return Gh(e,t,n.form)})}toGerund(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return Ch(e,t,n.form)})}conjugate(e){return Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:gh(e.clone(),t,n.form).text("normal"),PastTense:yh(e.clone(),t,n.form).text("normal"),PresentTense:jh(e.clone(),t,n.form).text("normal"),FutureTense:Gh(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 Fh(this,e).map(e=>{let t=Mc(e),n=Xc(e,t);return $h(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=Vc(this);return t=Fh(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Vl),m.plugin(ru),m.plugin(cu),m.plugin(Nu),m.plugin(lc),m.plugin(hc),m.plugin(wc),m.plugin(Bc),m.plugin(Sh);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]);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.0";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(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},C.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 D=C;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;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 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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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 Ge={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 Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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 Tt=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 Ct=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 Dt=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 Bt=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]&&Ct(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(!Dt(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 Vt=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(!Tt(a))return null}if(!0!==e.optional)return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Gt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&_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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var bn=function(e,t){let n=vn(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 yn={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:vn,splitAll:bn}}};var wn=function(e,t){let n=e.concat(t),r=vn(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=>fn(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 Pn=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},jn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Nn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=jn(e,this.document),this.update(e)};var En={methods:yn,api:function(e){Object.assign(e.prototype,Nn)}};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 In=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),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(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)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Gn=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 Tn=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.find(e=>r.has(e)))})};var Cn=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 Dn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=In(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=Gn(a,t.hooks);return o=Tn(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),Cn(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&&Dn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===On(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 Vn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Vn.test(t))!function(e,t,n,r){let a=t.split(Vn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn;var Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Un=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:Ln(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Wn(t=e).forEach(Mn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Wn(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},Qn=function(e){let t=Wn(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},Zn={text:Rn,txt:Rn,array:Qn,flat:Qn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Yn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Wn(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 Yn(this.json),_n(this.json,e)}debug(){return Yn(this.json),_n(this.json,"debug"),this}}const er=function(e){let t=Un(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(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 ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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 ur=function(e){Object.assign(e.prototype,lr)};var cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var gr=function(e){let t=[],n=e.split(mr);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 Or=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Br=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Vr=/['’]/,zr=/^[a-z]\.([a-z]\.)+/i,$r=/^[-+.][0-9]/,Fr=/^'[0-9]{2}/;var Sr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Or,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$r.test(e)?"'"===n&&Fr.test(e)?(n="",t):"":(n="",t)))).replace(Br,a=>(r=a,Vr.test(a)&&/[sn]['’]$/.test(t)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Hr=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,Lr=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var qr=function(e){return function(e){return!0===Mr.test(e)||!0===Wr.test(e)||!0===Jr.test(e)||!0===Lr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Kr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Hr(r),r=n(r,t),r=qr(r),e.normal=r};var Ur={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:Ar,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(Cr);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=Ir(n),n=Er(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Sr(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=>{Kr(e,t)}),n})}}}};var Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["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=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])})});var _r=["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 Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xr={};Object.keys(Yr).forEach((function(e){Yr[e].split("").forEach((function(t){Xr[t]=e}))}));const ea=/\//,ta=/[a-z]\.[a-z]/i,na=/[0-9]/;var ra=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])),ea.test(n)&&!ta.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 aa=/^\p{Letter}+-\p{Letter}+$/u;var oa=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"),aa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var ia=function(e){let t=0,n=0,r=e.document;for(let e=0;esa(e,ra),machine:e=>sa(e,oa),normal:e=>sa(e,Kr),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 ha={safe:!0,min:3};var da={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ua},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ha,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ca(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(gn),m.extend(St),m.extend(En),m.extend(dr),m.plugin(ve),m.extend(la),m.plugin(f),m.extend(Ge),m.extend(da),m.extend(Pe),m.extend(Bn);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"},ma={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ga="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",fa=ga.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var va=function(e){if(void 0!==fa[e])return fa[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 ba=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=wa(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=ka(ma[e]);Na.test(e)?Object.keys(t).forEach(t=>{if(xa[t]=e,"Noun|Verb"===e){let e=ja(t,Ia);xa[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ea[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ea[e]="Emoticon"),delete Ea[""],delete Ea.null,delete Ea[" "];const Ga="Adjective";var Ta={beforeTags:{Determiner:Ga,Possessive:Ga},afterTags:{Adjective:Ga},beforeWords:{seem:Ga,seemed:Ga,seems:Ga,feel:Ga,feels:Ga,felt:Ga,appear:Ga,appears:Ga,appeared:Ga,also:Ga,over:Ga,under:Ga,too:Ga,it:Ga,but:Ga,still:Ga,really:Ga,quite:Ga,well:Ga,very:Ga,deeply:Ga,profoundly:Ga,extremely:Ga,so:Ga,badly:Ga,mostly:Ga,totally:Ga,awfully:Ga,rather:Ga,nothing:Ga,something:Ga,anything:Ga},afterWords:{too:Ga,also:Ga,or:Ga}};const Ca="Gerund";var Da={beforeTags:{Adverb:Ca,Preposition:Ca,Conjunction:Ca},afterTags:{Adverb:Ca,Possessive:Ca,Person:Ca,Pronoun:Ca,Determiner:Ca,Copula:Ca,Preposition:Ca,Conjunction:Ca,Comparative:Ca},beforeWords:{been:Ca,keep:Ca,continue:Ca,stop:Ca,am:Ca,be:Ca,me:Ca,began:Ca,start:Ca,starts:Ca,started:Ca,stops:Ca,stopped:Ca,help:Ca,helps:Ca,avoid:Ca,avoids:Ca,love:Ca,loves:Ca,loved:Ca,hate:Ca,hates:Ca,hated:Ca},afterWords:{you:Ca,me:Ca,her:Ca,him:Ca,them:Ca,their:Ca,it:Ca,this:Ca,there:Ca,on:Ca,about:Ca,for:Ca}};var Oa={beforeTags:Object.assign({},Ta.beforeTags,Da.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ta.afterTags,Da.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ta.beforeWords,Da.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ta.afterWords,Da.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ba="Singular";var Va={beforeTags:{Determiner:Ba,Possessive:Ba,Acronym:Ba,Noun:Ba,Adjective:Ba,PresentTense:Ba,Gerund:Ba,PastTense:Ba,Infinitive:Ba,Date:Ba},afterTags:{Value:Ba,Modal:Ba,Copula:Ba,PresentTense:Ba,PastTense:Ba,Demonym:Ba},beforeWords:{the:Ba,with:Ba,without:Ba,of:Ba,for:Ba,any:Ba,all:Ba,on:Ba,cut:Ba,cuts:Ba,save:Ba,saved:Ba,saves:Ba,make:Ba,makes:Ba,made:Ba,minus:Ba,plus:Ba,than:Ba,another:Ba,versus:Ba,neither:Ba,favorite:Ba,best:Ba,daily:Ba,weekly:Ba,linear:Ba,binary:Ba,mobile:Ba,lexical:Ba,technical:Ba,computer:Ba,scientific:Ba,formal:Ba},afterWords:{of:Ba,system:Ba,aid:Ba,method:Ba,utility:Ba,tool:Ba,reform:Ba,therapy:Ba,philosophy:Ba,room:Ba,authority:Ba,says:Ba,said:Ba,wants:Ba,wanted:Ba}};const za={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var $a={beforeTags:Object.assign({},Ta.beforeTags,Va.beforeTags,za.beforeTags),afterTags:Object.assign({},Ta.afterTags,Va.afterTags),beforeWords:Object.assign({},Ta.beforeWords,Va.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ta.afterWords,Va.afterWords)};const Fa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Sa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ha={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ma={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({},Ta.beforeTags,Fa),afterTags:Object.assign({},Ta.afterTags,Sa),beforeWords:Object.assign({},Ta.beforeWords,Ha),afterWords:Object.assign({},Ta.afterWords,Ma)};const La="Infinitive";var Wa={beforeTags:{Modal:La,Adverb:La,Negative:La,Plural:La},afterTags:{Determiner:La,Adverb:La,Possessive:La,Preposition:La},beforeWords:{i:La,we:La,you:La,they:La,to:La,please:La,will:La,have:La,had:La,would:La,could:La,should:La,do:La,did:La,does:La,can:La,must:La,us:La,me:La,he:La,she:La,it:La,being:La},afterWords:{the:La,me:La,you:La,him:La,her:La,them:La,it:La,a:La,an:La,up:La,down:La,by:La,out:La,off:La,when:La,all:La,to:La,because:La,although:La,before:La,how:La,otherwise:La,though:La,yet:La}};const qa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ka={beforeTags:Object.assign({},Ta.beforeTags,Wa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ta.afterTags,Wa.afterTags,qa.afterTags),beforeWords:Object.assign({},Ta.beforeWords,Wa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ta.afterWords,Wa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Ra={},Qa={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Za={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var _a={beforeTags:Object.assign({},Da.beforeTags,Va.beforeTags,Ua),afterTags:Object.assign({},Da.afterTags,Va.afterTags,Ra),beforeWords:Object.assign({},Da.beforeWords,Va.beforeWords,Qa),afterWords:Object.assign({},Da.afterWords,Va.afterWords,Za)};var Ya={beforeTags:Object.assign({},Wa.beforeTags,Va.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Wa.afterTags,Va.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Wa.beforeWords,Va.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Wa.afterWords,Va.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Xa="Person";var eo={beforeTags:{Honorific:Xa,Person:Xa,Preposition:Xa},afterTags:{Person:Xa,ProperNoun:Xa,Verb:Xa},ownTags:{ProperNoun:Xa},beforeWords:{hi:Xa,hey:Xa,yo:Xa,dear:Xa,hello:Xa},afterWords:{said:Xa,says:Xa,told:Xa,tells:Xa,feels:Xa,felt:Xa,seems:Xa,thinks:Xa,thought:Xa,spends:Xa,spendt:Xa,plays:Xa,played:Xa,sing:Xa,sang:Xa,learn:Xa,learned:Xa,wants:Xa,wanted:Xa}};const to="Month",no={beforeTags:{Date:to,Value:to},afterTags:{Date:to,Value:to},beforeWords:{by:to,in:to,on:to,during:to,after:to,before:to,between:to,until:to,til:to,sometime:to,of:to,this:to,next:to,last:to,previous:to,following:to},afterWords:{sometime:to,in:to,of:to,until:to,the:to}};var ro={beforeTags:Object.assign({},eo.beforeTags,no.beforeTags),afterTags:Object.assign({},eo.afterTags,no.afterTags),beforeWords:Object.assign({},eo.beforeWords,no.beforeWords),afterWords:Object.assign({},eo.afterWords,no.afterWords)};const ao={Place:"Place"},oo={Place:"Place",Abbreviation:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const lo={"Adj|Gerund":Oa,"Adj|Noun":$a,"Adj|Past":Ja,"Adj|Present":Ka,"Noun|Verb":Ya,"Noun|Gerund":_a,"Person|Noun":{beforeTags:Object.assign({},Va.beforeTags,eo.beforeTags),afterTags:Object.assign({},Va.afterTags,eo.afterTags),beforeWords:Object.assign({},Va.beforeWords,eo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Va.afterWords,eo.afterWords)},"Person|Date":ro,"Person|Verb":{beforeTags:Object.assign({},eo.beforeTags,Wa.beforeTags),afterTags:Object.assign({},eo.afterTags,Wa.afterTags),beforeWords:Object.assign({},eo.beforeWords,Wa.beforeWords),afterWords:Object.assign({},eo.afterWords,Wa.afterWords)},"Person|Place":{beforeTags:Object.assign({},ao,eo.beforeTags),afterTags:Object.assign({},oo,eo.afterTags),beforeWords:Object.assign({},io,eo.beforeWords),afterWords:Object.assign({},so,eo.afterWords)}},uo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};lo["Plural|Verb"]={beforeWords:uo(lo["Noun|Verb"].beforeWords,{}),afterWords:uo(lo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:uo(lo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:uo(lo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var co=lo;const ho="Adjective",po="Infinitive",mo="PresentTense",go="Singular",fo="PastTense",vo="Adverb",bo="Plural",yo="Verb",wo="LastName",ko="Participle";var Po=[null,null,{ea:go,ia:"Noun",ic:ho,ly:vo,"'n":yo,"'t":yo},{oed:fo,ued:fo,xed:fo," so":vo,"'ll":"Modal","'re":"Copula",azy:ho,eer:"Noun",end:yo,ped:fo,ffy:ho,ify:po,ing:"Gerund",ize:po,ibe:po,lar:ho,mum:ho,nes:mo,nny:ho,ous:ho,que:ho,rol:go,sis:go,ogy:go,oid:go,ian:go,zes:mo,eld:fo,ken:ko,ven:ko,ten:ko,ect:po,ict:po,ign:po,ful:ho,bal:ho},{amed:fo,aped:fo,ched:fo,lked:fo,rked:fo,reed:fo,nded:fo,mned:ho,cted:fo,dged:fo,ield:go,akis:wo,cede:po,chuk:wo,czyk:wo,ects:mo,ends:yo,enko:wo,ette:go,wner:go,fies:mo,fore:vo,gate:po,gone:ho,ices:bo,ints:bo,ruct:po,ines:bo,ions:bo,less:ho,llen:ho,made:ho,nsen:wo,oses:mo,ould:"Modal",some:ho,sson:wo,tion:go,tage:"Noun",ique:go,tive:ho,tors:"Noun",vice:go,lier:go,fier:go,wned:fo,gent:go,tist:go,pist:go,rist:go,mist:go,yist:go,vist:go,lite:go,site:go,rite:go,mite:go,bite:go,mate:go,date:go,ndal:go,vent:go,uist:go,gist:go,note:go,cide:go,wide:ho,vide:po,ract:po,duce:po,pose:po,eive:po,lyze:po,lyse:po,iant:ho,nary:ho},{elist:go,holic:go,phite:go,tized:fo,urned:fo,eased:fo,ances:bo,bound:ho,ettes:bo,fully:vo,ishes:mo,ities:bo,marek:wo,nssen:wo,ology:"Noun",osome:go,tment:go,ports:bo,rough:ho,tches:mo,tieth:"Ordinal",tures:bo,wards:vo,where:vo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:go,scent:go,onist:go,anist:go,alist:go,olist:go,icist:go,ounce:po,iable:ho,borne:ho,gnant:ho,inant:ho,igent:ho,atory:ho,rient:go,dient:go},{auskas:wo,parent:go,cedent:go,ionary:go,cklist:go,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:wo,borough:"Place",sdottir:wo}];const Ao="Adjective";var jo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ao,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ao,tele:"Noun","pro-":Ao,"mis-":"Verb","dis-":"Verb","pre-":Ao},{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:Ao,radio:"Noun",tetra:"Noun","omni-":Ao,"post-":Ao},{pseudo:Ao,"extra-":Ao,"hyper-":Ao,"inter-":Ao,"intra-":Ao,"deca-":Ao},{electro:"Noun"}];const No="Adjective",Eo="Infinitive",xo="PresentTense",Io="Singular",Go="PastTense",To="Expression",Co="LastName";var Do={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Co],[/.[^aeiou]ica$/,Io,"harmonica"],[/^([hyj]a+)+$/,To,"haha"]],c:[[/.[^aeiou]ic$/,No]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Go,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Go,"rammed"],[/.[aeiou][sg]hed$/,Go,"gushed"],[/.[aeiou]red$/,Go,"hired"],[/.[aeiou]r?ried$/,Go,"hurried"],[/[^aeiou]ard$/,Io,"steward"],[/[aeiou][^aeiou]id$/,No,""],[/.[vrl]id$/,No,"livid"],[/..led$/,Go,"hurled"],[/.[iao]sed$/,Go,""],[/[aeiou]n?[cs]ed$/,Go,""],[/[aeiou][rl]?[mnf]ed$/,Go,""],[/[aeiou][ns]?c?ked$/,Go,"bunked"],[/[aeiou]gned$/,Go],[/[aeiou][nl]?ged$/,Go],[/.[tdbwxyz]ed$/,Go],[/[^aeiou][aeiou][tvx]ed$/,Go],[/.[cdflmnprstv]ied$/,Go,"emptied"]],e:[[/.[lnr]ize$/,Eo,"antagonize"],[/.[^aeiou]ise$/,Eo,"antagonise"],[/.[aeiou]te$/,Eo,"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$/,Co,"..ovich"],[/^ug?h+$/,To,"ughh"],[/^uh[ -]?oh$/,To,"uhoh"],[/[a-z]-ish$/,No,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Co,"polish-male"]],k:[[/^(k){2}$/,To,"kkkk"]],l:[[/.[gl]ial$/,No,"familial"],[/.[^aeiou]ful$/,No,"fitful"],[/.[nrtumcd]al$/,No,"natal"],[/.[^aeiou][ei]al$/,No,"familial"]],m:[[/.[^aeiou]ium$/,Io,"magnesium"],[/[^aeiou]ism$/,Io,"schism"],[/^[hu]m+$/,To,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,No,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,To,"noooo"],[/^(yo)+$/,To,"yoo"],[/^wo{2,}[pt]?$/,To,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Io],[/[^i]fer$/,Eo],[/.[^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$/,xo],[/.[rln]ates$/,xo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Io],[/.[aeiou]sks$/,xo],[/.[aeiou]kes$/,xo],[/[aeiou][^aeiou]is$/,Io],[/[a-z]'s$/,"Noun"],[/^yes+$/,To]],v:[[/.[^aeiou][ai][kln]ov$/,Co]],y:[[/.[cts]hy$/,No],[/.[st]ty$/,No],[/.[tnl]ary$/,No],[/.[oe]ry$/,Io],[/[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$/,Io]]};const Oo="Verb",Bo="Noun";var Vo={leftTags:[["Adjective",Bo],["Possessive",Bo],["Determiner",Bo],["Adverb",Oo],["Pronoun",Oo],["Value",Bo],["Ordinal",Bo],["Modal",Oo],["Superlative",Bo],["Demonym",Bo],["Honorific","Person"]],leftWords:[["i",Oo],["first",Bo],["it",Oo],["there",Oo],["not",Oo],["because",Bo],["if",Bo],["but",Bo],["who",Oo],["this",Bo],["his",Bo],["when",Bo],["you",Oo],["very","Adjective"],["old",Bo],["never",Oo],["before",Bo],["a","Singular"],["the",Bo],["been",Oo]],rightTags:[["Copula",Bo],["PastTense",Bo],["Conjunction",Bo],["Modal",Bo]],rightWords:[["there",Oo],["me",Oo],["man","Adjective"],["only",Oo],["him",Oo],["it",Oo],["were",Bo],["took",Bo],["himself",Oo],["went",Bo],["who",Bo],["jr","Person"]]},zo={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"},Fo={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"},So={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"},Ho={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 Mo=/^.([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(Mo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Mo,"")}(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},Wo=/^([0-9]+)/,qo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Wo);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Wo,"")]}(n[0],n[1])})};var Ko=function(e={}){return(e=Object.assign({},e)).rules=qo(e.rules),e.rules=Lo(e.rules),e.rev&&(e.rev=qo(e.rev),e.rev=Lo(e.rev)),e.exceptions=qo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Uo=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 Ro=Ko({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"}),Qo=Ko(So),Zo=Ko($o),_o=Ko(Fo),Yo=Uo(Ro),Xo=Uo(Qo),ei=Uo(Zo),ti=Uo(_o),ni=Ko(zo),ri=Ko(Ho);var ai={fromPast:Ro,fromPresent:Qo,fromGerund:Zo,fromParticiple:_o,toPast:Yo,toPresent:Xo,toGerund:ei,toParticiple:ti,toComparative:ni,toSuperlative:ri,fromComparative:Uo(ni),fromSuperlative:Uo(ri)},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),{}),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,""]];var si=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(li[t].forEach(n=>e[n]=t),e),{});var ui=li;var ci=function(e){let t=e.substring(e.length-3);if(!0===ui.hasOwnProperty(t))return ui[t];let n=e.substring(e.length-2);return!0===ui.hasOwnProperty(n)?ui[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const hi={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=ci(e)),hi.hasOwnProperty(e))c=hi[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 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: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 mi=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 gi="ically",fi=new Set(["analyt"+gi,"chem"+gi,"class"+gi,"clin"+gi,"crit"+gi,"ecolog"+gi,"electr"+gi,"empir"+gi,"frant"+gi,"grammat"+gi,"ident"+gi,"ideolog"+gi,"log"+gi,"mag"+gi,"mathemat"+gi,"mechan"+gi,"med"+gi,"method"+gi,"method"+gi,"mus"+gi,"phys"+gi,"phys"+gi,"polit"+gi,"pract"+gi,"rad"+gi,"satir"+gi,"statist"+gi,"techn"+gi,"technolog"+gi,"theoret"+gi,"typ"+gi,"vert"+gi,"whims"+gi]),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"}],bi=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"]),yi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var wi=function(e){return e.endsWith("ly")?fi.has(e)?e.replace(/ically/,"ical"):bi.has(e)?null:yi.hasOwnProperty(e)?yi[e]:mi(e,vi)||e:null};const ki=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Pi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ai=function(e){if(Pi.hasOwnProperty(e))return Pi[e];let t=mi(e,ki);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"},Ei=new Set(["terrible","annoying"]);const xi=function(e,t){const n=t.two.models.toSuperlative;return Jo(e,n)},Ii=function(e,t){const n=t.two.models.toComparative;return Jo(e,n)};var Gi={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 Ti={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===Gi.hasOwnProperty(i)&&Gi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:ja,nounToSingular:si,verbToInfinitive:di,getTense:ci,verbConjugate:pi,adjToSuperlative:xi,adjToComparative:Ii,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:wi,adjToAdverb:Ai,adjToNoun:function(e){if(Ni.hasOwnProperty(e))return Ni[e];if(Ei.has(e))return null;let t=mi(e,ji);return t||e+"ness"}}}};var Ci=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 Di=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Oi=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=Di(n,"Infinitive","PastTense"),Object.assign(s,l),l=Di(r,"Infinitive","Verb"),Object.assign(s,l),l=Di(a,"Infinitive","Gerund"),Object.assign(s,l),l=Di(o,"Adjective","Superlative"),Object.assign(s,l),l=Di(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Bi={two:{models:ai}};const Vi={"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"},zi=function(e,t){const n={model:t,methods:Ti};let{lex:r,_multi:a}=Ti.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=pi(e,Bi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Fi=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Vi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||$i(a,r,!1),"Adj|Present"===o&&($i(a,r,!0),function(e,t,n){let r=xi(e,n);t[r]=t[r]||"Superlative";let a=Ii(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=di(a,Bi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=di(a,Bi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=zi(n,t)};let Si={one:{_multiCache:{},lexicon:Ea},two:{irregularPlurals:pa,models:ai,suffixPatterns:Po,prefixPatterns:jo,endsWith:Do,neighbours:Vo,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:co,uncountable:{},orgWords:oi}};Si=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=zi(e.one.lexicon,e)).one.lexicon,e),e=Fi(e.two.switches,e),e=Oi(e),e=Ci(e)}(Si);var Hi=Si;const Mi=/^(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(Mi.test(a.normal)){let e=a.normal.replace(Mi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Li=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 Wi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},qi=new Set(["formulas","koalas","israelis","menus"]),Ki=["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 Ui=function(e){if(!e||e.length<=3)return!1;if(qi.has(e))return!0;let t=e[e.length-1];return Wi.hasOwnProperty(t)?Wi[t].find(t=>e.endsWith(t)):"s"===t&&!Ki.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Qi=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Ui(e.normal)?Li(e,"Plural","3-plural-guess"):Li(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&&Li(e,t,"3-verb-tense-guess")}}(r)};const Zi=/^\p{Lu}[\p{Ll}'’]/u,_i=/[0-9]/,Yi=["Date","Month","WeekDay","Unit"],Xi=/^[IVXLCDM]{2,}$/,es=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ts={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ns=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===Zi.test(o)&&!1===_i.test(o)?Yi.find(e=>r.tags.has(e))?null:(Qi(e,t,n),r.tags.has("Noun")||r.tags.clear(),Li(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Xi.test(o)&&es.test(o)&&!ts[r.normal]?(Li(r,"RomanNumeral","2-xvii"),!0):null};const rs=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=rs(r.normal,n.two.suffixPatterns);if(null!==e)return Li(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=rs(r.implicit,n.two.suffixPatterns),null!==e))return Li(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const os=/['‘’‛‵′`´]/,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 Li(r,e,"2-prefix"),r.confidence=.5,!0}return null};const us=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!!us.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},hs=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 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(cs(a)||cs(o))return Li(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(hs(a)||hs(o))return Li(n,"Year","2-tagYear-close");if(ds(e[t-2])||ds(e[t+2]))return Li(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 Li(n,"Year","2-tagYear-noun")}}}return null};const ms=/^[A-Z]('s|,)?$/,gs=/^[A-Z-]+$/,fs=/([A-Z]\.)+[A-Z]?,?$/,vs=/[A-Z]{2,}('s|,)?$/,bs=/([a-z]\.)+[a-z]\.?$/,ys={I:!0,A:!0};var ws=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===gs.test(n)||n.length>5||ys.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==fs.test(n)&&!0!==bs.test(n)&&!0!==ms.test(n)&&!0!==vs.test(n))}(r,n)?(r.tags.clear(),Li(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!ys.hasOwnProperty(r.text)&&ms.test(r.text)?(r.tags.clear(),Li(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Li(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&gs.test(r.text)&&r.text.length<=6?(Li(r,"Acronym","3-titlecase-acronym"),!0):null};const ks=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ps=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var As=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||ks(e[t-1],a),l=l||ks(e[t+1],o),l=l||Ps(e[t-1],r),l=l||Ps(e[t+1],i),l)return Li(s,l,"3-[neighbour]"),Qi(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 r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&js(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&js(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Es=function(e,t,n){0===e[t].tags.size&&(Li(e[t],"Noun","3-[fallback]"),Qi(e,t,n),e[t].confidence=.1)};const xs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Is=(e,t,n)=>0!==t||e[1]?null:n;var Gs={"Adj|Gerund":(e,t)=>xs(e,t),"Adj|Noun":(e,t)=>xs(e,t),"Adj|Past":(e,t)=>xs(e,t),"Adj|Present":(e,t)=>xs(e,t),"Noun|Gerund":(e,t)=>xs(e,t),"Noun|Verb":(e,t)=>xs(e,t)||Is(e,t,"Infinitive"),"Plural|Verb":(e,t)=>xs(e,t)||Is(e,t,"PresentTense"),"Person|Noun":(e,t)=>xs(e,t),"Person|Verb":(e,t)=>0!==t&&xs(e,t)};const Ts="undefined"!=typeof process&&process.env?process.env:self.env||{},Cs=/^(under|over|mis|re|un|dis|semi)-?/,Ds=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ts.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Os=(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&&Ts.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Bs={tagSwitch:Ji,checkSuffix:as,checkRegex:ss,checkCase:ns,checkPrefix:ls,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")&&(Li(o,"Verb","3-[prefix]"),Li(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Li(o,"Adjective","3-[prefix]"),Li(o,"Prefix","3-[prefix]")))},checkYear:ps},Vs={checkAcronym:ws,neighbours:As,orgWords:Ns,nounFallback:Es,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(Cs.test(l)&&!o[l]&&(l=l.replace(Cs,"")),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=Ds(e[t+1],n.afterWords);return o=o||Ds(e[t-1],n.beforeWords),o=o||Os(e[t-1],n.beforeTags,a),o=o||Os(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Gs[o]&&(u=Gs[o](e,t)||u),u?(Ts.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):Ts.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},zs=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 Ss={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 Hs={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 _s=/'/;var Ys=function(e,t){let n=e[t].normal.split(_s)[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 Xs=/'/;var el=function(e,t){let n=e[t].normal.split(Xs)[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 tl=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 nl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},rl={in:!0,by:!0,for:!0};var al=(e,t)=>{let n=e[t];if(nl.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===rl[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 ol=/'/,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)},sl={d:(e,t)=>el(e,t),t:(e,t)=>tl(e,t),s:(e,t,n)=>al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Ys(e,t)},ll=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ul={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===ol.test(r[o].normal)&&([,i]=r[o].normal.split(ol));let s=null;sl.hasOwnProperty(i)&&(s=sl[i](r,o,t)),s&&(s=ll(s,e),Zs(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=Qs.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=Rs},hooks:["contractionTwo"]};const cl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const hl=["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:"[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:"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)",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: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:"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:"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:hl,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:hl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:hl,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 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;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}},model:{two:{matches:dl}},hooks:["postTagger"]};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 fl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?gl(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 vl={api:function(e){e.prototype.swap=fl}};m.plugin(qs),m.plugin(ul),m.plugin(ml),m.plugin(vl);var bl=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 yl=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 wl={this:"Noun",then:"Pivot"};var kl=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 Gl={compute:{chunks:function(e){const{document:t,world:n}=e;kl(t),Pl(t),Nl(e,t,n),xl(t),Il(t)}},api:function(e){e.prototype.chunks=yl,e.prototype.clauses=bl},hooks:["chunks"]};const Tl=/'s$/;var Cl=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(Tl,""),e.normal=e.normal.replace(Tl,"")})}),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 Dl=/\(/,Ol=/\)/,Bl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Dl,"");let t=e[e.length-1];t.post=t.post.replace(Ol,"")}),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 zl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},$l=RegExp("("+Object.keys(zl).join("|")+")"),Fl=RegExp("("+Object.values(zl).join("|")+")"),Sl=function(e,t){const n=e[t].pre.match($l)[0]||"";if(!n||!zl[n])return null;const r=zl[n];for(;t{e[0].pre=e[0].pre.replace($l,"");let t=e[e.length-1];t.post=t.post.replace(Fl,"")})}(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 Ml=/\./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(Ml,""),e.normal=e.normal.replace(Ml,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Ml,""),e.normal=e.normal.replace(Ml,""),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 Ll=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 Wl=(e,t)=>"number"==typeof t?e.eq(t):e,ql=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 Kl=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=ql(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 Wl(this,e).map(e=>{let n=ql(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=ql(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=ql(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=ql(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Wl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Wl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Wl(t,e),new Adjectives(t.document,t.pointer)}};const Ul=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},Rl=[["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 Ql=[["emojis","emoji"],["atmentions","atMentions"]];var Zl=function(e){Rl.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=Ul,Ql.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},_l={api:function(e){Zl(e),Cl(e),Vl(e),Hl(e),Kl(e),Ll(e),Jl(e)}};const Yl=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var Xl={case:e=>{Yl(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Yl(e,e=>e.text=n(e.text,t))},whitespace:e=>{Yl(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=>{Yl(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 eu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),tu="unicode|punctuation|whitespace|acronyms",nu="|case|contractions|parentheses|quotations|emoji|honorifics",ru={light:eu(tu),medium:eu(tu+nu),heavy:eu(tu+nu+"|possessives|adverbs|nouns|verbs")};var au={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=ru[e]),Object.keys(e).forEach(t=>{Xl.hasOwnProperty(t)&&Xl[t](this,e[t])}),this}}};var ou=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 iu=["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 su=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 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:lu(e,t),isSubordinate:su(e),root:t}};const cu=e=>e.text(),hu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),du=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var pu=function(e){let t=uu(e);return{root:cu(t.root),number:du(t.number),determiner:cu(t.determiner),adjectives:hu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const mu={tags:!0};var gu=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 fu={tags:!0};var vu=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,fu).tag("Singular","toPlural"),e};const bu=(e,t)=>"number"==typeof t?e.eq(t):e;var yu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return bu(this,e).map(uu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=pu(t)),n},[])}isPlural(e){let t=this.filter(e=>uu(e).isPlural);return bu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=uu(e).adjectives;n.found&&(t=t.concat(n))}),bu(t,e)}toPlural(e){return bu(this,e).map(e=>gu(e,uu(e)))}toSingular(e){return bu(this,e).map(e=>{let t=uu(e);return vu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=ou(this);return t=bu(t,e),new Nouns(this.document,t.pointer)}}};var wu=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 ku=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(Pu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Pu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Pu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var ju=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 Eu=/^([0-9,. ]+)\/([0-9,. ]+)$/,xu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Iu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Gu=function(e){if(!0===xu.hasOwnProperty(e))return xu[e];if("a"===e||"an"===e)return 1;const t=ku(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=Cu(n),r=Cu(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:Cu(n);let a=r.text("reduced");return Tu.test(a)&&(a=a.replace(Tu,""),r=r.replaceWith(a)),r=Du.hasOwnProperty(a)?Du[a]:Cu(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:Cu(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 Bu=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 Vu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],zu=["","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"]],Fu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Vu[n][1]&&(e-=Vu[n][1],t.push(Vu[n][0]));return zu[e]&&t.push(zu[e]),t};var Su=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Bu(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(Fu(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=Bu(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 Hu=function(e){if(!e.numerator||!e.denominator)return"";return`${Su({num:e.numerator})} out of ${Su({num:e.denominator})}`};const Mu={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=Su(e).split(" "),n=t[t.length-1];return Mu.hasOwnProperty(n)?t[t.length-1]=Mu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Lu=function(e){if(!e.numerator||!e.denominator)return"";let t=Su({num:e.numerator}),n=Ju({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Wu=(e,t)=>"number"==typeof t?e.eq(t):e;var qu=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Wu(this,e).map(Ou)}get(e){return Wu(this,e).map(Ou)}json(e){return Wu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ou(t);return n.fraction=r,n},[])}toDecimal(e){return Wu(this,e).forEach(e=>{let{decimal:t}=Ou(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Wu(this,e).forEach(e=>{let t=Ou(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 Wu(this,e).forEach(e=>{let t=Ou(e),n=Lu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Wu(this,e).forEach(e=>{let t=Ou(e),n=Hu(t);e.replaceWith(n)}),this}toPercentage(e){return Wu(this,e).forEach(e=>{let{decimal:t}=Ou(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=wu(this);return t=Wu(t,e),new Fractions(this.document,t.pointer)}};const Ku="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Uu=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("("+Ku+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ku+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ku+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ku+")"));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) (${Ku})`),r=e.has("("+Ku+") #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("("+Ku+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ku+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Ru=function(e){if("string"==typeof e)return{num:Gu(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=Ou(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Gu(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 Qu=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=Bu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Zu={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},_u={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var Yu=function(e){let t={suffix:"",prefix:e.prefix};return Zu.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Zu[e.prefix],t.prefix=""),_u.hasOwnProperty(e.suffix)&&(t.suffix+=" "+_u[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Xu=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Yu(e);return t+Ju(e)+n}if("Ordinal"===t)return e.prefix+Qu(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Yu(e);return t+Su(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const ec=(e,t)=>"number"==typeof t?e.eq(t):e;var tc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return ec(this,e).map(Ru)}get(e){return ec(this,e).map(Ru).map(e=>e.num)}json(e){return ec(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ru(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=Ru(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Xu(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=Ru(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Xu(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=Ru(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Xu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Xu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Xu(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=>Ru(t).num===e)}greaterThan(e){return this.filter(t=>Ru(t).num>e)}lessThan(e){return this.filter(t=>Ru(t).num{let r=Ru(n).num;return r>e&&r{let n=Ru(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=Xu(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=Ru(e).num);let t=this.map(t=>{let n=Ru(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=Xu(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=Uu(this);return t=ec(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Uu(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=ec(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Uu(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=ec(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var nc={api:function(e){qu(e),tc(e)}};const rc={people:!0,emails:!0,phoneNumbers:!0,places:!0},ac=function(e={}){return!1!==(e=Object.assign({},rc,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 oc={api:function(e){e.prototype.redact=ac}};var ic=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 sc=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 lc=function(e){let t=e.clauses(),n=sc(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 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};var cc=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 hc=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 dc=function(e){return e.verbs().toInfinitive(),e};const pc=(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}=lc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return pc(this,e).map(e=>(lc(e),uc(e)))}toPresentTense(e){return pc(this,e).map(e=>(lc(e),cc(e)))}toFutureTense(e){return pc(this,e).map(e=>(lc(e),e=hc(e)))}toInfinitive(e){return pc(this,e).map(e=>(lc(e),dc(e)))}toNegative(e){return pc(this,e).map(e=>(lc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return pc(this,e).map(e=>(lc(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 pc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return pc(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=pc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=ic(this);return pc(t,e)}};Object.assign(e.prototype,t)}};var gc=function(e){return e.match("#Honorific+? #Person+")};var fc=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 vc="male",bc="female",yc={mr:vc,mrs:bc,miss:bc,madam:bc,king:vc,queen:bc,duke:vc,duchess:bc,baron:vc,baroness:bc,count:vc,countess:bc,prince:vc,princess:bc,sire:vc,dame:bc,lady:bc,ayatullah:vc,congressman:vc,congresswoman:bc,"first lady":bc,mx:null};var wc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return bc;if(n.has("#MaleName"))return vc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),yc.hasOwnProperty(e))return yc[e];if(/^her /.test(e))return bc;if(/^his /.test(e))return vc}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 vc;if(n&&!t)return bc}return null};const kc=(e,t)=>"number"==typeof t?e.eq(t):e;var Pc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return kc(this,e).map(fc)}json(e){return kc(this,e).map(t=>{let n=t.toView().json(e)[0],r=fc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:wc(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=gc(this);return t=kc(t,e),new People(this.document,t.pointer)}};var Ac=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 jc=function(e){e.prototype.places=function(t){let n=Ac(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var Nc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Ec=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 xc=function(e){e.prototype.topics=Ec};var Ic={api:function(e){Pc(e),jc(e),Nc(e),xc(e)}};var Gc=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 Tc=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 Cc=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 Dc=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},Oc=function(e){return e.match("#Negative")},Bc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Vc=function(e){let t=e.clone();t.contractions().expand();const n=Tc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Cc(t,n),auxiliary:Dc(t,n),negative:Oc(t),phrasal:Bc(n)}};const zc={tense:"PresentTense"},$c={conditional:!0},Fc={tense:"FutureTense"},Sc={progressive:!0},Hc={tense:"PastTense"},Mc={complete:!0,progressive:!1},Jc={passive:!0},Lc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Wc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[zc]],["^wanted to #Infinitive$",[Hc]],["^will want to #Infinitive$",[Fc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Hc]],["^#PresentTense #Gerund$",[zc]],["^#Infinitive #Gerund$",[zc]],["^will #Infinitive #Gerund$",[Fc]],["^have #PastTense #Gerund$",[Hc]],["^will have #PastTense #Gerund$",[Hc]]],"simple-present":[["^#PresentTense$",[zc]],["^#Infinitive$",[zc]]],"simple-past":[["^#PastTense$",[Hc]]],"simple-future":[["^will #Adverb? #Infinitive",[Fc]]],"present-progressive":[["^(is|are|am) #Gerund$",[zc,Sc]]],"past-progressive":[["^(was|were) #Gerund$",[Hc,Sc]]],"future-progressive":[["^will be #Gerund$",[Fc,Sc]]],"present-perfect":[["^(has|have) #PastTense$",[Hc,Mc]]],"past-perfect":[["^had #PastTense$",[Hc,Mc]],["^had #PastTense to #Infinitive",[Hc,Mc]]],"future-perfect":[["^will have #PastTense$",[Fc,Mc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Hc,Sc]]],"past-perfect-progressive":[["^had been #Gerund$",[Hc,Sc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Fc,Sc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Hc,Jc]],["^(was|were) being (#PastTense|#Participle)",[Hc,Jc]],["^(had|have) been (#PastTense|#Participle)",[Hc,Jc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[zc,Jc]],["^(is|are|am) being (#PastTense|#Participle)",[zc,Jc]],["^has been (#PastTense|#Participle)",[zc,Jc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Fc,Jc,$c]],["will be being? (#PastTense|#Participle)",[Fc,Jc,$c]]],"present-conditional":[["would be #PastTense",[zc,$c]]],"past-conditional":[["would have been #PastTense",[Hc,$c]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Fc]]],"auxiliary-past":[["^did #Infinitive$",[Hc,{plural:!1}]],["^used to #Infinitive$",[Hc,Mc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[zc,Mc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Hc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let qc=[];Object.keys(Wc).map(e=>{Wc[e].forEach(t=>{qc.push({name:e,match:t[0],data:Lc(t[1])})})});var Kc=qc;var Uc=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(),Rc(r)&&(n.remove(r),r=n.last()),Rc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Qc(t,e)}};const _c=e=>e,Yc=(e,t)=>{let n=Zc(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Xc=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Zc(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},eh=function(e,t){let n=Zc(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},th=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},nh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,th(e)),r&&e.replace(t.root,r),e},rh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),ah=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},oh=function(e){return e&&e.isView?e.text("normal"):""},ih=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,th(e))};var sh=function(e){let t=Vc(e);e=e.clone().toView();const n=Uc(e,t);return{root:t.root.text(),preAdverbs:ah(t.adverbs.pre),postAdverbs:ah(t.adverbs.post),auxiliary:oh(t.auxiliary),negative:t.negative.found,prefix:oh(t.prefix),infinitive:ih(t.root),grammar:n}};const lh={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,th(r)),i&&e.replace(r,i,lh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=eh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const ch={tags:!0},hh={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,th(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Zc(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,ch),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=hh.simple(e,t),e=hh.noAux(e,t))},hasHad:e=>(e.replace("has","had",ch),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,th(a)),n(o,e.model).Participle}},dh={infinitive:hh.simple,"simple-present":hh.simple,"simple-past":_c,"simple-future":hh.both,"present-progressive":e=>(e.replace("are","were",ch),e.replace("(is|are|am)","was",ch),e),"past-progressive":_c,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":hh.hasHad,"past-perfect":_c,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=rh(e)),e.remove("have"),e),"present-perfect-progressive":hh.hasHad,"past-perfect-progressive":_c,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",ch),e),"passive-past":e=>(e.replace("have","had",ch),e),"passive-present":e=>(e.replace("(is|are)","was",ch),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",ch),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":_c,"auxiliary-future":e=>(e.replace("(is|are|am)","was",ch),e),"auxiliary-past":_c,"auxiliary-present":e=>(e.replace("(do|does)","did",ch),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",ch):(hh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":_c,"want-infinitive":e=>(e.replace("(want|wants)","wanted",ch),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),hh.simple(e,t),rh(e),e)};var ph=function(e,t,n){return dh.hasOwnProperty(n)?((e=dh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const mh={tags:!0},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,th(a)),!1===Yc(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Xc(e)),o&&(e=e.replace(a,o,mh)).not("#Particle").tag("PresentTense"),e},fh=(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,th(a)),!1===Yc(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,mh)).not("#Particle").tag("Gerund"),e},vh={infinitive:gh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return gh(e,t);{let t=Zc(e).subject;if(Yc(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":gh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Xc(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else gh(e,t),e=e.remove("will");return e},"present-progressive":_c,"past-progressive":(e,t)=>{let n=Xc(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)=>(gh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Zc(e).subject;return Yc(e)||n.has("i")?((e=nh(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":_c,"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=Xc(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":_c,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":_c,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(fh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=eh(e);return e.replace(t.auxiliary,n),e}return fh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":_c,"modal-infinitive":_c,"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,th(r)),a&&(e=e.replace(t.root,a,mh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),gh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Yc(e)&&(n="want"),e.replace("(want|wanted|wants)",n,mh),e.remove("will"),e}};var bh=function(e,t,n){return vh.hasOwnProperty(n)?((e=vh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const yh={tags:!0},wh=(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,th(r)),o&&(e=e.replace(r,o,yh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},kh=(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,th(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,yh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Ph={infinitive:wh,"simple-present":wh,"simple-past":wh,"simple-future":_c,"present-progressive":kh,"past-progressive":kh,"future-progressive":_c,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":_c,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":_c,"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":_c,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":_c,"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":_c,"modal-past":_c,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),wh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Ah=function(e,t,n){return e.has("will")||e.has("going to")?e:Ph.hasOwnProperty(n)?((e=Ph[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const jh={tags:!0};var Nh=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,th(a));let s=r(i,e.model).Gerund;return s&&(s=`${Xc(e)} ${s}`,e.replace(a,s,jh)),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 Eh={tags:!0},xh=function(e,t){let n=eh(e);return e.prepend(n+" not"),e},Ih=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)},Gh=e=>e.has("(is|was|am|are|will|were|be)"),Th={"simple-present":(e,t)=>!0===Gh(e)?Ih(e):(e=nh(e,t),e=xh(e)),"simple-past":(e,t)=>!0===Gh(e)?Ih(e):((e=nh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Gh(e)?Ih(e):xh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Eh),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=xh(e)).replace("wants","want",Eh)};var Ch=function(e,t,n){if(e.has("#Negative"))return e;if(Th.hasOwnProperty(n))return e=Th[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Gh(e)?Ih(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Dh=(e,t)=>"number"==typeof t?e.eq(t):e;var Oh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Dh(this,e).map(Vc)}json(e,t){return Dh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=sh(t),n},[])}subjects(e){return Dh(this,e).map(e=>(Vc(e),Zc(e).subject))}adverbs(e){return Dh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Dh(this,e).filter(e=>!0!==Zc(e).plural)}isPlural(e){return Dh(this,e).filter(e=>!0===Zc(e).plural)}isImperative(e){return Dh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return uh(e,t,n.form)})}toPresentTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return bh(e,t,n.form)})}toPastTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return ph(e,t,n.form)})}toFutureTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return Ah(e,t,n.form)})}toGerund(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return Nh(e,t,n.form)})}conjugate(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:uh(e.clone(),t,n.form).text("normal"),PastTense:ph(e.clone(),t,n.form).text("normal"),PresentTense:bh(e.clone(),t,n.form).text("normal"),FutureTense:Ah(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 Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return Ch(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=Gc(this);return t=Dh(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Gl),m.plugin(_l),m.plugin(au),m.plugin(yu),m.plugin(nc),m.plugin(oc),m.plugin(mc),m.plugin(Ic),m.plugin(Oh);export{m as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index d452c0c91..0443b04b3 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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.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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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 T=C,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;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 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,T,z,F,M,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"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e))return e.fullPointer.length>0;if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Ze=function(e){let t=e.split(We),n=[];t.forEach(e=>{Ue(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Re(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?a.push(e):a=a.concat(e.split(qe))}),a=Re(a),a};const Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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&&(jt(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&&(jt(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},Ct=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)}},Tt=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},Bt=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)}},Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Tt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else if(!Ot(r))return null}else if(!Ot(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!It(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,""),Ut.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&&Rt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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},yn=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=yn(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},wn={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:yn,splitAll:vn}}},kn=function(e,t){let n=e.concat(t),a=yn(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=>bn(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},An=function(e,t){let n=yn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},jn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},In={union:function(e){e=En(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=jn(e,this.document),this.update(e)};var Gn={methods:wn,api:function(e){Object.assign(e.prototype,In)}},Nn=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};function Dn(e,t,n){return e.splice(t,1,...n),e}const xn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Cn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Tn=function(e){let t=[];return e.forEach(e=>{for(let n=0;n{let r=Object.assign({},e);r.regs=r.regs.slice(0),a=a.map(t=>Cn(e.regs[n],t)),r.regs=Dn(r.regs,n,a),t.push(r)})}t.push(e)}),t};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 On=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=Bn(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Bn(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e},zn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t},Vn=function(e,t){return e.map(e=>{let n=[];return e.forEach(e=>{t.hasOwnProperty(e)&&(n=n.concat(t[e]))}),new Set(n)})},Fn=function(e,t){for(let n=0;ne.needs.every(e=>a.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,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},Sn=function(e,t){let[n,a,r]=e.pointer,o=t[n],i=a>4?a-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const d=e=>""+e+"";for(;ir+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>a&&i{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=Nn(e,t),e=Tn(e);let n=(e=On(e)).filter(e=>0===e.needs.length);return{index:zn(e),always:n}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=Vn(r,t.index);return o=Fn(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),$n(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;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 r=e.reason||e.match;l.DEBUG_TAGS&&Sn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(u,e.tag,a))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,r),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,r),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const Mn=/ /,Ln=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.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[0],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(/^#/,""),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,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},Xn=e=>"[object Array]"===Object.prototype.toString.call(e),Yn=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=Yn(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(Xn(e))return e.forEach(e=>this.add(Yn(e),t)),this;e=Yn(e);let n=Rn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Yn(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 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(){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 da=function(e){return e?"string"==typeof e?[e]:e:[]};var ha=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},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=ha(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)}},fa=function(e){Object.assign(e.prototype,pa)},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 ya=new Set(["Auxiliary","Possessive"]);var va={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: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]+/,Ja=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ma=/['’]/,La=/^[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,Ma.test(r)&&/[sn]['’]$/.test(t)&&!1===Ma.test(n)?(a=a.replace(Ma,""),"'"):!0===La.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},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 Xa=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},Ya=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ua(a),a=n(a,t),a=Xa(a),e.normal=a},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=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||"",a).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{Ya(e,t)}),n})}}}},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","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=>{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;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 dr=/^\p{Letter}+-\p{Letter}+$/u;var hr=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)},gr=function(e){let t=0,n=0,a=e.document;for(let e=0;emr(e,cr),machine:e=>mr(e,hr),normal:e=>mr(e,Ya),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 yr={safe:!0,min:3};var vr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=fr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},yr,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(fn),m.extend(St),m.extend(Gn),m.extend(va),m.plugin(be),m.extend(pr),m.plugin(f),m.extend(De),m.extend(vr),m.extend(Pe),m.extend(Jn);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",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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 Pr=36,Ar="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Er=Ar.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var jr=function(e){if(void 0!==Er[e])return Er[e];let t=0,n=1,a=Pr,r=1;for(;n=0;n--,r*=Pr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Ir=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=Dr(kr[e]);Br.test(e)?Object.keys(t).forEach(t=>{if(zr[t]=e,"Noun|Verb"===e){let e=Tr(t,Vr);zr[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 Fr="Adjective";var $r={beforeTags:{Determiner:Fr,Possessive:Fr},afterTags:{Adjective:Fr},beforeWords:{seem:Fr,seemed:Fr,seems:Fr,feel:Fr,feels:Fr,felt:Fr,appear:Fr,appears:Fr,appeared:Fr,also:Fr,over:Fr,under:Fr,too:Fr,it:Fr,but:Fr,still:Fr,really:Fr,quite:Fr,well:Fr,very:Fr,deeply:Fr,profoundly:Fr,extremely:Fr,so:Fr,badly:Fr,mostly:Fr,totally:Fr,awfully:Fr,rather:Fr,nothing:Fr,something:Fr,anything:Fr},afterWords:{too:Fr,also:Fr,or:Fr}};const Sr="Gerund";var Hr={beforeTags:{Adverb:Sr,Preposition:Sr,Conjunction:Sr},afterTags:{Adverb:Sr,Possessive:Sr,Person:Sr,Pronoun:Sr,Determiner:Sr,Copula:Sr,Preposition:Sr,Conjunction:Sr,Comparative:Sr},beforeWords:{been:Sr,keep:Sr,continue:Sr,stop:Sr,am:Sr,be:Sr,me:Sr,began:Sr,start:Sr,starts:Sr,started:Sr,stops:Sr,stopped:Sr,help:Sr,helps:Sr,avoid:Sr,avoids:Sr,love:Sr,loves:Sr,loved:Sr,hate:Sr,hates:Sr,hated:Sr},afterWords:{you:Sr,me:Sr,her:Sr,him:Sr,them:Sr,their:Sr,it:Sr,this:Sr,there:Sr,on:Sr,about:Sr,for:Sr}},Jr={beforeTags:Object.assign({},$r.beforeTags,Hr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$r.afterTags,Hr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$r.beforeWords,Hr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$r.afterWords,Hr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Mr="Singular";var Lr={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 Wr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Kr={beforeTags:Object.assign({},$r.beforeTags,Lr.beforeTags,Wr.beforeTags),afterTags:Object.assign({},$r.afterTags,Lr.afterTags),beforeWords:Object.assign({},$r.beforeWords,Lr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$r.afterWords,Lr.afterWords)};const qr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ur={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Rr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Zr={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({},$r.beforeTags,qr),afterTags:Object.assign({},$r.afterTags,Ur),beforeWords:Object.assign({},$r.beforeWords,Rr),afterWords:Object.assign({},$r.afterWords,Zr)};const _r="Infinitive";var Xr={beforeTags:{Modal:_r,Adverb:_r,Negative:_r,Plural:_r},afterTags:{Determiner:_r,Adverb:_r,Possessive:_r,Preposition:_r},beforeWords:{i:_r,we:_r,you:_r,they:_r,to:_r,please:_r,will:_r,have:_r,had:_r,would:_r,could:_r,should:_r,do:_r,did:_r,does:_r,can:_r,must:_r,us:_r,me:_r,he:_r,she:_r,it:_r,being:_r},afterWords:{the:_r,me:_r,you:_r,him:_r,her:_r,them:_r,it:_r,a:_r,an:_r,up:_r,down:_r,by:_r,out:_r,off:_r,when:_r,all:_r,to:_r,because:_r,although:_r,before:_r,how:_r,otherwise:_r,though:_r,yet:_r}};const Yr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var eo={beforeTags:Object.assign({},$r.beforeTags,Xr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$r.afterTags,Xr.afterTags,Yr.afterTags),beforeWords:Object.assign({},$r.beforeWords,Xr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$r.afterWords,Xr.afterWords,{to:void 0})};const to={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},no={},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"},ro={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oo={beforeTags:Object.assign({},Hr.beforeTags,Lr.beforeTags,to),afterTags:Object.assign({},Hr.afterTags,Lr.afterTags,no),beforeWords:Object.assign({},Hr.beforeWords,Lr.beforeWords,ao),afterWords:Object.assign({},Hr.afterWords,Lr.afterWords,ro)},io={beforeTags:Object.assign({},Xr.beforeTags,Lr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xr.afterTags,Lr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xr.beforeWords,Lr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xr.afterWords,Lr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const so="Person";var lo={beforeTags:{Honorific:so,Person:so,Preposition:so},afterTags:{Person:so,ProperNoun:so,Verb:so},ownTags:{ProperNoun:so},beforeWords:{hi:so,hey:so,yo:so,dear:so,hello:so},afterWords:{said:so,says:so,told:so,tells:so,feels:so,felt:so,seems:so,thinks:so,thought:so,spends:so,spendt:so,plays:so,played:so,sing:so,sang:so,learn:so,learned:so,wants:so,wanted:so}};const uo="Month",co={beforeTags:{Date:uo,Value:uo},afterTags:{Date:uo,Value:uo},beforeWords:{by:uo,in:uo,on:uo,during:uo,after:uo,before:uo,between:uo,until:uo,til:uo,sometime:uo,of:uo,this:uo,next:uo,last:uo,previous:uo,following:uo},afterWords:{sometime:uo,in:uo,of:uo,until:uo,the:uo}};var ho={beforeTags:Object.assign({},lo.beforeTags,co.beforeTags),afterTags:Object.assign({},lo.afterTags,co.afterTags),beforeWords:Object.assign({},lo.beforeWords,co.beforeWords),afterWords:Object.assign({},lo.afterWords,co.afterWords)};const go={Place:"Place"},mo={Place:"Place",Abbreviation:"Place"},po={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},bo={"Adj|Gerund":Jr,"Adj|Noun":Kr,"Adj|Past":Qr,"Adj|Present":eo,"Noun|Verb":io,"Noun|Gerund":oo,"Person|Noun":{beforeTags:Object.assign({},Lr.beforeTags,lo.beforeTags),afterTags:Object.assign({},Lr.afterTags,lo.afterTags),beforeWords:Object.assign({},Lr.beforeWords,lo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lr.afterWords,lo.afterWords)},"Person|Date":ho,"Person|Verb":{beforeTags:Object.assign({},lo.beforeTags,Xr.beforeTags),afterTags:Object.assign({},lo.afterTags,Xr.afterTags),beforeWords:Object.assign({},lo.beforeWords,Xr.beforeWords),afterWords:Object.assign({},lo.afterWords,Xr.afterWords)},"Person|Place":{beforeTags:Object.assign({},go,lo.beforeTags),afterTags:Object.assign({},mo,lo.afterTags),beforeWords:Object.assign({},po,lo.beforeWords),afterWords:Object.assign({},fo,lo.afterWords)}},yo=(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:yo(bo["Noun|Verb"].beforeWords,{}),afterWords:yo(bo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:yo(bo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:yo(bo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var vo=bo;const wo="Adjective",ko="Infinitive",Po="PresentTense",Ao="Singular",Eo="PastTense",jo="Adverb",Io="Plural",Go="Actor",No="Verb",Do="Noun",xo="LastName",Co="Modal",To="Participle";var Bo=[null,null,{ea:Ao,ia:Do,ic:wo,ly:jo,"'n":No,"'t":No},{oed:Eo,ued:Eo,xed:Eo," so":jo,"'ll":Co,"'re":"Copula",azy:wo,eer:Do,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:To,ven:To,ten:To,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:xo,cede:ko,chuk:xo,czyk:xo,ects:Po,ends:No,enko:xo,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:xo,oses:Po,ould:Co,some:wo,sson:xo,tion:Ao,tage:Do,ique:Ao,tive:wo,tors:Do,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:xo,nssen:xo,ology:Do,osome:Ao,tment:Ao,ports:Io,rough:wo,tches:Po,tieth:"Ordinal",tures:Io,wards:jo,where:jo,archy:Do,pathy:Do,opoly:Do,embly:Do,phate:Do,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:xo,parent:Ao,cedent:Ao,ionary:Ao,cklist:Ao,keeper:Go,logist:Go,teenth:"Value"},{opoulos:xo,borough:"Place",sdottir:xo}];const Oo="Adjective",zo="Noun",Vo="Verb";var Fo=[null,null,{},{neo:zo,bio:zo,"de-":Vo,"re-":Vo,"un-":Vo},{anti:zo,auto:zo,faux:Oo,hexa:zo,kilo:zo,mono:zo,nano:zo,octa:zo,poly:zo,semi:Oo,tele:zo,"pro-":Oo,"mis-":Vo,"dis-":Vo,"pre-":Oo},{anglo:zo,centi:zo,ethno:zo,ferro:zo,grand:zo,hepta:zo,hydro:zo,intro:zo,macro:zo,micro:zo,milli:zo,nitro:zo,penta:zo,quasi:Oo,radio:zo,tetra:zo,"omni-":Oo,"post-":Oo},{pseudo:Oo,"extra-":Oo,"hyper-":Oo,"inter-":Oo,"intra-":Oo,"deca-":Oo},{electro:zo}];const $o="Adjective",So="Infinitive",Ho="PresentTense",Jo="Singular",Mo="PastTense",Lo="Adverb",Wo="Expression",Ko="Actor",qo="Verb",Uo="Noun",Ro="LastName";var Zo={a:[[/.[aeiou]na$/,Uo,"tuna"],[/.[oau][wvl]ska$/,Ro],[/.[^aeiou]ica$/,Jo,"harmonica"],[/^([hyj]a+)+$/,Wo,"haha"]],c:[[/.[^aeiou]ic$/,$o]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Mo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Mo,"rammed"],[/.[aeiou][sg]hed$/,Mo,"gushed"],[/.[aeiou]red$/,Mo,"hired"],[/.[aeiou]r?ried$/,Mo,"hurried"],[/[^aeiou]ard$/,Jo,"steward"],[/[aeiou][^aeiou]id$/,$o,""],[/.[vrl]id$/,$o,"livid"],[/..led$/,Mo,"hurled"],[/.[iao]sed$/,Mo,""],[/[aeiou]n?[cs]ed$/,Mo,""],[/[aeiou][rl]?[mnf]ed$/,Mo,""],[/[aeiou][ns]?c?ked$/,Mo,"bunked"],[/[aeiou]gned$/,Mo],[/[aeiou][nl]?ged$/,Mo],[/.[tdbwxyz]ed$/,Mo],[/[^aeiou][aeiou][tvx]ed$/,Mo],[/.[cdflmnprstv]ied$/,Mo,"emptied"]],e:[[/.[lnr]ize$/,So,"antagonize"],[/.[^aeiou]ise$/,So,"antagonise"],[/.[aeiou]te$/,So,"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$/,Ro,"..ovich"],[/^ug?h+$/,Wo,"ughh"],[/^uh[ -]?oh$/,Wo,"uhoh"],[/[a-z]-ish$/,$o,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ro,"polish-male"]],k:[[/^(k){2}$/,Wo,"kkkk"]],l:[[/.[gl]ial$/,$o,"familial"],[/.[^aeiou]ful$/,$o,"fitful"],[/.[nrtumcd]al$/,$o,"natal"],[/.[^aeiou][ei]al$/,$o,"familial"]],m:[[/.[^aeiou]ium$/,Jo,"magnesium"],[/[^aeiou]ism$/,Jo,"schism"],[/^[hu]m+$/,Wo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,$o,"republican"],[/[^aeiou]ician$/,Ko,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Wo,"noooo"],[/^(yo)+$/,Wo,"yoo"],[/^wo{2,}[pt]?$/,Wo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Jo],[/[^i]fer$/,So],[/.[^aeiou][ao]pher$/,Ko],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,$o],[/[aeiou].*ist$/,$o],[/^[a-z]et$/,qo]],s:[[/.[^aeiou]ises$/,Ho],[/.[rln]ates$/,Ho],[/.[^z]ens$/,qo],[/.[lstrn]us$/,Jo],[/.[aeiou]sks$/,Ho],[/.[aeiou]kes$/,Ho],[/[aeiou][^aeiou]is$/,Jo],[/[a-z]'s$/,Uo],[/^yes+$/,Wo]],v:[[/.[^aeiou][ai][kln]ov$/,Ro]],y:[[/.[cts]hy$/,$o],[/.[st]ty$/,$o],[/.[tnl]ary$/,$o],[/.[oe]ry$/,Jo],[/[rdntkbhs]ly$/,Lo],[/.(gg|bb|zz)ly$/,$o],[/...lly$/,Lo],[/.[gk]y$/,$o],[/[bszmp]{2}y$/,$o],[/.[ai]my$/,$o],[/[ea]{2}zy$/,$o],[/.[^aeiou]ity$/,Jo]]};const Qo="Verb",_o="Noun";var Xo={leftTags:[["Adjective",_o],["Possessive",_o],["Determiner",_o],["Adverb",Qo],["Pronoun",Qo],["Value",_o],["Ordinal",_o],["Modal",Qo],["Superlative",_o],["Demonym",_o],["Honorific","Person"]],leftWords:[["i",Qo],["first",_o],["it",Qo],["there",Qo],["not",Qo],["because",_o],["if",_o],["but",_o],["who",Qo],["this",_o],["his",_o],["when",_o],["you",Qo],["very","Adjective"],["old",_o],["never",Qo],["before",_o],["a","Singular"],["the",_o],["been",Qo]],rightTags:[["Copula",_o],["PastTense",_o],["Conjunction",_o],["Modal",_o]],rightWords:[["there",Qo],["me",Qo],["man","Adjective"],["only",Qo],["him",Qo],["it",Qo],["were",_o],["took",_o],["himself",Qo],["went",_o],["who",_o],["jr","Person"]]},Yo={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"},ei={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"},ti={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"},ni={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"},ai={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 ri=/^.([0-9]+)/;var oi=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(ri);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(ri,"")}(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},si=/^([0-9]+)/,li=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(si);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(si,"")]}(n[0],n[1])})};var ui=function(e={}){return(e=Object.assign({},e)).rules=li(e.rules),e.rules=ii(e.rules),e.rev&&(e.rev=li(e.rev),e.rev=ii(e.rev)),e.exceptions=li(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ci=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 di=ui({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"}),hi=ui(ni),gi=ui(ei),mi=ui(ti),pi=ci(di),fi=ci(hi),bi=ci(gi),yi=ci(mi),vi=ui(Yo),wi=ui(ai);var ki={fromPast:di,fromPresent:hi,fromGerund:gi,fromParticiple:mi,toPast:pi,toPresent:fi,toGerund:bi,toParticiple:yi,toComparative:vi,toSuperlative:wi,fromComparative:ci(vi),fromSuperlative:ci(wi)},Pi=["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),{}),Ai=[[/([^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 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(ji[t].forEach(n=>e[n]=t),e),{});var Ii=ji,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 Ni={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Di=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=Gi(e)),Ni.hasOwnProperty(e))c=Ni[e];else if("Participle"===n)c=oi(l,i);else if("PastTense"===n)c=oi(l,a);else if("PresentTense"===n)c=oi(l,r);else{if("Gerund"!==n)return e;c=oi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},xi=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:oi(i,n),PresentTense:oi(i,a),Gerund:oi(i,r),FutureTense:"will "+e},u=oi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Ci=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 Ti="ically",Bi=new Set(["analyt"+Ti,"chem"+Ti,"class"+Ti,"clin"+Ti,"crit"+Ti,"ecolog"+Ti,"electr"+Ti,"empir"+Ti,"frant"+Ti,"grammat"+Ti,"ident"+Ti,"ideolog"+Ti,"log"+Ti,"mag"+Ti,"mathemat"+Ti,"mechan"+Ti,"med"+Ti,"method"+Ti,"method"+Ti,"mus"+Ti,"phys"+Ti,"phys"+Ti,"polit"+Ti,"pract"+Ti,"rad"+Ti,"satir"+Ti,"statist"+Ti,"techn"+Ti,"technolog"+Ti,"theoret"+Ti,"typ"+Ti,"vert"+Ti,"whims"+Ti]),Oi=[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"}],zi=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"]),Vi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Fi=function(e){return e.endsWith("ly")?Bi.has(e)?e.replace(/ically/,"ical"):zi.has(e)?null:Vi.hasOwnProperty(e)?Vi[e]:Ci(e,Oi)||e:null};const $i=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Si={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Hi=function(e){if(Si.hasOwnProperty(e))return Si[e];let t=Ci(e,$i);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"}],Mi={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"},Li=new Set(["terrible","annoying"]),Wi=function(e,t){const n=t.two.models.toSuperlative;return oi(e,n)},Ki=function(e,t){const n=t.two.models.toComparative;return oi(e,n)};var qi={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"]}},Ui={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===qi.hasOwnProperty(i)&&qi[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:Ei,verbToInfinitive:Di,getTense:Gi,verbConjugate:xi,adjToSuperlative:Wi,adjToComparative:Ki,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return oi(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return oi(e,n)},advToAdjective:Fi,adjToAdverb:Hi,adjToNoun:function(e){if(Mi.hasOwnProperty(e))return Mi[e];if(Li.has(e))return null;let t=Ci(e,Ji);return t||e+"ness"}}}},Ri=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,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=Zi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Zi(a,"Infinitive","Verb"),Object.assign(s,l),l=Zi(r,"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 _i={two:{models:ki}};const Xi={"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"},Yi=function(e,t){const n={model:t,methods:Ui};let{lex:a,_multi:r}=Ui.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},es=function(e,t,n){let a=xi(e,_i);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},ts=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Xi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||es(r,a,!1),"Adj|Present"===o&&(es(r,a,!0),function(e,t,n){let a=Wi(e,n);t[a]=t[a]||"Superlative";let r=Ki(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Di(r,_i,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Di(r,_i,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Yi(n,t)};let ns={one:{_multiCache:{},lexicon:Or},two:{irregularPlurals:wr,models:ki,suffixPatterns:Bo,prefixPatterns:Fo,endsWith:Zo,neighbours:Xo,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:zr,clues:vo,uncountable:{},orgWords:Pi}};ns=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=Yi(e.one.lexicon,e)).one.lexicon,e),e=ts(e.two.switches,e),e=Qi(e),e=Ri(e)}(ns);var as=ns;const rs=/^(under|over|mis|re|un|dis|semi)-?/;var os=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(rs.test(r.normal)){let e=r.normal.replace(rs,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},is=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 ss={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ls=new Set(["formulas","koalas","israelis","menus"]),us=["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 cs=function(e){if(!e||e.length<=3)return!1;if(ls.has(e))return!0;let t=e[e.length-1];return ss.hasOwnProperty(t)?ss[t].find(t=>e.endsWith(t)):"s"===t&&!us.find(t=>e.endsWith(t))};const ds=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var hs=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(cs(e.normal)?is(e,"Plural","3-plural-guess"):is(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Gi(e.normal);t&&is(e,t,"3-verb-tense-guess")}}(a)};const gs=/^\p{Lu}[\p{Ll}'’]/u,ms=/[0-9]/,ps=["Date","Month","WeekDay","Unit"],fs=/^[IVXLCDM]{2,}$/,bs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ys={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var vs=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===gs.test(o)&&!1===ms.test(o)?ps.find(e=>a.tags.has(e))?null:(hs(e,t,n),a.tags.has("Noun")||a.tags.clear(),is(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&fs.test(o)&&bs.test(o)&&!ys[a.normal]?(is(a,"RomanNumeral","2-xvii"),!0):null};const ws=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 ks=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=ws(a.normal,n.two.suffixPatterns);if(null!==e)return is(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=ws(a.implicit,n.two.suffixPatterns),null!==e))return is(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Ps=/['‘’‛‵′`´]/,As=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 is(a,e,"2-prefix"),a.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")},Ns=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 xs=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(Gs(r)||Gs(o))return is(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Ns(r)||Ns(o))return is(n,"Year","2-tagYear-close");if(Ds(e[t-2])||Ds(e[t+2]))return is(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 is(n,"Year","2-tagYear-noun")}}}return null};const Cs=/^[A-Z]('s|,)?$/,Ts=/^[A-Z-]+$/,Bs=/([A-Z]\.)+[A-Z]?,?$/,Os=/[A-Z]{2,}('s|,)?$/,zs=/([a-z]\.)+[a-z]\.?$/,Vs={I:!0,A:!0};var Fs=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===Ts.test(n)||n.length>5||Vs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Bs.test(n)&&!0!==zs.test(n)&&!0!==Cs.test(n)&&!0!==Os.test(n))}(a,n)?(a.tags.clear(),is(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Vs.hasOwnProperty(a.text)&&Cs.test(a.text)?(a.tags.clear(),is(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(is(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Ts.test(a.text)&&a.text.length<=6?(is(a,"Acronym","3-titlecase-acronym"),!0):null};const $s=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ss=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Hs=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||$s(e[t-1],r),l=l||$s(e[t+1],o),l=l||Ss(e[t-1],a),l=l||Ss(e[t+1],i),l)return is(s,l,"3-[neighbour]"),hs(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 Ms=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},Ls=function(e,t,n){0===e[t].tags.size&&(is(e[t],"Noun","3-[fallback]"),hs(e,t,n),e[t].confidence=.1)};const Ws=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ks=(e,t,n)=>0!==t||e[1]?null:n;var qs={"Adj|Gerund":(e,t)=>Ws(e,t),"Adj|Noun":(e,t)=>Ws(e,t),"Adj|Past":(e,t)=>Ws(e,t),"Adj|Present":(e,t)=>Ws(e,t),"Noun|Gerund":(e,t)=>Ws(e,t),"Noun|Verb":(e,t)=>Ws(e,t)||Ks(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ws(e,t)||Ks(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ws(e,t),"Person|Verb":(e,t)=>0!==t&&Ws(e,t)};const Us="undefined"!=typeof process&&process.env?process.env:self.env||{},Rs=/^(under|over|mis|re|un|dis|semi)-?/,Zs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Us.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&&Us.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},_s={tagSwitch:os,checkSuffix:ks,checkRegex:Es,checkCase:vs,checkPrefix:js,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")&&(is(o,"Verb","3-[prefix]"),is(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(is(o,"Adjective","3-[prefix]"),is(o,"Prefix","3-[prefix]")))},checkYear:xs},Xs={checkAcronym:Fs,neighbours:Hs,orgWords:Ms,nounFallback:Ls,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(Rs.test(l)&&!o[l]&&(l=l.replace(Rs,"")),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=Zs(e[t+1],n.afterWords);return o=o||Zs(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);qs[o]&&(u=qs[o](e,t)||u),u?(Us.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),r([s],u,n,null,"3-[variable]")):Us.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Ys=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)},nl={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 al={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 ml=/'/;var pl=function(e,t){let n=e[t].normal.split(ml)[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 fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[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"]},yl=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 vl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},wl={in:!0,by:!0,for:!0};var kl=(e,t)=>{let n=e[t];if(vl.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===wl[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 Pl=/'/,Al=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)},El={d:(e,t)=>bl(e,t),t:(e,t)=>yl(e,t),s:(e,t,n)=>kl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):pl(e,t)},jl=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((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===Pl.test(a[o].normal)&&([,i]=a[o].normal.split(Pl));let s=null;El.hasOwnProperty(i)&&(s=El[i](a,o,t)),s&&(s=jl(s,e),gl(n,[r,o],s),Al(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=hl.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=dl},hooks:["contractionTwo"]};const Gl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Nl=["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:"[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:"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)",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: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:"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:Nl,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:Nl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Nl,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"}]),xl=null;var Cl={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;xl=xl||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(xl),e.uncache(),e}},model:{two:{matches:Dl}},hooks:["postTagger"]},Tl=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)},Bl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Tl(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},Ol={api:function(e){e.prototype.swap=Bl}};return m.plugin(ll),m.plugin(Il),m.plugin(Cl),m.plugin(Ol),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]);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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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;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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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 T=C,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;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 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,T,z,F,M,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"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e))return e.fullPointer.length>0;if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Ze=function(e){let t=e.split(We),n=[];t.forEach(e=>{Ue(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Re(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?a.push(e):a=a.concat(e.split(qe))}),a=Re(a),a};const Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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&&(jt(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&&(jt(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},Ct=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)}},Tt=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},Bt=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)}},Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Tt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else if(!Ot(r))return null}else if(!Ot(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!It(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,""),Ut.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&&Rt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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},yn=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=yn(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},wn={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:yn,splitAll:vn}}},kn=function(e,t){let n=e.concat(t),a=yn(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=>bn(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},An=function(e,t){let n=yn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},jn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},In={union:function(e){e=En(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=jn(e,this.document),this.update(e)};var Gn={methods:wn,api:function(e){Object.assign(e.prototype,In)}};const Nn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Nn(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e},xn=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})},Cn=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.find(e=>a.has(e)))})},Tn=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},Bn=function(e,t){let[n,a,r]=e.pointer,o=t[n],i=a>4?a-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const d=e=>""+e+"";for(;ir+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>a&&i{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=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 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=xn(r,t.hooks);return o=Cn(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),Tn(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;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 r=e.reason||e.match;l.DEBUG_TAGS&&Bn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===On(u,e.tag,a))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,r),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,r),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const Vn=/ /,Fn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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.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[0],t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Vn.test(t))!function(e,t,n,a){let r=t.split(Vn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nSn(e,t,n,a))};var Hn=Sn,Jn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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=Mn({});return e.forEach(e=>{if((e=Mn(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(Mn),t);var t},Zn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Kn(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},Qn=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},_n={text:Zn,txt:Zn,array:Qn,flat:Qn},Xn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Zn(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Yn=e=>{Kn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},ea=/\//;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),!ea.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Mn({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 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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(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 Yn(this.json),Xn(this.json,e)}debug(){return Yn(this.json),Xn(this.json,"debug"),this}}const ta=function(e){let t=Rn(e);return new g$1(t)};ta.prototype.plugin=function(e){e(this)};var na={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const aa=function(e){if(na.hasOwnProperty(e.id))return na[e.id];if(na.hasOwnProperty(e.is))return na[e.is];let t=e._cache.parents.find(e=>na[e]);return na[t]};var ra=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:aa(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 oa=function(e){return e?"string"==typeof e?[e]:e:[]};var ia=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=oa(e[t].children),e[t].not=oa(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},sa={one:{setTag:Hn,unTag:Jn,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=ia(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 ta(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ra(n)}}};const la=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ua={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||""),la(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 la(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)}},ca=function(e){Object.assign(e.prototype,ua)},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 ha=new Set(["Auxiliary","Possessive"]);var ga={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(ha.has(e)||!t.hasOwnProperty(n))return 1;if(ha.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:sa,api:ca,lib:da};const ma=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,pa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var fa=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 Oa=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,za=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Va=/['’]/,Fa=/^[a-z]\.([a-z]\.)+/i,$a=/^[-+.][0-9]/,Sa=/^'[0-9]{2}/;var Ha=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Oa,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$a.test(e)?"'"===n&&Sa.test(e)?(n="",t):"":(n="",t)))).replace(za,r=>(a=r,Va.test(r)&&/[sn]['’]$/.test(t)&&!1===Va.test(n)?(a=a.replace(Va,""),"'"):!0===Fa.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},Ja=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 Ma=/([A-Z]\.)+[A-Z]?,?$/,La=/^[A-Z]\.,?$/,Wa=/[A-Z]{2,}('s|,)?$/,Ka=/([a-z]\.)+[a-z]\.?$/;var qa=function(e){return function(e){return!0===Ma.test(e)||!0===Ka.test(e)||!0===La.test(e)||!0===Wa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Ua=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ja(a),a=n(a,t),a=qa(a),e.normal=a},Ra={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:Ea,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(Ta);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=Da(n),n=Ga(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ha(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})}}}},Za={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},_a={};[[["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=>{Qa[t]=!0,_a[t]="Abbreviation",void 0!==e[1]&&(_a[t]=[_a[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 Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},er={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){er[t]=e}))}));const tr=/\//,nr=/[a-z]\.[a-z]/i,ar=/[0-9]/;var rr=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])),tr.test(n)&&!nr.test(n)&&!ar.test(n)){let t=n.split(tr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const or=/^\p{Letter}+-\p{Letter}+$/u;var ir=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"),or.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},sr=function(e){let t=0,n=0,a=e.document;for(let e=0;elr(e,rr),machine:e=>lr(e,ir),normal:e=>lr(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 hr={safe:!0,min:3};var gr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=cr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},hr,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(U),m.extend(fn),m.extend(St),m.extend(Gn),m.extend(ga),m.plugin(be),m.extend(ur),m.plugin(f),m.extend(De),m.extend(gr),m.extend(Pe),m.extend(zn);var mr={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",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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 fr=36,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=fr,r=1;for(;n=0;n--,r*=fr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},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(pr[e]);Gr.test(e)?Object.keys(t).forEach(t=>{if(Dr[t]=e,"Noun|Verb"===e){let e=Ir(t,xr);Dr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Nr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Nr[e]="Emoticon"),delete Nr[""],delete Nr.null,delete Nr[" "];const Cr="Adjective";var Tr={beforeTags:{Determiner:Cr,Possessive:Cr},afterTags:{Adjective:Cr},beforeWords:{seem:Cr,seemed:Cr,seems:Cr,feel:Cr,feels:Cr,felt:Cr,appear:Cr,appears:Cr,appeared:Cr,also:Cr,over:Cr,under:Cr,too:Cr,it:Cr,but:Cr,still:Cr,really:Cr,quite:Cr,well:Cr,very:Cr,deeply:Cr,profoundly:Cr,extremely:Cr,so:Cr,badly:Cr,mostly:Cr,totally:Cr,awfully:Cr,rather:Cr,nothing:Cr,something:Cr,anything:Cr},afterWords:{too:Cr,also:Cr,or:Cr}};const Br="Gerund";var Or={beforeTags:{Adverb:Br,Preposition:Br,Conjunction:Br},afterTags:{Adverb:Br,Possessive:Br,Person:Br,Pronoun:Br,Determiner:Br,Copula:Br,Preposition:Br,Conjunction:Br,Comparative:Br},beforeWords:{been:Br,keep:Br,continue:Br,stop:Br,am:Br,be:Br,me:Br,began:Br,start:Br,starts:Br,started:Br,stops:Br,stopped:Br,help:Br,helps:Br,avoid:Br,avoids:Br,love:Br,loves:Br,loved:Br,hate:Br,hates:Br,hated:Br},afterWords:{you:Br,me:Br,her:Br,him:Br,them:Br,their:Br,it:Br,this:Br,there:Br,on:Br,about:Br,for:Br}},zr={beforeTags:Object.assign({},Tr.beforeTags,Or.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Tr.afterTags,Or.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Tr.beforeWords,Or.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Tr.afterWords,Or.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({},Tr.beforeTags,Fr.beforeTags,$r.beforeTags),afterTags:Object.assign({},Tr.afterTags,Fr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Fr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.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({},Tr.beforeTags,Hr),afterTags:Object.assign({},Tr.afterTags,Jr),beforeWords:Object.assign({},Tr.beforeWords,Mr),afterWords:Object.assign({},Tr.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,when:Kr,all:Kr,to:Kr,because:Kr,although:Kr,before:Kr,how:Kr,otherwise:Kr,though:Kr,yet:Kr}};const Ur={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Rr={beforeTags:Object.assign({},Tr.beforeTags,qr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Tr.afterTags,qr.afterTags,Ur.afterTags),beforeWords:Object.assign({},Tr.beforeWords,qr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,qr.afterWords,{to:void 0})};const Zr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qr={},_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"},Xr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Yr={beforeTags:Object.assign({},Or.beforeTags,Fr.beforeTags,Zr),afterTags:Object.assign({},Or.afterTags,Fr.afterTags,Qr),beforeWords:Object.assign({},Or.beforeWords,Fr.beforeWords,_r),afterWords:Object.assign({},Or.afterWords,Fr.afterWords,Xr)},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"},co={"Adj|Gerund":zr,"Adj|Noun":Sr,"Adj|Past":Wr,"Adj|Present":Rr,"Noun|Verb":eo,"Noun|Gerund":Yr,"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="Actor",Po="Verb",Ao="Noun",Eo="LastName",jo="Modal",Io="Participle";var Go=[null,null,{ea:bo,ia:Ao,ic:mo,ly:vo,"'n":Po,"'t":Po},{oed:yo,ued:yo,xed:yo," so":vo,"'ll":jo,"'re":"Copula",azy:mo,eer:Ao,end:Po,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:Io,ven:Io,ten:Io,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:Eo,cede:po,chuk:Eo,czyk:Eo,ects:fo,ends:Po,enko:Eo,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:Eo,oses:fo,ould:jo,some:mo,sson:Eo,tion:bo,tage:Ao,ique:bo,tive:mo,tors:Ao,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:Eo,nssen:Eo,ology:Ao,osome:bo,tment:bo,ports:wo,rough:mo,tches:fo,tieth:"Ordinal",tures:wo,wards:vo,where:vo,archy:Ao,pathy:Ao,opoly:Ao,embly:Ao,phate:Ao,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:Eo,parent:bo,cedent:bo,ionary:bo,cklist:bo,keeper:ko,logist:ko,teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const No="Adjective",Do="Noun",xo="Verb";var Co=[null,null,{},{neo:Do,bio:Do,"de-":xo,"re-":xo,"un-":xo},{anti:Do,auto:Do,faux:No,hexa:Do,kilo:Do,mono:Do,nano:Do,octa:Do,poly:Do,semi:No,tele:Do,"pro-":No,"mis-":xo,"dis-":xo,"pre-":No},{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:No,radio:Do,tetra:Do,"omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:Do}];const To="Adjective",Bo="Infinitive",Oo="PresentTense",zo="Singular",Vo="PastTense",Fo="Adverb",$o="Expression",So="Actor",Ho="Verb",Jo="Noun",Mo="LastName";var Lo={a:[[/.[aeiou]na$/,Jo,"tuna"],[/.[oau][wvl]ska$/,Mo],[/.[^aeiou]ica$/,zo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,To]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Vo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Vo,"rammed"],[/.[aeiou][sg]hed$/,Vo,"gushed"],[/.[aeiou]red$/,Vo,"hired"],[/.[aeiou]r?ried$/,Vo,"hurried"],[/[^aeiou]ard$/,zo,"steward"],[/[aeiou][^aeiou]id$/,To,""],[/.[vrl]id$/,To,"livid"],[/..led$/,Vo,"hurled"],[/.[iao]sed$/,Vo,""],[/[aeiou]n?[cs]ed$/,Vo,""],[/[aeiou][rl]?[mnf]ed$/,Vo,""],[/[aeiou][ns]?c?ked$/,Vo,"bunked"],[/[aeiou]gned$/,Vo],[/[aeiou][nl]?ged$/,Vo],[/.[tdbwxyz]ed$/,Vo],[/[^aeiou][aeiou][tvx]ed$/,Vo],[/.[cdflmnprstv]ied$/,Vo,"emptied"]],e:[[/.[lnr]ize$/,Bo,"antagonize"],[/.[^aeiou]ise$/,Bo,"antagonise"],[/.[aeiou]te$/,Bo,"bite"],[/.[^aeiou][ai]ble$/,To,"fixable"],[/.[^aeiou]eable$/,To,"maleable"],[/.[ts]ive$/,To,"festive"],[/[a-z]-like$/,To,"woman-like"]],h:[[/.[^aeiouf]ish$/,To,"cornish"],[/.v[iy]ch$/,Mo,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,To,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Mo,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,To,"familial"],[/.[^aeiou]ful$/,To,"fitful"],[/.[nrtumcd]al$/,To,"natal"],[/.[^aeiou][ei]al$/,To,"familial"]],m:[[/.[^aeiou]ium$/,zo,"magnesium"],[/[^aeiou]ism$/,zo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,To,"republican"],[/[^aeiou]ician$/,So,"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$/,zo],[/[^i]fer$/,Bo],[/.[^aeiou][ao]pher$/,So],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,To],[/[aeiou].*ist$/,To],[/^[a-z]et$/,Ho]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,Ho],[/.[lstrn]us$/,zo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,zo],[/[a-z]'s$/,Jo],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,Mo]],y:[[/.[cts]hy$/,To],[/.[st]ty$/,To],[/.[tnl]ary$/,To],[/.[oe]ry$/,zo],[/[rdntkbhs]ly$/,Fo],[/.(gg|bb|zz)ly$/,To],[/...lly$/,Fo],[/.[gk]y$/,To],[/[bszmp]{2}y$/,To],[/.[ai]my$/,To],[/[ea]{2}zy$/,To],[/.[^aeiou]ity$/,zo]]};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 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],a=n.match(Xo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Xo,"")}(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},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,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=ai(Qo),si=ai(Ro),li=ai(Zo),ui=ri(oi),ci=ri(ii),di=ri(si),hi=ri(li),gi=ai(Uo),mi=ai(_o);var pi={fromPast:oi,fromPresent:ii,fromGerund:si,fromParticiple:li,toPast:ui,toPresent:ci,toGerund:di,toParticiple:hi,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,""]],yi=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(vi[t].forEach(n=>e[n]=t),e),{});var wi=vi,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=Yo(l,i);else if("PastTense"===n)c=Yo(l,a);else if("PresentTense"===n)c=Yo(l,r);else{if("Gerund"!==n)return e;c=Yo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},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:Yo(i,n),PresentTense:Yo(i,a),Gerund:Yo(i,r),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},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",Gi=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]),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"}],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 Ci=function(e){return e.endsWith("ly")?Gi.has(e)?e.replace(/ically/,"ical"):Di.has(e)?null:xi.hasOwnProperty(e)?xi[e]:ji(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"},{},{},{}],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,Ti);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"]),$i=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,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"]}},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.toLowerCase().trim()).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:Ir,nounToSingular:yi,verbToInfinitive:Ai,getTense:ki,verbConjugate:Ei,adjToSuperlative:$i,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: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"}}}},Mi=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 Li=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(a,"Infinitive","Verb"),Object.assign(s,l),l=Li(r,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(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"},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:Nr},two:{irregularPlurals:mr,models:pi,suffixPatterns:Go,prefixPatterns:Co,endsWith:Lo,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:Dr,clues:go,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=Mi(e)}(Qi);var _i=Qi;const Xi=/^(under|over|mis|re|un|dis|semi)-?/;var Yi=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(Xi.test(r.normal)){let e=r.normal.replace(Xi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},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"]},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,}$/,ds=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hs={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)&&ds.test(o)&&!hs[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-]+$/,Gs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[A-Z]{2,}('s|,)?$/,Ds=/([a-z]\.)+[a-z]\.?$/,xs={I:!0,A:!0};var Cs=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!==Gs.test(n)&&!0!==Ds.test(n)&&!0!==js.test(n)&&!0!==Ns.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 Ts=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||Ts(e[t-1],r),l=l||Ts(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},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),"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||{},Ms=/^(under|over|mis|re|un|dis|semi)-?/,Ls=(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(`\n  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},Ks={tagSwitch:Yi,checkSuffix:ps,checkRegex:ys,checkCase:gs,checkPrefix:vs,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:Cs,neighbours:Os,orgWords:Vs,nounFallback:Fs,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(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,a){if(!n)return null;const r=a.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,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?(Js.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),r([s],u,n,null,"3-[variable]")):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)},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 dl=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"]},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 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)},yl={d:(e,t)=>dl(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"):ul(e,t)},vl=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;yl.hasOwnProperty(i)&&(s=yl[i](a,o,t)),s&&(s=vl(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)",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:"[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:"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)",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: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:"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:"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"}]),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(["preTagger","contractionTwo","postTagger"])}},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}},model:{two:{matches:Al}},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)},Gl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Il(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},Nl={api:function(e){e.prototype.swap=Gl}};return m.plugin(nl),m.plugin(wl),m.plugin(jl),m.plugin(Nl),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 b610545f0..35b52db33 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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.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 j=function(e){if(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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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},C.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 T=C;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;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 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,T,z,F,M,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"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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 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};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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e)){return e.fullPointer.length>0}if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Ze=function(e){let t=e.split(We),n=[];t.forEach(e=>{Ue(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Re(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?a.push(e):a=a.concat(e.split(qe))}),a=Re(a),a};const Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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){jt(e,e.t).length=a-e.t}return 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){jt(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 Ct=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 Tt=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 Bt=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 Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Tt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Dt(r))return null}else{if(!Nt(r))return null}else{if(!It(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,""),Ut.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&&Rt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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 gn={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},bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=bn(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 vn={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:bn,splitAll:yn}}};var wn=function(e,t){let n=e.concat(t),a=bn(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=>fn(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 Pn=function(e,t){let n=bn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},En=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},jn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.difference=jn.not,jn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},jn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=En(e,this.document),this.update(e)};var In={methods:vn,api:function(e){Object.assign(e.prototype,jn)}};var Gn=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};function Nn(e,t,n){return e.splice(t,1,...n),e}const Dn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},xn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Cn=function(e){let t=[];return e.forEach(e=>{for(let n=0;n{let r=Object.assign({},e);r.regs=r.regs.slice(0),a=a.map(t=>xn(e.regs[n],t)),r.regs=Nn(r.regs,n,a),t.push(r)})}}t.push(e)}),t};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 Bn=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=Tn(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Tn(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var On=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t};var zn=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 Vn=function(e,t){for(let n=0;ne.needs.every(e=>a.has(e))),e[n]=e[n].filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))}return e};var Fn=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 $n=function(e,t){let[n,a,r]=e.pointer,o=t[n],i=a>4?a-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const d=e=>""+e+"";for(;ir+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>a&&i{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=Gn(e,t),e=Cn(e);let n=(e=Bn(e)).filter(e=>0===e.needs.length);return{index:On(e),always:n}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=zn(r,t.index);return o=Vn(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),Fn(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;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 r=e.reason||e.match;l.DEBUG_TAGS&&$n(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Sn(u,e.tag,a))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,r),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,r),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const Jn=/ /,Mn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Ln=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.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[0],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(/^#/,""),Ln(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nWn(e,t,n,a))};var Kn=Wn;var qn=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=>Un({id:e})),t}return[Un({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},_n=e=>"[object Array]"===Object.prototype.toString.call(e),Xn=e=>(e=e||"").trim(),Yn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Rn.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 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=Un({});return e.forEach(e=>{if((e=Un(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(Un),t);var t},ea=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},ta=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},na={text:ea,txt:ea,array:ta,flat:ta},aa=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(ea(e,!0)),null):na.hasOwnProperty(t)?na[t](e):e},ra=e=>{Qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},oa=/\//;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),!oa.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)||Un({});return new g$1(t)}add(e,t={}){if(_n(e))return e.forEach(e=>this.add(Xn(e),t)),this;e=Xn(e);let n=Un({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 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 _n(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ra(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 ra(this.json),aa(this.json,e)}debug(){return ra(this.json),aa(this.json,"debug"),this}}const ia=function(e){let t=Yn(e);return new g$1(t)};ia.prototype.plugin=function(e){e(this)};var sa={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const la=function(e){if(sa.hasOwnProperty(e.id))return sa[e.id];if(sa.hasOwnProperty(e.is))return sa[e.is];let t=e._cache.parents.find(e=>sa[e]);return sa[t]};var ua=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:la(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 ca=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=ca(e[t].children),e[t].not=ca(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 ha={one:{setTag:Kn,unTag:qn,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 ia(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ua(n)}}};const ga=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ma={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||""),ga(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 ga(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 pa=function(e){Object.assign(e.prototype,ma)};var fa={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 ba=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(ba.has(e)||!t.hasOwnProperty(n))return 1;if(ba.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:ha,api:pa,lib:fa};const va=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,wa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var ka=function(e){let t=[],n=e.split(wa);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 Sa=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ha=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ja=/['’]/,Ma=/^[a-z]\.([a-z]\.)+/i,La=/^[-+.][0-9]/,Wa=/^'[0-9]{2}/;var Ka=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Sa,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!La.test(e)?"'"===n&&Wa.test(e)?(n="",t):"":(n="",t)))).replace(Ha,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 qa=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]?,?$/,Ra=/^[A-Z]\.,?$/,Za=/[A-Z]{2,}('s|,)?$/,Qa=/([a-z]\.)+[a-z]\.?$/;var _a=function(e){return function(e){return!0===Ua.test(e)||!0===Qa.test(e)||!0===Ra.test(e)||!0===Za.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Xa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=qa(a),a=n(a,t),a=_a(a),e.normal=a};var Ya={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:Da,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(Fa);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=Oa(n),n=Ta(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ka(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 er={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let tr={},nr={};[[["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=>{tr[t]=!0,nr[t]="Abbreviation",void 0!==e[1]&&(nr[t]=[nr[t],e[1]])})});var ar=["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 rr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},or={};Object.keys(rr).forEach((function(e){rr[e].split("").forEach((function(t){or[t]=e}))}));const ir=/\//,sr=/[a-z]\.[a-z]/i,lr=/[0-9]/;var ur=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])),ir.test(n)&&!sr.test(n)&&!lr.test(n)){let t=n.split(ir);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const cr=/^\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"),cr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var hr=function(e){let t=0,n=0,a=e.document;for(let e=0;egr(e,ur),machine:e=>gr(e,dr),normal:e=>gr(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 br={safe:!0,min:3};var yr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=pr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},br,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=fr(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(pn),m.extend(St),m.extend(In),m.extend(ya),m.plugin(be),m.extend(mr),m.plugin(f),m.extend(De),m.extend(yr),m.extend(Pe),m.extend(Hn);var vr={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"},wr={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 kr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Pr=kr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ar=function(e){if(void 0!==Pr[e])return Pr[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 Er=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=Ir(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Gr(wr[e]);Cr.test(e)?Object.keys(t).forEach(t=>{if(Br[t]=e,"Noun|Verb"===e){let e=xr(t,Or);Br[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Tr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Tr[e]="Emoticon"),delete Tr[""],delete Tr.null,delete Tr[" "];const zr="Adjective";var Vr={beforeTags:{Determiner:zr,Possessive:zr},afterTags:{Adjective:zr},beforeWords:{seem:zr,seemed:zr,seems:zr,feel:zr,feels:zr,felt:zr,appear:zr,appears:zr,appeared:zr,also:zr,over:zr,under:zr,too:zr,it:zr,but:zr,still:zr,really:zr,quite:zr,well:zr,very:zr,deeply:zr,profoundly:zr,extremely:zr,so:zr,badly:zr,mostly:zr,totally:zr,awfully:zr,rather:zr,nothing:zr,something:zr,anything:zr},afterWords:{too:zr,also:zr,or:zr}};const Fr="Gerund";var $r={beforeTags:{Adverb:Fr,Preposition:Fr,Conjunction:Fr},afterTags:{Adverb:Fr,Possessive:Fr,Person:Fr,Pronoun:Fr,Determiner:Fr,Copula:Fr,Preposition:Fr,Conjunction:Fr,Comparative:Fr},beforeWords:{been:Fr,keep:Fr,continue:Fr,stop:Fr,am:Fr,be:Fr,me:Fr,began:Fr,start:Fr,starts:Fr,started:Fr,stops:Fr,stopped:Fr,help:Fr,helps:Fr,avoid:Fr,avoids:Fr,love:Fr,loves:Fr,loved:Fr,hate:Fr,hates:Fr,hated:Fr},afterWords:{you:Fr,me:Fr,her:Fr,him:Fr,them:Fr,their:Fr,it:Fr,this:Fr,there:Fr,on:Fr,about:Fr,for:Fr}};var Sr={beforeTags:Object.assign({},Vr.beforeTags,$r.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Vr.afterTags,$r.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Vr.beforeWords,$r.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Vr.afterWords,$r.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Hr="Singular";var Jr={beforeTags:{Determiner:Hr,Possessive:Hr,Acronym:Hr,Noun:Hr,Adjective:Hr,PresentTense:Hr,Gerund:Hr,PastTense:Hr,Infinitive:Hr,Date:Hr},afterTags:{Value:Hr,Modal:Hr,Copula:Hr,PresentTense:Hr,PastTense:Hr,Demonym:Hr},beforeWords:{the:Hr,with:Hr,without:Hr,of:Hr,for:Hr,any:Hr,all:Hr,on:Hr,cut:Hr,cuts:Hr,save:Hr,saved:Hr,saves:Hr,make:Hr,makes:Hr,made:Hr,minus:Hr,plus:Hr,than:Hr,another:Hr,versus:Hr,neither:Hr,favorite:Hr,best:Hr,daily:Hr,weekly:Hr,linear:Hr,binary:Hr,mobile:Hr,lexical:Hr,technical:Hr,computer:Hr,scientific:Hr,formal:Hr},afterWords:{of:Hr,system:Hr,aid:Hr,method:Hr,utility:Hr,tool:Hr,reform:Hr,therapy:Hr,philosophy:Hr,room:Hr,authority:Hr,says:Hr,said:Hr,wants:Hr,wanted:Hr}};const Mr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Lr={beforeTags:Object.assign({},Vr.beforeTags,Jr.beforeTags,Mr.beforeTags),afterTags:Object.assign({},Vr.afterTags,Jr.afterTags),beforeWords:Object.assign({},Vr.beforeWords,Jr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vr.afterWords,Jr.afterWords)};const Wr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Kr={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"},Ur={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Rr={beforeTags:Object.assign({},Vr.beforeTags,Wr),afterTags:Object.assign({},Vr.afterTags,Kr),beforeWords:Object.assign({},Vr.beforeWords,qr),afterWords:Object.assign({},Vr.afterWords,Ur)};const Zr="Infinitive";var Qr={beforeTags:{Modal:Zr,Adverb:Zr,Negative:Zr,Plural:Zr},afterTags:{Determiner:Zr,Adverb:Zr,Possessive:Zr,Preposition:Zr},beforeWords:{i:Zr,we:Zr,you:Zr,they:Zr,to:Zr,please:Zr,will:Zr,have:Zr,had:Zr,would:Zr,could:Zr,should:Zr,do:Zr,did:Zr,does:Zr,can:Zr,must:Zr,us:Zr,me:Zr,he:Zr,she:Zr,it:Zr,being:Zr},afterWords:{the:Zr,me:Zr,you:Zr,him:Zr,her:Zr,them:Zr,it:Zr,a:Zr,an:Zr,up:Zr,down:Zr,by:Zr,out:Zr,off:Zr,when:Zr,all:Zr,to:Zr,because:Zr,although:Zr,before:Zr,how:Zr,otherwise:Zr,though:Zr,yet:Zr}};const _r={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xr={beforeTags:Object.assign({},Vr.beforeTags,Qr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Vr.afterTags,Qr.afterTags,_r.afterTags),beforeWords:Object.assign({},Vr.beforeWords,Qr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vr.afterWords,Qr.afterWords,{to:void 0})};const Yr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},eo={},to={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},no={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ao={beforeTags:Object.assign({},$r.beforeTags,Jr.beforeTags,Yr),afterTags:Object.assign({},$r.afterTags,Jr.afterTags,eo),beforeWords:Object.assign({},$r.beforeWords,Jr.beforeWords,to),afterWords:Object.assign({},$r.afterWords,Jr.afterWords,no)};var ro={beforeTags:Object.assign({},Qr.beforeTags,Jr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Qr.afterTags,Jr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Qr.beforeWords,Jr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Qr.afterWords,Jr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oo="Person";var io={beforeTags:{Honorific:oo,Person:oo,Preposition:oo},afterTags:{Person:oo,ProperNoun:oo,Verb:oo},ownTags:{ProperNoun:oo},beforeWords:{hi:oo,hey:oo,yo:oo,dear:oo,hello:oo},afterWords:{said:oo,says:oo,told:oo,tells:oo,feels:oo,felt:oo,seems:oo,thinks:oo,thought:oo,spends:oo,spendt:oo,plays:oo,played:oo,sing:oo,sang:oo,learn:oo,learned:oo,wants:oo,wanted:oo}};const so="Month",lo={beforeTags:{Date:so,Value:so},afterTags:{Date:so,Value:so},beforeWords:{by:so,in:so,on:so,during:so,after:so,before:so,between:so,until:so,til:so,sometime:so,of:so,this:so,next:so,last:so,previous:so,following:so},afterWords:{sometime:so,in:so,of:so,until:so,the:so}};var uo={beforeTags:Object.assign({},io.beforeTags,lo.beforeTags),afterTags:Object.assign({},io.afterTags,lo.afterTags),beforeWords:Object.assign({},io.beforeWords,lo.beforeWords),afterWords:Object.assign({},io.afterWords,lo.afterWords)};const co={Place:"Place"},ho={Place:"Place",Abbreviation:"Place"},go={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},mo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const po={"Adj|Gerund":Sr,"Adj|Noun":Lr,"Adj|Past":Rr,"Adj|Present":Xr,"Noun|Verb":ro,"Noun|Gerund":ao,"Person|Noun":{beforeTags:Object.assign({},Jr.beforeTags,io.beforeTags),afterTags:Object.assign({},Jr.afterTags,io.afterTags),beforeWords:Object.assign({},Jr.beforeWords,io.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Jr.afterWords,io.afterWords)},"Person|Date":uo,"Person|Verb":{beforeTags:Object.assign({},io.beforeTags,Qr.beforeTags),afterTags:Object.assign({},io.afterTags,Qr.afterTags),beforeWords:Object.assign({},io.beforeWords,Qr.beforeWords),afterWords:Object.assign({},io.afterWords,Qr.afterWords)},"Person|Place":{beforeTags:Object.assign({},co,io.beforeTags),afterTags:Object.assign({},ho,io.afterTags),beforeWords:Object.assign({},go,io.beforeWords),afterWords:Object.assign({},mo,io.afterWords)}},fo=(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:fo(po["Noun|Verb"].beforeWords,{}),afterWords:fo(po["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:fo(po["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:fo(po["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var bo=po;const yo="Adjective",vo="Infinitive",wo="PresentTense",ko="Singular",Po="PastTense",Ao="Adverb",Eo="Plural",jo="Verb",Io="LastName",Go="Participle";var No=[null,null,{ea:ko,ia:"Noun",ic:yo,ly:Ao,"'n":jo,"'t":jo},{oed:Po,ued:Po,xed:Po," so":Ao,"'ll":"Modal","'re":"Copula",azy:yo,eer:"Noun",end:jo,ped:Po,ffy:yo,ify:vo,ing:"Gerund",ize:vo,ibe:vo,lar:yo,mum:yo,nes:wo,nny:yo,ous:yo,que:yo,rol:ko,sis:ko,ogy:ko,oid:ko,ian:ko,zes:wo,eld:Po,ken:Go,ven:Go,ten:Go,ect:vo,ict:vo,ign:vo,ful:yo,bal:yo},{amed:Po,aped:Po,ched:Po,lked:Po,rked:Po,reed:Po,nded:Po,mned:yo,cted:Po,dged:Po,ield:ko,akis:Io,cede:vo,chuk:Io,czyk:Io,ects:wo,ends:jo,enko:Io,ette:ko,wner:ko,fies:wo,fore:Ao,gate:vo,gone:yo,ices:Eo,ints:Eo,ruct:vo,ines:Eo,ions:Eo,less:yo,llen:yo,made:yo,nsen:Io,oses:wo,ould:"Modal",some:yo,sson:Io,tion:ko,tage:"Noun",ique:ko,tive:yo,tors:"Noun",vice:ko,lier:ko,fier:ko,wned:Po,gent:ko,tist:ko,pist:ko,rist:ko,mist:ko,yist:ko,vist:ko,lite:ko,site:ko,rite:ko,mite:ko,bite:ko,mate:ko,date:ko,ndal:ko,vent:ko,uist:ko,gist:ko,note:ko,cide:ko,wide:yo,vide:vo,ract:vo,duce:vo,pose:vo,eive:vo,lyze:vo,lyse:vo,iant:yo,nary:yo},{elist:ko,holic:ko,phite:ko,tized:Po,urned:Po,eased:Po,ances:Eo,bound:yo,ettes:Eo,fully:Ao,ishes:wo,ities:Eo,marek:Io,nssen:Io,ology:"Noun",osome:ko,tment:ko,ports:Eo,rough:yo,tches:wo,tieth:"Ordinal",tures:Eo,wards:Ao,where:Ao,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:ko,scent:ko,onist:ko,anist:ko,alist:ko,olist:ko,icist:ko,ounce:vo,iable:yo,borne:yo,gnant:yo,inant:yo,igent:yo,atory:yo,rient:ko,dient:ko},{auskas:Io,parent:ko,cedent:ko,ionary:ko,cklist:ko,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Io,borough:"Place",sdottir:Io}];const Do="Adjective";var xo=[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 Co="Adjective",To="Infinitive",Bo="PresentTense",Oo="Singular",zo="PastTense",Vo="Expression",Fo="LastName";var $o={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Fo],[/.[^aeiou]ica$/,Oo,"harmonica"],[/^([hyj]a+)+$/,Vo,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Oo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,To,"antagonize"],[/.[^aeiou]ise$/,To,"antagonise"],[/.[aeiou]te$/,To,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,Fo,"..ovich"],[/^ug?h+$/,Vo,"ughh"],[/^uh[ -]?oh$/,Vo,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Fo,"polish-male"]],k:[[/^(k){2}$/,Vo,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Oo,"magnesium"],[/[^aeiou]ism$/,Oo,"schism"],[/^[hu]m+$/,Vo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Vo,"noooo"],[/^(yo)+$/,Vo,"yoo"],[/^wo{2,}[pt]?$/,Vo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Oo],[/[^i]fer$/,To],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Oo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,Oo],[/[a-z]'s$/,"Noun"],[/^yes+$/,Vo]],v:[[/.[^aeiou][ai][kln]ov$/,Fo]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Oo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,"Adverb"],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Oo]]};const So="Verb",Ho="Noun";var Jo={leftTags:[["Adjective",Ho],["Possessive",Ho],["Determiner",Ho],["Adverb",So],["Pronoun",So],["Value",Ho],["Ordinal",Ho],["Modal",So],["Superlative",Ho],["Demonym",Ho],["Honorific","Person"]],leftWords:[["i",So],["first",Ho],["it",So],["there",So],["not",So],["because",Ho],["if",Ho],["but",Ho],["who",So],["this",Ho],["his",Ho],["when",Ho],["you",So],["very","Adjective"],["old",Ho],["never",So],["before",Ho],["a","Singular"],["the",Ho],["been",So]],rightTags:[["Copula",Ho],["PastTense",Ho],["Conjunction",Ho],["Modal",Ho]],rightWords:[["there",So],["me",So],["man","Adjective"],["only",So],["him",So],["it",So],["were",Ho],["took",Ho],["himself",So],["went",Ho],["who",Ho],["jr","Person"]]},Mo={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"},Lo={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"},Wo={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"},Ko={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"},qo={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 Uo=/^.([0-9]+)/;var Ro=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(Uo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Uo,"")}(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]+)/,_o=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 Xo=function(e={}){return(e=Object.assign({},e)).rules=_o(e.rules),e.rules=Zo(e.rules),e.rev&&(e.rev=_o(e.rev),e.rev=Zo(e.rev)),e.exceptions=_o(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Yo=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 ei=Xo({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"}),ti=Xo(Ko),ni=Xo(Lo),ai=Xo(Wo),ri=Yo(ei),oi=Yo(ti),ii=Yo(ni),si=Yo(ai),li=Xo(Mo),ui=Xo(qo);var ci={fromPast:ei,fromPresent:ti,fromGerund:ni,fromParticiple:ai,toPast:ri,toPresent:oi,toGerund:ii,toParticiple:si,toComparative:li,toSuperlative:ui,fromComparative:Yo(li),fromSuperlative:Yo(ui)},di=["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),{}),hi=[[/([^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 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(mi[t].forEach(n=>e[n]=t),e),{});var pi=mi;var fi=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 bi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var yi=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=fi(e)),bi.hasOwnProperty(e))c=bi[e];else if("Participle"===n)c=Ro(l,i);else if("PastTense"===n)c=Ro(l,a);else if("PresentTense"===n)c=Ro(l,r);else{if("Gerund"!==n)return e;c=Ro(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var vi=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:Ro(i,n),PresentTense:Ro(i,a),Gerund:Ro(i,r),FutureTense:"will "+e},u=Ro(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var wi=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 ki="ically",Pi=new Set(["analyt"+ki,"chem"+ki,"class"+ki,"clin"+ki,"crit"+ki,"ecolog"+ki,"electr"+ki,"empir"+ki,"frant"+ki,"grammat"+ki,"ident"+ki,"ideolog"+ki,"log"+ki,"mag"+ki,"mathemat"+ki,"mechan"+ki,"med"+ki,"method"+ki,"method"+ki,"mus"+ki,"phys"+ki,"phys"+ki,"polit"+ki,"pract"+ki,"rad"+ki,"satir"+ki,"statist"+ki,"techn"+ki,"technolog"+ki,"theoret"+ki,"typ"+ki,"vert"+ki,"whims"+ki]),Ai=[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"}],Ei=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 Ii=function(e){return e.endsWith("ly")?Pi.has(e)?e.replace(/ically/,"ical"):Ei.has(e)?null:ji.hasOwnProperty(e)?ji[e]:wi(e,Ai)||e:null};const Gi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ni={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Di=function(e){if(Ni.hasOwnProperty(e))return Ni[e];let t=wi(e,Gi);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"}],Ci={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"},Ti=new Set(["terrible","annoying"]);const Bi=function(e,t){const n=t.two.models.toSuperlative;return Ro(e,n)},Oi=function(e,t){const n=t.two.models.toComparative;return Ro(e,n)};var zi={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 Vi={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===zi.hasOwnProperty(i)&&zi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:xr,nounToSingular:gi,verbToInfinitive:yi,getTense:fi,verbConjugate:vi,adjToSuperlative:Bi,adjToComparative:Oi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Ro(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Ro(e,n)},advToAdjective:Ii,adjToAdverb:Di,adjToNoun:function(e){if(Ci.hasOwnProperty(e))return Ci[e];if(Ti.has(e))return null;let t=wi(e,xi);return t||e+"ness"}}}};var Fi=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 Si=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 Hi={two:{models:ci}};const Ji={"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"},Mi=function(e,t){const n={model:t,methods:Vi};let{lex:a,_multi:r}=Vi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Li=function(e,t,n){let a=vi(e,Hi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Wi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Ji[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Li(r,a,!1),"Adj|Present"===o&&(Li(r,a,!0),function(e,t,n){let a=Bi(e,n);t[a]=t[a]||"Superlative";let r=Oi(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=yi(r,Hi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=yi(r,Hi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Mi(n,t)};let Ki={one:{_multiCache:{},lexicon:Tr},two:{irregularPlurals:vr,models:ci,suffixPatterns:No,prefixPatterns:xo,endsWith:$o,neighbours:Jo,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:bo,uncountable:{},orgWords:di}};Ki=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=Mi(e.one.lexicon,e)).one.lexicon,e),e=Wi(e.two.switches,e),e=Si(e),e=Fi(e)}(Ki);var qi=Ki;const Ui=/^(under|over|mis|re|un|dis|semi)-?/;var Ri=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(Ui.test(r.normal)){let e=r.normal.replace(Ui,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Zi=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"]},_i=new Set(["formulas","koalas","israelis","menus"]),Xi=["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 Yi=function(e){if(!e||e.length<=3)return!1;if(_i.has(e))return!0;let t=e[e.length-1];return Qi.hasOwnProperty(t)?Qi[t].find(t=>e.endsWith(t)):"s"===t&&!Xi.find(t=>e.endsWith(t))};const es=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ts=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(Yi(e.normal)?Zi(e,"Plural","3-plural-guess"):Zi(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=fi(e.normal);t&&Zi(e,t,"3-verb-tense-guess")}}(a)};const ns=/^\p{Lu}[\p{Ll}'’]/u,as=/[0-9]/,rs=["Date","Month","WeekDay","Unit"],os=/^[IVXLCDM]{2,}$/,is=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ss={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ls=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===ns.test(o)&&!1===as.test(o)?rs.find(e=>a.tags.has(e))?null:(ts(e,t,n),a.tags.has("Noun")||a.tags.clear(),Zi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&os.test(o)&&is.test(o)&&!ss[a.normal]?(Zi(a,"RomanNumeral","2-xvii"),!0):null};const us=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 cs=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=us(a.normal,n.two.suffixPatterns);if(null!==e)return Zi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=us(a.implicit,n.two.suffixPatterns),null!==e))return Zi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ds=/['‘’‛‵′`´]/,hs=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 Zi(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"]),fs=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"))},bs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ys=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 a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(fs(r)||fs(o))return Zi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(bs(r)||bs(o))return Zi(n,"Year","2-tagYear-close");if(ys(e[t-2])||ys(e[t+2]))return Zi(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 Zi(n,"Year","2-tagYear-noun")}}}return null};const ws=/^[A-Z]('s|,)?$/,ks=/^[A-Z-]+$/,Ps=/([A-Z]\.)+[A-Z]?,?$/,As=/[A-Z]{2,}('s|,)?$/,Es=/([a-z]\.)+[a-z]\.?$/,js={I:!0,A:!0};var Is=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===ks.test(n)||n.length>5||js.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ps.test(n)&&!0!==Es.test(n)&&!0!==ws.test(n)&&!0!==As.test(n))}(a,n)?(a.tags.clear(),Zi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!js.hasOwnProperty(a.text)&&ws.test(a.text)?(a.tags.clear(),Zi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Zi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&ks.test(a.text)&&a.text.length<=6?(Zi(a,"Acronym","3-titlecase-acronym"),!0):null};const Gs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ns=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: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||Gs(e[t-1],r),l=l||Gs(e[t+1],o),l=l||Ns(e[t-1],a),l=l||Ns(e[t+1],i),l)return Zi(s,l,"3-[neighbour]"),ts(e,t,n),e[t].confidence=.2,!0}return null};const xs=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 Cs=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]&&xs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&xs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Ts=function(e,t,n){0===e[t].tags.size&&(Zi(e[t],"Noun","3-[fallback]"),ts(e,t,n),e[t].confidence=.1)};const Bs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Os=(e,t,n)=>0!==t||e[1]?null:n;var zs={"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)||Os(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Bs(e,t)||Os(e,t,"PresentTense"),"Person|Noun":(e,t)=>Bs(e,t),"Person|Verb":(e,t)=>0!==t&&Bs(e,t)};const Vs="undefined"!=typeof process&&process.env?process.env:self.env||{},Fs=/^(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&&Vs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ss=(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&&Vs.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Hs={tagSwitch:Ri,checkSuffix:cs,checkRegex:gs,checkCase:ls,checkPrefix:ms,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")&&(Zi(o,"Verb","3-[prefix]"),Zi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Zi(o,"Adjective","3-[prefix]"),Zi(o,"Prefix","3-[prefix]")))},checkYear:vs},Js={checkAcronym:Is,neighbours:Ds,orgWords:Cs,nounFallback:Ts,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(Fs.test(l)&&!o[l]&&(l=l.replace(Fs,"")),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||Ss(e[t-1],n.beforeTags,r),o=o||Ss(e[t+1],n.afterTags,r),o}(e,t,i[o],a);zs[o]&&(u=zs[o](e,t)||u),u?(Vs.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),r([s],u,n,null,"3-[variable]")):Vs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Ms=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 Ks={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: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 al=/'/;var rl=function(e,t){let n=e[t].normal.split(al)[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 ol=/'/;var il=function(e,t){let n=e[t].normal.split(ol)[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 sl=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 ll={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ul={in:!0,by:!0,for:!0};var cl=(e,t)=>{let n=e[t];if(ll.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===ul[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 dl=/'/,hl=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)},gl={d:(e,t)=>il(e,t),t:(e,t)=>sl(e,t),s:(e,t,n)=>cl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):rl(e,t)},ml=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===dl.test(a[o].normal)&&([,i]=a[o].normal.split(dl));let s=null;gl.hasOwnProperty(i)&&(s=gl[i](a,o,t)),s&&(s=ml(s,e),nl(n,[r,o],s),hl(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=tl.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=el},hooks:["contractionTwo"]};const fl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const bl=["i","we","they"];let yl=[].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:"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)",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:fl+" #Person",tag:"Person",reason:"randy-smith"},{match:fl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${fl}]`,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: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"}]);let vl=null;var wl={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;vl=vl||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(vl),e.uncache(),e}},model:{two:{matches:yl}},hooks:["postTagger"]};var kl=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 Pl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?kl(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 Al={api:function(e){e.prototype.swap=Pl}};m.plugin(_s),m.plugin(pl),m.plugin(wl),m.plugin(Al);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]);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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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=(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 j=function(e){if(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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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},C.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 T=C;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;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 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,T,z,F,M,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"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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 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};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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e)){return e.fullPointer.length>0}if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Ze=function(e){let t=e.split(We),n=[];t.forEach(e=>{Ue(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Re(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?a.push(e):a=a.concat(e.split(qe))}),a=Re(a),a};const Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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){jt(e,e.t).length=a-e.t}return 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){jt(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 Ct=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 Tt=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 Bt=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 Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Tt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Dt(r))return null}else{if(!Nt(r))return null}else{if(!It(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,""),Ut.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&&Rt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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 gn={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},bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=bn(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 vn={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:bn,splitAll:yn}}};var wn=function(e,t){let n=e.concat(t),a=bn(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=>fn(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 Pn=function(e,t){let n=bn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},En=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},jn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.difference=jn.not,jn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},jn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=En(e,this.document),this.update(e)};var In={methods:vn,api:function(e){Object.assign(e.prototype,jn)}};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 Nn=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),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(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)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Dn=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 xn=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.find(e=>a.has(e)))})};var Cn=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 Tn=function(e,t){let[n,a,r]=e.pointer,o=t[n],i=a>4?a-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const d=e=>""+e+"";for(;ir+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>a&&i{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=Nn(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=Dn(r,t.hooks);return o=xn(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),Cn(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;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 r=e.reason||e.match;l.DEBUG_TAGS&&Tn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Bn(u,e.tag,a))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,r),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,r),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const zn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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.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[0],t,r),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),zn.test(t))!function(e,t,n,a){let r=t.split(zn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Fn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,a))};var Sn=$n;var Hn=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=>Jn({id:e})),t}return[Jn({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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Un=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Ln(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=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):(Wn(t=e).forEach(Jn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Wn(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},Zn=function(e){let t=Wn(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},Qn={text:Rn,txt:Rn,array:Zn,flat:Zn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},Xn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Jn({});return new g$1(t)}add(e,t={}){if(Kn(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 Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(this.json);let e=Wn(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 Xn(this.json),_n(this.json,e)}debug(){return Xn(this.json),_n(this.json,"debug"),this}}const ea=function(e){let t=Un(e);return new g$1(t)};ea.prototype.plugin=function(e){e(this)};var ta={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const na=function(e){if(ta.hasOwnProperty(e.id))return ta[e.id];if(ta.hasOwnProperty(e.is))return ta[e.is];let t=e._cache.parents.find(e=>ta[e]);return ta[t]};var aa=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:na(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 ra=function(e){return e?"string"==typeof e?[e]:e:[]};var oa=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=ra(e[t].children),e[t].not=ra(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 ia={one:{setTag:Sn,unTag:Hn,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=oa(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 ea(t).cache().fillDown().out("array")}(Object.assign({},t,e));return aa(n)}}};const sa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var la={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||""),sa(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 sa(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 ua=function(e){Object.assign(e.prototype,la)};var ca={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 da=new Set(["Auxiliary","Possessive"]);var ha={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(da.has(e)||!t.hasOwnProperty(n))return 1;if(da.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:ia,api:ua,lib:ca};const ga=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ma=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var pa=function(e){let t=[],n=e.split(ma);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 Ba=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Oa=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,za=/['’]/,Va=/^[a-z]\.([a-z]\.)+/i,Fa=/^[-+.][0-9]/,$a=/^'[0-9]{2}/;var Sa=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ba,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fa.test(e)?"'"===n&&$a.test(e)?(n="",t):"":(n="",t)))).replace(Oa,r=>(a=r,za.test(r)&&/[sn]['’]$/.test(t)&&!1===za.test(n)?(a=a.replace(za,""),"'"):!0===Va.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Ha=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 Ja=/([A-Z]\.)+[A-Z]?,?$/,Ma=/^[A-Z]\.,?$/,La=/[A-Z]{2,}('s|,)?$/,Wa=/([a-z]\.)+[a-z]\.?$/;var Ka=function(e){return function(e){return!0===Ja.test(e)||!0===Wa.test(e)||!0===Ma.test(e)||!0===La.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var qa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ha(a),a=n(a,t),a=Ka(a),e.normal=a};var Ua={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:Aa,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(Ca);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=Na(n),n=Ia(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Sa(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})}}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Za={},Qa={};[[["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=>{Za[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])})});var _a=["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 Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Ya={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){Ya[t]=e}))}));const er=/\//,tr=/[a-z]\.[a-z]/i,nr=/[0-9]/;var ar=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])),er.test(n)&&!tr.test(n)&&!nr.test(n)){let t=n.split(er);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const rr=/^\p{Letter}+-\p{Letter}+$/u;var or=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"),rr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var ir=function(e){let t=0,n=0,a=e.document;for(let e=0;esr(e,ar),machine:e=>sr(e,or),normal:e=>sr(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 dr={safe:!0,min:3};var hr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ur},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},dr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=cr(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(pn),m.extend(St),m.extend(In),m.extend(ha),m.plugin(be),m.extend(lr),m.plugin(f),m.extend(De),m.extend(hr),m.extend(Pe),m.extend(On);var gr={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"},mr={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 pr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",fr=pr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var br=function(e){if(void 0!==fr[e])return fr[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 yr=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=wr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=kr(mr[e]);jr.test(e)?Object.keys(t).forEach(t=>{if(Gr[t]=e,"Noun|Verb"===e){let e=Er(t,Nr);Gr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ir[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ir[e]="Emoticon"),delete Ir[""],delete Ir.null,delete Ir[" "];const Dr="Adjective";var xr={beforeTags:{Determiner:Dr,Possessive:Dr},afterTags:{Adjective:Dr},beforeWords:{seem:Dr,seemed:Dr,seems:Dr,feel:Dr,feels:Dr,felt:Dr,appear:Dr,appears:Dr,appeared:Dr,also:Dr,over:Dr,under:Dr,too:Dr,it:Dr,but:Dr,still:Dr,really:Dr,quite:Dr,well:Dr,very:Dr,deeply:Dr,profoundly:Dr,extremely:Dr,so:Dr,badly:Dr,mostly:Dr,totally:Dr,awfully:Dr,rather:Dr,nothing:Dr,something:Dr,anything:Dr},afterWords:{too:Dr,also:Dr,or:Dr}};const Cr="Gerund";var Tr={beforeTags:{Adverb:Cr,Preposition:Cr,Conjunction:Cr},afterTags:{Adverb:Cr,Possessive:Cr,Person:Cr,Pronoun:Cr,Determiner:Cr,Copula:Cr,Preposition:Cr,Conjunction:Cr,Comparative:Cr},beforeWords:{been:Cr,keep:Cr,continue:Cr,stop:Cr,am:Cr,be:Cr,me:Cr,began:Cr,start:Cr,starts:Cr,started:Cr,stops:Cr,stopped:Cr,help:Cr,helps:Cr,avoid:Cr,avoids:Cr,love:Cr,loves:Cr,loved:Cr,hate:Cr,hates:Cr,hated:Cr},afterWords:{you:Cr,me:Cr,her:Cr,him:Cr,them:Cr,their:Cr,it:Cr,this:Cr,there:Cr,on:Cr,about:Cr,for:Cr}};var Br={beforeTags:Object.assign({},xr.beforeTags,Tr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},xr.afterTags,Tr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},xr.beforeWords,Tr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},xr.afterWords,Tr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Or="Singular";var zr={beforeTags:{Determiner:Or,Possessive:Or,Acronym:Or,Noun:Or,Adjective:Or,PresentTense:Or,Gerund:Or,PastTense:Or,Infinitive:Or,Date:Or},afterTags:{Value:Or,Modal:Or,Copula:Or,PresentTense:Or,PastTense:Or,Demonym:Or},beforeWords:{the:Or,with:Or,without:Or,of:Or,for:Or,any:Or,all:Or,on:Or,cut:Or,cuts:Or,save:Or,saved:Or,saves:Or,make:Or,makes:Or,made:Or,minus:Or,plus:Or,than:Or,another:Or,versus:Or,neither:Or,favorite:Or,best:Or,daily:Or,weekly:Or,linear:Or,binary:Or,mobile:Or,lexical:Or,technical:Or,computer:Or,scientific:Or,formal:Or},afterWords:{of:Or,system:Or,aid:Or,method:Or,utility:Or,tool:Or,reform:Or,therapy:Or,philosophy:Or,room:Or,authority:Or,says:Or,said:Or,wants:Or,wanted:Or}};const Vr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fr={beforeTags:Object.assign({},xr.beforeTags,zr.beforeTags,Vr.beforeTags),afterTags:Object.assign({},xr.afterTags,zr.afterTags),beforeWords:Object.assign({},xr.beforeWords,zr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},xr.afterWords,zr.afterWords)};const $r={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Sr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Hr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Jr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Mr={beforeTags:Object.assign({},xr.beforeTags,$r),afterTags:Object.assign({},xr.afterTags,Sr),beforeWords:Object.assign({},xr.beforeWords,Hr),afterWords:Object.assign({},xr.afterWords,Jr)};const Lr="Infinitive";var Wr={beforeTags:{Modal:Lr,Adverb:Lr,Negative:Lr,Plural:Lr},afterTags:{Determiner:Lr,Adverb:Lr,Possessive:Lr,Preposition:Lr},beforeWords:{i:Lr,we:Lr,you:Lr,they:Lr,to:Lr,please:Lr,will:Lr,have:Lr,had:Lr,would:Lr,could:Lr,should:Lr,do:Lr,did:Lr,does:Lr,can:Lr,must:Lr,us:Lr,me:Lr,he:Lr,she:Lr,it:Lr,being:Lr},afterWords:{the:Lr,me:Lr,you:Lr,him:Lr,her:Lr,them:Lr,it:Lr,a:Lr,an:Lr,up:Lr,down:Lr,by:Lr,out:Lr,off:Lr,when:Lr,all:Lr,to:Lr,because:Lr,although:Lr,before:Lr,how:Lr,otherwise:Lr,though:Lr,yet:Lr}};const Kr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var qr={beforeTags:Object.assign({},xr.beforeTags,Wr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},xr.afterTags,Wr.afterTags,Kr.afterTags),beforeWords:Object.assign({},xr.beforeWords,Wr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},xr.afterWords,Wr.afterWords,{to:void 0})};const Ur={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Rr={},Zr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Qr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var _r={beforeTags:Object.assign({},Tr.beforeTags,zr.beforeTags,Ur),afterTags:Object.assign({},Tr.afterTags,zr.afterTags,Rr),beforeWords:Object.assign({},Tr.beforeWords,zr.beforeWords,Zr),afterWords:Object.assign({},Tr.afterWords,zr.afterWords,Qr)};var Xr={beforeTags:Object.assign({},Wr.beforeTags,zr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Wr.afterTags,zr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Wr.beforeWords,zr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Wr.afterWords,zr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Yr="Person";var eo={beforeTags:{Honorific:Yr,Person:Yr,Preposition:Yr},afterTags:{Person:Yr,ProperNoun:Yr,Verb:Yr},ownTags:{ProperNoun:Yr},beforeWords:{hi:Yr,hey:Yr,yo:Yr,dear:Yr,hello:Yr},afterWords:{said:Yr,says:Yr,told:Yr,tells:Yr,feels:Yr,felt:Yr,seems:Yr,thinks:Yr,thought:Yr,spends:Yr,spendt:Yr,plays:Yr,played:Yr,sing:Yr,sang:Yr,learn:Yr,learned:Yr,wants:Yr,wanted:Yr}};const to="Month",no={beforeTags:{Date:to,Value:to},afterTags:{Date:to,Value:to},beforeWords:{by:to,in:to,on:to,during:to,after:to,before:to,between:to,until:to,til:to,sometime:to,of:to,this:to,next:to,last:to,previous:to,following:to},afterWords:{sometime:to,in:to,of:to,until:to,the:to}};var ao={beforeTags:Object.assign({},eo.beforeTags,no.beforeTags),afterTags:Object.assign({},eo.afterTags,no.afterTags),beforeWords:Object.assign({},eo.beforeWords,no.beforeWords),afterWords:Object.assign({},eo.afterWords,no.afterWords)};const ro={Place:"Place"},oo={Place:"Place",Abbreviation:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const lo={"Adj|Gerund":Br,"Adj|Noun":Fr,"Adj|Past":Mr,"Adj|Present":qr,"Noun|Verb":Xr,"Noun|Gerund":_r,"Person|Noun":{beforeTags:Object.assign({},zr.beforeTags,eo.beforeTags),afterTags:Object.assign({},zr.afterTags,eo.afterTags),beforeWords:Object.assign({},zr.beforeWords,eo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},zr.afterWords,eo.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},eo.beforeTags,Wr.beforeTags),afterTags:Object.assign({},eo.afterTags,Wr.afterTags),beforeWords:Object.assign({},eo.beforeWords,Wr.beforeWords),afterWords:Object.assign({},eo.afterWords,Wr.afterWords)},"Person|Place":{beforeTags:Object.assign({},ro,eo.beforeTags),afterTags:Object.assign({},oo,eo.afterTags),beforeWords:Object.assign({},io,eo.beforeWords),afterWords:Object.assign({},so,eo.afterWords)}},uo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};lo["Plural|Verb"]={beforeWords:uo(lo["Noun|Verb"].beforeWords,{}),afterWords:uo(lo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:uo(lo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:uo(lo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var co=lo;const ho="Adjective",go="Infinitive",mo="PresentTense",po="Singular",fo="PastTense",bo="Adverb",yo="Plural",vo="Verb",wo="LastName",ko="Participle";var Po=[null,null,{ea:po,ia:"Noun",ic:ho,ly:bo,"'n":vo,"'t":vo},{oed:fo,ued:fo,xed:fo," so":bo,"'ll":"Modal","'re":"Copula",azy:ho,eer:"Noun",end:vo,ped:fo,ffy:ho,ify:go,ing:"Gerund",ize:go,ibe:go,lar:ho,mum:ho,nes:mo,nny:ho,ous:ho,que:ho,rol:po,sis:po,ogy:po,oid:po,ian:po,zes:mo,eld:fo,ken:ko,ven:ko,ten:ko,ect:go,ict:go,ign:go,ful:ho,bal:ho},{amed:fo,aped:fo,ched:fo,lked:fo,rked:fo,reed:fo,nded:fo,mned:ho,cted:fo,dged:fo,ield:po,akis:wo,cede:go,chuk:wo,czyk:wo,ects:mo,ends:vo,enko:wo,ette:po,wner:po,fies:mo,fore:bo,gate:go,gone:ho,ices:yo,ints:yo,ruct:go,ines:yo,ions:yo,less:ho,llen:ho,made:ho,nsen:wo,oses:mo,ould:"Modal",some:ho,sson:wo,tion:po,tage:"Noun",ique:po,tive:ho,tors:"Noun",vice:po,lier:po,fier:po,wned:fo,gent:po,tist:po,pist:po,rist:po,mist:po,yist:po,vist:po,lite:po,site:po,rite:po,mite:po,bite:po,mate:po,date:po,ndal:po,vent:po,uist:po,gist:po,note:po,cide:po,wide:ho,vide:go,ract:go,duce:go,pose:go,eive:go,lyze:go,lyse:go,iant:ho,nary:ho},{elist:po,holic:po,phite:po,tized:fo,urned:fo,eased:fo,ances:yo,bound:ho,ettes:yo,fully:bo,ishes:mo,ities:yo,marek:wo,nssen:wo,ology:"Noun",osome:po,tment:po,ports:yo,rough:ho,tches:mo,tieth:"Ordinal",tures:yo,wards:bo,where:bo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:po,scent:po,onist:po,anist:po,alist:po,olist:po,icist:po,ounce:go,iable:ho,borne:ho,gnant:ho,inant:ho,igent:ho,atory:ho,rient:po,dient:po},{auskas:wo,parent:po,cedent:po,ionary:po,cklist:po,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:wo,borough:"Place",sdottir:wo}];const Ao="Adjective";var Eo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ao,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ao,tele:"Noun","pro-":Ao,"mis-":"Verb","dis-":"Verb","pre-":Ao},{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:Ao,radio:"Noun",tetra:"Noun","omni-":Ao,"post-":Ao},{pseudo:Ao,"extra-":Ao,"hyper-":Ao,"inter-":Ao,"intra-":Ao,"deca-":Ao},{electro:"Noun"}];const jo="Adjective",Io="Infinitive",Go="PresentTense",No="Singular",Do="PastTense",xo="Expression",Co="LastName";var To={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Co],[/.[^aeiou]ica$/,No,"harmonica"],[/^([hyj]a+)+$/,xo,"haha"]],c:[[/.[^aeiou]ic$/,jo]],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$/,No,"steward"],[/[aeiou][^aeiou]id$/,jo,""],[/.[vrl]id$/,jo,"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$/,jo,"fixable"],[/.[^aeiou]eable$/,jo,"maleable"],[/.[ts]ive$/,jo,"festive"],[/[a-z]-like$/,jo,"woman-like"]],h:[[/.[^aeiouf]ish$/,jo,"cornish"],[/.v[iy]ch$/,Co,"..ovich"],[/^ug?h+$/,xo,"ughh"],[/^uh[ -]?oh$/,xo,"uhoh"],[/[a-z]-ish$/,jo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Co,"polish-male"]],k:[[/^(k){2}$/,xo,"kkkk"]],l:[[/.[gl]ial$/,jo,"familial"],[/.[^aeiou]ful$/,jo,"fitful"],[/.[nrtumcd]al$/,jo,"natal"],[/.[^aeiou][ei]al$/,jo,"familial"]],m:[[/.[^aeiou]ium$/,No,"magnesium"],[/[^aeiou]ism$/,No,"schism"],[/^[hu]m+$/,xo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,jo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,xo,"noooo"],[/^(yo)+$/,xo,"yoo"],[/^wo{2,}[pt]?$/,xo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,No],[/[^i]fer$/,Io],[/.[^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$/,Go],[/.[rln]ates$/,Go],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,No],[/.[aeiou]sks$/,Go],[/.[aeiou]kes$/,Go],[/[aeiou][^aeiou]is$/,No],[/[a-z]'s$/,"Noun"],[/^yes+$/,xo]],v:[[/.[^aeiou][ai][kln]ov$/,Co]],y:[[/.[cts]hy$/,jo],[/.[st]ty$/,jo],[/.[tnl]ary$/,jo],[/.[oe]ry$/,No],[/[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$/,No]]};const Bo="Verb",Oo="Noun";var zo={leftTags:[["Adjective",Oo],["Possessive",Oo],["Determiner",Oo],["Adverb",Bo],["Pronoun",Bo],["Value",Oo],["Ordinal",Oo],["Modal",Bo],["Superlative",Oo],["Demonym",Oo],["Honorific","Person"]],leftWords:[["i",Bo],["first",Oo],["it",Bo],["there",Bo],["not",Bo],["because",Oo],["if",Oo],["but",Oo],["who",Bo],["this",Oo],["his",Oo],["when",Oo],["you",Bo],["very","Adjective"],["old",Oo],["never",Bo],["before",Oo],["a","Singular"],["the",Oo],["been",Bo]],rightTags:[["Copula",Oo],["PastTense",Oo],["Conjunction",Oo],["Modal",Oo]],rightWords:[["there",Bo],["me",Bo],["man","Adjective"],["only",Bo],["him",Bo],["it",Bo],["were",Oo],["took",Oo],["himself",Bo],["went",Oo],["who",Oo],["jr","Person"]]},Vo={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"},Fo={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"},So={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"},Ho={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 Jo=/^.([0-9]+)/;var Mo=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(Jo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Jo,"")}(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},Wo=/^([0-9]+)/,Ko=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Wo);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(Wo,"")]}(n[0],n[1])})};var qo=function(e={}){return(e=Object.assign({},e)).rules=Ko(e.rules),e.rules=Lo(e.rules),e.rev&&(e.rev=Ko(e.rev),e.rev=Lo(e.rev)),e.exceptions=Ko(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Uo=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 Ro=qo({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=qo(So),Qo=qo(Fo),_o=qo($o),Xo=Uo(Ro),Yo=Uo(Zo),ei=Uo(Qo),ti=Uo(_o),ni=qo(Vo),ai=qo(Ho);var ri={fromPast:Ro,fromPresent:Zo,fromGerund:Qo,fromParticiple:_o,toPast:Xo,toPresent:Yo,toGerund:ei,toParticiple:ti,toComparative:ni,toSuperlative:ai,fromComparative:Uo(ni),fromSuperlative:Uo(ai)},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),{}),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,""]];var si=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(li[t].forEach(n=>e[n]=t),e),{});var ui=li;var ci=function(e){let t=e.substring(e.length-3);if(!0===ui.hasOwnProperty(t))return ui[t];let n=e.substring(e.length-2);return!0===ui.hasOwnProperty(n)?ui[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const di={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var hi=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)),di.hasOwnProperty(e))c=di[e];else if("Participle"===n)c=Mo(l,i);else if("PastTense"===n)c=Mo(l,a);else if("PresentTense"===n)c=Mo(l,r);else{if("Gerund"!==n)return e;c=Mo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var gi=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:Mo(i,n),PresentTense:Mo(i,a),Gerund:Mo(i,r),FutureTense:"will "+e},u=Mo(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var mi=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 pi="ically",fi=new Set(["analyt"+pi,"chem"+pi,"class"+pi,"clin"+pi,"crit"+pi,"ecolog"+pi,"electr"+pi,"empir"+pi,"frant"+pi,"grammat"+pi,"ident"+pi,"ideolog"+pi,"log"+pi,"mag"+pi,"mathemat"+pi,"mechan"+pi,"med"+pi,"method"+pi,"method"+pi,"mus"+pi,"phys"+pi,"phys"+pi,"polit"+pi,"pract"+pi,"rad"+pi,"satir"+pi,"statist"+pi,"techn"+pi,"technolog"+pi,"theoret"+pi,"typ"+pi,"vert"+pi,"whims"+pi]),bi=[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"}],yi=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"]),vi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var wi=function(e){return e.endsWith("ly")?fi.has(e)?e.replace(/ically/,"ical"):yi.has(e)?null:vi.hasOwnProperty(e)?vi[e]:mi(e,bi)||e:null};const ki=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Pi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ai=function(e){if(Pi.hasOwnProperty(e))return Pi[e];let t=mi(e,ki);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"}],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"},Ii=new Set(["terrible","annoying"]);const Gi=function(e,t){const n=t.two.models.toSuperlative;return Mo(e,n)},Ni=function(e,t){const n=t.two.models.toComparative;return Mo(e,n)};var Di={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 xi={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===Di.hasOwnProperty(i)&&Di[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Er,nounToSingular:si,verbToInfinitive:hi,getTense:ci,verbConjugate:gi,adjToSuperlative:Gi,adjToComparative:Ni,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Mo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Mo(e,n)},advToAdjective:wi,adjToAdverb:Ai,adjToNoun:function(e){if(ji.hasOwnProperty(e))return ji[e];if(Ii.has(e))return null;let t=mi(e,Ei);return t||e+"ness"}}}};var Ci=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 Ti=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Bi=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=Ti(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ti(a,"Infinitive","Verb"),Object.assign(s,l),l=Ti(r,"Infinitive","Gerund"),Object.assign(s,l),l=Ti(o,"Adjective","Superlative"),Object.assign(s,l),l=Ti(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Oi={two:{models:ri}};const zi={"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"},Vi=function(e,t){const n={model:t,methods:xi};let{lex:a,_multi:r}=xi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Fi=function(e,t,n){let a=gi(e,Oi);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]=zi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Fi(r,a,!1),"Adj|Present"===o&&(Fi(r,a,!0),function(e,t,n){let a=Gi(e,n);t[a]=t[a]||"Superlative";let r=Ni(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=hi(r,Oi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=hi(r,Oi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Vi(n,t)};let Si={one:{_multiCache:{},lexicon:Ir},two:{irregularPlurals:gr,models:ri,suffixPatterns:Po,prefixPatterns:Eo,endsWith:To,neighbours:zo,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:Gr,clues:co,uncountable:{},orgWords:oi}};Si=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=Vi(e.one.lexicon,e)).one.lexicon,e),e=$i(e.two.switches,e),e=Bi(e),e=Ci(e)}(Si);var Hi=Si;const Ji=/^(under|over|mis|re|un|dis|semi)-?/;var Mi=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(Ji.test(r.normal)){let e=r.normal.replace(Ji,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Li=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 Wi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Ki=new Set(["formulas","koalas","israelis","menus"]),qi=["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 Ui=function(e){if(!e||e.length<=3)return!1;if(Ki.has(e))return!0;let t=e[e.length-1];return Wi.hasOwnProperty(t)?Wi[t].find(t=>e.endsWith(t)):"s"===t&&!qi.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Zi=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(Ui(e.normal)?Li(e,"Plural","3-plural-guess"):Li(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&&Li(e,t,"3-verb-tense-guess")}}(a)};const Qi=/^\p{Lu}[\p{Ll}'’]/u,_i=/[0-9]/,Xi=["Date","Month","WeekDay","Unit"],Yi=/^[IVXLCDM]{2,}$/,es=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ts={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ns=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===Qi.test(o)&&!1===_i.test(o)?Xi.find(e=>a.tags.has(e))?null:(Zi(e,t,n),a.tags.has("Noun")||a.tags.clear(),Li(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Yi.test(o)&&es.test(o)&&!ts[a.normal]?(Li(a,"RomanNumeral","2-xvii"),!0):null};const as=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 rs=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=as(a.normal,n.two.suffixPatterns);if(null!==e)return Li(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=as(a.implicit,n.two.suffixPatterns),null!==e))return Li(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const os=/['‘’‛‵′`´]/,is=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 Li(a,e,"2-prefix"),a.confidence=.5,!0}return null};const us=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!!us.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},ds=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},hs=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 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 Li(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(ds(r)||ds(o))return Li(n,"Year","2-tagYear-close");if(hs(e[t-2])||hs(e[t+2]))return Li(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 Li(n,"Year","2-tagYear-noun")}}}return null};const ms=/^[A-Z]('s|,)?$/,ps=/^[A-Z-]+$/,fs=/([A-Z]\.)+[A-Z]?,?$/,bs=/[A-Z]{2,}('s|,)?$/,ys=/([a-z]\.)+[a-z]\.?$/,vs={I:!0,A:!0};var ws=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===ps.test(n)||n.length>5||vs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==fs.test(n)&&!0!==ys.test(n)&&!0!==ms.test(n)&&!0!==bs.test(n))}(a,n)?(a.tags.clear(),Li(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!vs.hasOwnProperty(a.text)&&ms.test(a.text)?(a.tags.clear(),Li(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Li(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&ps.test(a.text)&&a.text.length<=6?(Li(a,"Acronym","3-titlecase-acronym"),!0):null};const ks=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ps=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var As=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||ks(e[t-1],r),l=l||ks(e[t+1],o),l=l||Ps(e[t-1],a),l=l||Ps(e[t+1],i),l)return Li(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 js=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]&&Es(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Es(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Is=function(e,t,n){0===e[t].tags.size&&(Li(e[t],"Noun","3-[fallback]"),Zi(e,t,n),e[t].confidence=.1)};const Gs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ns=(e,t,n)=>0!==t||e[1]?null:n;var Ds={"Adj|Gerund":(e,t)=>Gs(e,t),"Adj|Noun":(e,t)=>Gs(e,t),"Adj|Past":(e,t)=>Gs(e,t),"Adj|Present":(e,t)=>Gs(e,t),"Noun|Gerund":(e,t)=>Gs(e,t),"Noun|Verb":(e,t)=>Gs(e,t)||Ns(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Gs(e,t)||Ns(e,t,"PresentTense"),"Person|Noun":(e,t)=>Gs(e,t),"Person|Verb":(e,t)=>0!==t&&Gs(e,t)};const xs="undefined"!=typeof process&&process.env?process.env:self.env||{},Cs=/^(under|over|mis|re|un|dis|semi)-?/,Ts=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&xs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Bs=(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&&xs.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Os={tagSwitch:Mi,checkSuffix:rs,checkRegex:ss,checkCase:ns,checkPrefix:ls,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")&&(Li(o,"Verb","3-[prefix]"),Li(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Li(o,"Adjective","3-[prefix]"),Li(o,"Prefix","3-[prefix]")))},checkYear:gs},zs={checkAcronym:ws,neighbours:As,orgWords:js,nounFallback:Is,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(Cs.test(l)&&!o[l]&&(l=l.replace(Cs,"")),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=Ts(e[t+1],n.afterWords);return o=o||Ts(e[t-1],n.beforeWords),o=o||Bs(e[t-1],n.beforeTags,r),o=o||Bs(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Ds[o]&&(u=Ds[o](e,t)||u),u?(xs.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),r([s],u,n,null,"3-[variable]")):xs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Vs=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 Ss={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 Hs={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 _s=/'/;var Xs=function(e,t){let n=e[t].normal.split(_s)[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 Ys=/'/;var el=function(e,t){let n=e[t].normal.split(Ys)[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 tl=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 nl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},al={in:!0,by:!0,for:!0};var rl=(e,t)=>{let n=e[t];if(nl.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===al[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 ol=/'/,il=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)},sl={d:(e,t)=>el(e,t),t:(e,t)=>tl(e,t),s:(e,t,n)=>rl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Xs(e,t)},ll=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ul={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===ol.test(a[o].normal)&&([,i]=a[o].normal.split(ol));let s=null;sl.hasOwnProperty(i)&&(s=sl[i](a,o,t)),s&&(s=ll(s,e),Qs(n,[r,o],s),il(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=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=Rs},hooks:["contractionTwo"]};const cl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const dl=["i","we","they"];let hl=[].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:"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)",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: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:"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:"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:dl,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:dl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:dl,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 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:a}=t;gl=gl||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(gl),e.uncache(),e}},model:{two:{matches:hl}},hooks:["postTagger"]};var pl=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 fl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?pl(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 bl={api:function(e){e.prototype.swap=fl}};m.plugin(Ks),m.plugin(ul),m.plugin(ml),m.plugin(bl);export{m as default}; diff --git a/scratch.js b/scratch.js index b4fe2a454..13543e12e 100644 --- a/scratch.js +++ b/scratch.js @@ -1,10 +1,10 @@ /* 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) import fs from 'fs' let txt = fs.readFileSync('/Users/spencer/mountain/compromise/plugins/speed/tests/files/freshPrince.txt').toString() -// nlp.verbose('tagger') +nlp.verbose('tagger') // let doc = nlp('one match two three') // let a = doc.match('match two') @@ -47,50 +47,13 @@ let txt = fs.readFileSync('/Users/spencer/mountain/compromise/plugins/speed/test // Upload documents required to verify your eligibility -let matches = [ - // { match: 'two flub' }, - // { match: '(one|two) foo' } - // { match: '^(go|stop|wait) please (and|stop)' }, - // { match: '(foo|bar) please' } - // { match: '(one|two) please' }, - // { match: ' please two please' }, - // { match: '#Determiner [(shit|damn|hell)]' }, - // { match: 'the [(can|will|may)]' }, - // { match: 'to [(shit|hell)]' }, - // { match: '(right|rights) of .' } - // { match: 'please (and|stop) please' } - - // - #Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)? - // - (had|has) to [#Noun] (#Determiner|#Possessive) - // - (a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun) - // - (king|queen|prince|saint|lady) of #Noun - // - (the|these) [#Singular] (were|are) - // - (let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it) - // - (the|those|these|a|an) #Adjective? [#Infinitive] - // - (the|those|these|a|an) #Adjective? [#PresentTense] - // - #Infinitive (this|that|the) [#Infinitive] - // - (the|this|a|an) [#Infinitive] #Adverb? #Verb - // - ^[#Infinitive] (your|my|the|some|a|an) - // - #Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition - // - [#Verb (in|out|up|down|off|back)] (on|in) - // - (prince|lady) #Place - // - (king|queen|prince|saint) #ProperNoun - // - (this|next|last) [(march|may)] - // - [(half|quarter)] of? (a|an) - // - !once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion) - // - ^(go|stop|wait|hurry) please?$ - { match: '(well|so|okay|now)' } -] - - -matches = [ - { match: '2nd quarter 2022' }, -] -let net = nlp.buildNet(matches) -let doc = nlp(` in the 2nd quarter 2022`) -let { view, found } = doc.sweep(net) -view.debug() + +// 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) diff --git a/src/1-one/sweep/methods/buildNet/01-parse.js b/src/1-one/sweep/methods/buildNet/01-parse.js index 9598a8390..20c264cd5 100644 --- a/src/1-one/sweep/methods/buildNet/01-parse.js +++ b/src/1-one/sweep/methods/buildNet/01-parse.js @@ -35,7 +35,7 @@ const getNeeds = function (regs) { const getWants = function (regs) { let wants = [] regs.forEach(reg => { - if (reg.operator === 'or') { + if (reg.operator === 'or' && !reg.optional) { // add fast-or terms if (reg.fastOr) { Array.from(reg.fastOr).forEach(w => { diff --git a/src/2-two/postTagger/model/verbs/auxiliary.js b/src/2-two/postTagger/model/verbs/auxiliary.js index 617cfa24d..689b66df4 100644 --- a/src/2-two/postTagger/model/verbs/auxiliary.js +++ b/src/2-two/postTagger/model/verbs/auxiliary.js @@ -1,42 +1,28 @@ // these are some of our heaviest-used matches export default [ // ==== 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 @@ -46,16 +32,9 @@ export default [ // 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' }, ] From fa3523f551a9971688a3479ad124dd9b4f9408f3 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 13 Jun 2022 15:02:38 -0400 Subject: [PATCH 07/13] cleanup logger, tests passing --- scratch.js | 12 +----------- src/1-one/sweep/methods/tagger/index.js | 7 ++----- src/1-one/tag/methods/setTag.js | 8 +++++--- src/2-two/postTagger/model/person/ambig-name.js | 6 +++--- .../preTagger/compute/tagger/3rd-pass/06-switches.js | 7 ++----- 5 files changed, 13 insertions(+), 27 deletions(-) diff --git a/scratch.js b/scratch.js index 13543e12e..1000f0fe2 100644 --- a/scratch.js +++ b/scratch.js @@ -2,18 +2,8 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -import fs from 'fs' -let txt = fs.readFileSync('/Users/spencer/mountain/compromise/plugins/speed/tests/files/freshPrince.txt').toString() -nlp.verbose('tagger') - -// let doc = nlp('one match two three') -// let a = doc.match('match two') -// let b = a.remove('two') -// console.log(a) -// // a.debug() -// // b.debug() -// console.log(b) +nlp.verbose('tagger') // tagging/root issues June 10 // "Okay, okay, okay should I be scared?" // "This is when I started to get scared." diff --git a/src/1-one/sweep/methods/tagger/index.js b/src/1-one/sweep/methods/tagger/index.js index 8e938801a..a75d95d9d 100644 --- a/src/1-one/sweep/methods/tagger/index.js +++ b/src/1-one/sweep/methods/tagger/index.js @@ -10,16 +10,13 @@ const tagger = function (list, document, world) { // 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) { return } let reason = todo.reason || todo.match - if (env.DEBUG_TAGS) { - logger(todo, document) - } let terms = getDoc([todo.pointer], document)[0] // handle 'safe' tag if (todo.safe === true) { @@ -33,7 +30,7 @@ const tagger = function (list, document, world) { } } 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) { diff --git a/src/1-one/tag/methods/setTag.js b/src/1-one/tag/methods/setTag.js index b2cc5f9a0..f8fe9eb77 100644 --- a/src/1-one/tag/methods/setTag.js +++ b/src/1-one/tag/methods/setTag.js @@ -65,10 +65,12 @@ const isArray = function (arr) { } // verbose-mode tagger debuging -const log = (term, tag, reason = '') => { +const log = (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 } @@ -85,7 +87,7 @@ const setTag = function (terms, tag, world = {}, isSafe, reason) { // some logging for debugging const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env if (env && env.DEBUG_TAGS) { - log(terms[0], tag, reason) + log(terms, tag, reason) } if (isArray(tag) === true) { tag.forEach(tg => setTag(terms, tg, world, isSafe)) diff --git a/src/2-two/postTagger/model/person/ambig-name.js b/src/2-two/postTagger/model/person/ambig-name.js index 10cf53aa3..f5440b6cd 100644 --- a/src/2-two/postTagger/model/person/ambig-name.js +++ b/src/2-two/postTagger/model/person/ambig-name.js @@ -48,13 +48,13 @@ export default [ // 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 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 b7bb2377b..b0f3a9403 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 @@ -26,7 +26,7 @@ const checkTag = (term, obj = {}, tagSet) => { }) 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}' (#${found}) \x1b[0m`)//eslint-disable-line } found = obj[found] return found @@ -73,11 +73,8 @@ const doSwitches = function (terms, i, world) { } // 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]`) + setTag([term], tag, world, null, `3-[variable] (${form})`) } else if (env.DEBUG_TAGS) { console.log(`\n -> X - '${str}' : ${form} `)//eslint-disable-line } From bb1e9f661bc883298acfb7a80debdf3832ed660e Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 13 Jun 2022 16:14:27 -0400 Subject: [PATCH 08/13] introduce minimum want for optionals --- builds/compromise.js | 4 +- builds/one/compromise-one.cjs | 4 +- builds/one/compromise-one.mjs | 4 +- builds/three/compromise-three.cjs | 18345 +++++++++++++++- builds/three/compromise-three.mjs | 4 +- builds/two/compromise-two.cjs | 4 +- builds/two/compromise-two.mjs | 4 +- scratch.js | 23 +- src/1-one/sweep/methods/buildNet/01-parse.js | 8 +- src/1-one/sweep/methods/sweep/02-trim-down.js | 3 +- src/1-one/sweep/methods/tagger/_logger.js | 32 - src/1-one/sweep/methods/tagger/index.js | 1 - 12 files changed, 18380 insertions(+), 56 deletions(-) delete mode 100644 src/1-one/sweep/methods/tagger/_logger.js diff --git a/builds/compromise.js b/builds/compromise.js index 869b5ddab..33e9b5468 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.0";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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=In(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Tn=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})},Cn=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.find(e=>r.has(e)))})},Dn=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},On=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=Gn(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=Tn(a,t.hooks);return o=Cn(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),Dn(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&&On(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Bn(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 zn=/ /,$n=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],t,a),1!=(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(/^#/,""),Fn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nSn(e,t,n,r))};var Hn=Sn,Mn=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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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):(qn(t=e).forEach(Jn),t);var t},Qn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return qn(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=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},_n={text:Qn,txt:Qn,array:Zn,flat:Zn},Yn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Qn(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Xn=e=>{qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},er=/\//;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),!er.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(Kn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Jn({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 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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(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 Xn(this.json),Yn(this.json,e)}debug(){return Xn(this.json),Yn(this.json,"debug"),this}}const tr=function(e){let t=Rn(e);return new g$1(t)};tr.prototype.plugin=function(e){e(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(e){if(nr.hasOwnProperty(e.id))return nr[e.id];if(nr.hasOwnProperty(e.is))return nr[e.is];let t=e._cache.parents.find(e=>nr[e]);return nr[t]};var ar=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:rr(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 or=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=or(e[t].children),e[t].not=or(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},sr={one:{setTag:Hn,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=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 tr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ar(n)}}};const lr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ur={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||""),lr(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 lr(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,ur)},hr={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 dr=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(dr.has(e)||!t.hasOwnProperty(n))return 1;if(dr.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:sr,api:cr,lib:hr};const mr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var fr=function(e){let t=[],n=e.split(gr);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]+/,Vr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,zr=/['’]/,$r=/^[a-z]\.([a-z]\.)+/i,Fr=/^[-+.][0-9]/,Sr=/^'[0-9]{2}/;var Hr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Br,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fr.test(e)?"'"===n&&Sr.test(e)?(n="",t):"":(n="",t)))).replace(Vr,a=>(r=a,zr.test(a)&&/[sn]['’]$/.test(t)&&!1===zr.test(n)?(r=r.replace(zr,""),"'"):!0===$r.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Mr=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]?,?$/,Lr=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,qr=/([a-z]\.)+[a-z]\.?$/;var Kr=function(e){return function(e){return!0===Jr.test(e)||!0===qr.test(e)||!0===Lr.test(e)||!0===Wr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Ur=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Mr(r),r=n(r,t),r=Kr(r),e.normal=r},Rr={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:jr,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(Dr);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=Nr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Hr(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})}}}},Qr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zr={},_r={};[[["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,_r[t]="Abbreviation",void 0!==e[1]&&(_r[t]=[_r[t],e[1]])})});var Yr=["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 Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},ea={};Object.keys(Xr).forEach((function(e){Xr[e].split("").forEach((function(t){ea[t]=e}))}));const ta=/\//,na=/[a-z]\.[a-z]/i,ra=/[0-9]/;var aa=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])),ta.test(n)&&!na.test(n)&&!ra.test(n)){let t=n.split(ta);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const oa=/^\p{Letter}+-\p{Letter}+$/u;var ia=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"),oa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},sa=function(e){let t=0,n=0,r=e.document;for(let e=0;ela(e,aa),machine:e=>la(e,ia),normal:e=>la(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 da={safe:!0,min:3};var pa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ca},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},da,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ha(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(fn),m.extend(St),m.extend(Nn),m.extend(pr),m.plugin(be),m.extend(ua),m.plugin(f),m.extend(Ge),m.extend(pa),m.extend(Pe),m.extend(Vn);var ma={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"},ga={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 fa=36,ba="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",va=ba.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ya=function(e){if(void 0!==va[e])return va[e];let t=0,n=1,r=fa,a=1;for(;n=0;n--,a*=fa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},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(ga[e]);Na.test(e)?Object.keys(t).forEach(t=>{if(Ga[t]=e,"Noun|Verb"===e){let e=xa(t,Ta);Ga[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 Ca="Adjective";var Da={beforeTags:{Determiner:Ca,Possessive:Ca},afterTags:{Adjective:Ca},beforeWords:{seem:Ca,seemed:Ca,seems:Ca,feel:Ca,feels:Ca,felt:Ca,appear:Ca,appears:Ca,appeared:Ca,also:Ca,over:Ca,under:Ca,too:Ca,it:Ca,but:Ca,still:Ca,really:Ca,quite:Ca,well:Ca,very:Ca,deeply:Ca,profoundly:Ca,extremely:Ca,so:Ca,badly:Ca,mostly:Ca,totally:Ca,awfully:Ca,rather:Ca,nothing:Ca,something:Ca,anything:Ca},afterWords:{too:Ca,also:Ca,or:Ca}};const Oa="Gerund";var Ba={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}},Va={beforeTags:Object.assign({},Da.beforeTags,Ba.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Da.afterTags,Ba.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Da.beforeWords,Ba.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Da.afterWords,Ba.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({},Da.beforeTags,$a.beforeTags,Fa.beforeTags),afterTags:Object.assign({},Da.afterTags,$a.afterTags),beforeWords:Object.assign({},Da.beforeWords,$a.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.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"},Ja={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},La={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wa={beforeTags:Object.assign({},Da.beforeTags,Ha),afterTags:Object.assign({},Da.afterTags,Ma),beforeWords:Object.assign({},Da.beforeWords,Ja),afterWords:Object.assign({},Da.afterWords,La)};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,when:qa,all:qa,to:qa,because:qa,although:qa,before:qa,how:qa,otherwise:qa,though:qa,yet:qa}};const Ua={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Da.beforeTags,Ka.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,Ka.afterTags,Ua.afterTags),beforeWords:Object.assign({},Da.beforeWords,Ka.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,Ka.afterWords,{to:void 0})};const Qa={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Za={},_a={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({},Ba.beforeTags,$a.beforeTags,Qa),afterTags:Object.assign({},Ba.afterTags,$a.afterTags,Za),beforeWords:Object.assign({},Ba.beforeWords,$a.beforeWords,_a),afterWords:Object.assign({},Ba.afterWords,$a.afterWords,Ya)},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"},co={"Adj|Gerund":Va,"Adj|Noun":Sa,"Adj|Past":Wa,"Adj|Present":Ra,"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",bo="Singular",vo="PastTense",yo="Adverb",wo="Plural",ko="Actor",Po="Verb",Ao="Noun",jo="LastName",Eo="Modal",xo="Participle";var No=[null,null,{ea:bo,ia:Ao,ic:mo,ly:yo,"'n":Po,"'t":Po},{oed:vo,ued:vo,xed:vo," so":yo,"'ll":Eo,"'re":"Copula",azy:mo,eer:Ao,end:Po,ped:vo,ffy:mo,ify:go,ing:"Gerund",ize:go,ibe:go,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:vo,ken:xo,ven:xo,ten:xo,ect:go,ict:go,ign:go,ful:mo,bal:mo},{amed:vo,aped:vo,ched:vo,lked:vo,rked:vo,reed:vo,nded:vo,mned:mo,cted:vo,dged:vo,ield:bo,akis:jo,cede:go,chuk:jo,czyk:jo,ects:fo,ends:Po,enko:jo,ette:bo,wner:bo,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:jo,oses:fo,ould:Eo,some:mo,sson:jo,tion:bo,tage:Ao,ique:bo,tive:mo,tors:Ao,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:mo,vide:go,ract:go,duce:go,pose:go,eive:go,lyze:go,lyse:go,iant:mo,nary:mo},{elist:bo,holic:bo,phite:bo,tized:vo,urned:vo,eased:vo,ances:wo,bound:mo,ettes:wo,fully:yo,ishes:fo,ities:wo,marek:jo,nssen:jo,ology:Ao,osome:bo,tment:bo,ports:wo,rough:mo,tches:fo,tieth:"Ordinal",tures:wo,wards:yo,where:yo,archy:Ao,pathy:Ao,opoly:Ao,embly:Ao,phate:Ao,ndent:bo,scent:bo,onist:bo,anist:bo,alist:bo,olist:bo,icist:bo,ounce:go,iable:mo,borne:mo,gnant:mo,inant:mo,igent:mo,atory:mo,rient:bo,dient:bo},{auskas:jo,parent:bo,cedent:bo,ionary:bo,cklist:bo,keeper:ko,logist:ko,teenth:"Value"},{opoulos:jo,borough:"Place",sdottir:jo}];const Io="Adjective",Go="Noun",To="Verb";var Co=[null,null,{},{neo:Go,bio:Go,"de-":To,"re-":To,"un-":To},{anti:Go,auto:Go,faux:Io,hexa:Go,kilo:Go,mono:Go,nano:Go,octa:Go,poly:Go,semi:Io,tele:Go,"pro-":Io,"mis-":To,"dis-":To,"pre-":Io},{anglo:Go,centi:Go,ethno:Go,ferro:Go,grand:Go,hepta:Go,hydro:Go,intro:Go,macro:Go,micro:Go,milli:Go,nitro:Go,penta:Go,quasi:Io,radio:Go,tetra:Go,"omni-":Io,"post-":Io},{pseudo:Io,"extra-":Io,"hyper-":Io,"inter-":Io,"intra-":Io,"deca-":Io},{electro:Go}];const Do="Adjective",Oo="Infinitive",Bo="PresentTense",Vo="Singular",zo="PastTense",$o="Adverb",Fo="Expression",So="Actor",Ho="Verb",Mo="Noun",Jo="LastName";var Lo={a:[[/.[aeiou]na$/,Mo,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,Do]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Vo,"steward"],[/[aeiou][^aeiou]id$/,Do,""],[/.[vrl]id$/,Do,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,Oo,"antagonize"],[/.[^aeiou]ise$/,Oo,"antagonise"],[/.[aeiou]te$/,Oo,"bite"],[/.[^aeiou][ai]ble$/,Do,"fixable"],[/.[^aeiou]eable$/,Do,"maleable"],[/.[ts]ive$/,Do,"festive"],[/[a-z]-like$/,Do,"woman-like"]],h:[[/.[^aeiouf]ish$/,Do,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,Do,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Fo,"kkkk"]],l:[[/.[gl]ial$/,Do,"familial"],[/.[^aeiou]ful$/,Do,"fitful"],[/.[nrtumcd]al$/,Do,"natal"],[/.[^aeiou][ei]al$/,Do,"familial"]],m:[[/.[^aeiou]ium$/,Vo,"magnesium"],[/[^aeiou]ism$/,Vo,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Do,"republican"],[/[^aeiou]ician$/,So,"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$/,Vo],[/[^i]fer$/,Oo],[/.[^aeiou][ao]pher$/,So],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Do],[/[aeiou].*ist$/,Do],[/^[a-z]et$/,Ho]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,Ho],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,Mo],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,Do],[/.[st]ty$/,Do],[/.[tnl]ary$/,Do],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,$o],[/.(gg|bb|zz)ly$/,Do],[/...lly$/,$o],[/.[gk]y$/,Do],[/[bszmp]{2}y$/,Do],[/.[ai]my$/,Do],[/[ea]{2}zy$/,Do],[/.[^aeiou]ity$/,Vo]]};const Wo="Verb",qo="Noun";var Ko={leftTags:[["Adjective",qo],["Possessive",qo],["Determiner",qo],["Adverb",Wo],["Pronoun",Wo],["Value",qo],["Ordinal",qo],["Modal",Wo],["Superlative",qo],["Demonym",qo],["Honorific","Person"]],leftWords:[["i",Wo],["first",qo],["it",Wo],["there",Wo],["not",Wo],["because",qo],["if",qo],["but",qo],["who",Wo],["this",qo],["his",qo],["when",qo],["you",Wo],["very","Adjective"],["old",qo],["never",Wo],["before",qo],["a","Singular"],["the",qo],["been",Wo]],rightTags:[["Copula",qo],["PastTense",qo],["Conjunction",qo],["Modal",qo]],rightWords:[["there",Wo],["me",Wo],["man","Adjective"],["only",Wo],["him",Wo],["it",Wo],["were",qo],["took",qo],["himself",Wo],["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"},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"},Zo={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],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},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(Zo),si=ri(Ro),li=ri(Qo),ui=ai(oi),ci=ai(ii),hi=ai(si),di=ai(li),pi=ri(Uo),mi=ri(_o);var gi={fromPast:oi,fromPresent:ii,fromGerund:si,fromParticiple:li,toPast:ui,toPresent:ci,toGerund:hi,toParticiple:di,toComparative:pi,toSuperlative:mi,fromComparative:ai(pi),fromSuperlative:ai(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,""]],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(yi[t].forEach(n=>e[n]=t),e),{});var wi=yi,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=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},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},Ei=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 xi="ically",Ni=new Set(["analyt"+xi,"chem"+xi,"class"+xi,"clin"+xi,"crit"+xi,"ecolog"+xi,"electr"+xi,"empir"+xi,"frant"+xi,"grammat"+xi,"ident"+xi,"ideolog"+xi,"log"+xi,"mag"+xi,"mathemat"+xi,"mechan"+xi,"med"+xi,"method"+xi,"method"+xi,"mus"+xi,"phys"+xi,"phys"+xi,"polit"+xi,"pract"+xi,"rad"+xi,"satir"+xi,"statist"+xi,"techn"+xi,"technolog"+xi,"theoret"+xi,"typ"+xi,"vert"+xi,"whims"+xi]),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")?Ni.has(e)?e.replace(/ically/,"ical"):Gi.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:Ei(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=Ei(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"]),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"]}},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.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:xa,nounToSingular:vi,verbToInfinitive:Ai,getTense:ki,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:Ci,adjToAdverb:Bi,adjToNoun:function(e){if(zi.hasOwnProperty(e))return zi[e];if($i.has(e))return null;let t=Ei(e,Vi);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 Li=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Wi=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(r,"Infinitive","Verb"),Object.assign(s,l),l=Li(a,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(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")},Qi=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 Zi={one:{_multiCache:{},lexicon:Ia},two:{irregularPlurals:ma,models:gi,suffixPatterns:No,prefixPatterns:Co,endsWith:Lo,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:Ga,clues:po,uncountable:{},orgWords:fi}};Zi=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=Qi(e.two.switches,e),e=Wi(e),e=Ji(e)}(Zi);var _i=Zi;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])}},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"]},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 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===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 ms=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=ms(r.normal,n.two.suffixPatterns);if(null!==e)return es(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ms(r.implicit,n.two.suffixPatterns),null!==e))return es(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const fs=/['‘’‛‵′`´]/,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 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"]),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 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(ks(a)||ks(o))return es(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Ps(a)||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(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 Es=/^[A-Z]('s|,)?$/,xs=/^[A-Z-]+$/,Ns=/([A-Z]\.)+[A-Z]?,?$/,Is=/[A-Z]{2,}('s|,)?$/,Gs=/([a-z]\.)+[a-z]\.?$/,Ts={I:!0,A:!0};var Cs=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===xs.test(n)||n.length>5||Ts.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ns.test(n)&&!0!==Gs.test(n)&&!0!==Es.test(n)&&!0!==Is.test(n))}(r,n)?(r.tags.clear(),es(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ts.hasOwnProperty(r.text)&&Es.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")&&xs.test(r.text)&&r.text.length<=6?(es(r,"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},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||Ds(e[t-1],a),l=l||Ds(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},$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),"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||{},Js=/^(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&&Ms.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&&Ms.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},qs={tagSwitch:Xi,checkSuffix:gs,checkRegex:vs,checkCase:ps,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:Cs,neighbours:Bs,orgWords:zs,nounFallback:$s,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=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);Hs[o]&&(u=Hs[o](e,t)||u),u?(Ms.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):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)},Zs={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: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"]},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 pl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ml={in:!0,by:!0,for:!0};var gl=(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===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 fl=/'/,bl=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)},vl={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;vl.hasOwnProperty(i)&&(s=vl[i](r,o,t)),s&&(s=yl(s,e),sl(n,[a,o],s),bl(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 kl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",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:"[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:"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)",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: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:"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:"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"}]),jl=null;var El={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;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}},model:{two:{matches:Al}},hooks:["postTagger"]},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)},Nl=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},Il={api:function(e){e.prototype.swap=Nl}};m.plugin(nl),m.plugin(wl),m.plugin(El),m.plugin(Il);var Gl=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},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 Cl={this:"Noun",then:"Pivot"};var Dl=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))})},Hl={compute:{chunks:function(e){const{document:t,world:n}=e;Dl(t),Ol(t),zl(e,t,n),Fl(t),Sl(t)}},api:function(e){e.prototype.chunks=Tl,e.prototype.clauses=Gl},hooks:["chunks"]};const Ml=/'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(Ml,""),e.normal=e.normal.replace(Ml,"")})}),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=/\)/,ql=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 Ul={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Ul).join("|")+")"),Ql=RegExp("("+Object.values(Ul).join("|")+")"),Zl=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Ul[n])return null;const r=Ul[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ql,"")})}(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 Yl=/\./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(Yl,""),e.normal=e.normal.replace(Yl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Yl,""),e.normal=e.normal.replace(Yl,""),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)}},eu=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 tu=(e,t)=>"number"==typeof t?e.eq(t):e,nu=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 ru=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=nu(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 tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=tu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=tu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=tu(t,e),new Adjectives(t.document,t.pointer)}};const au=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},ou=[["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 iu=[["emojis","emoji"],["atmentions","atMentions"]];var su=function(e){ou.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=au,iu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},lu={api:function(e){su(e),Jl(e),Kl(e),_l(e),ru(e),eu(e),Xl(e)}};const uu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var cu={case:e=>{uu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;uu(e,e=>e.text=n(e.text,t))},whitespace:e=>{uu(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=>{uu(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 hu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),du="unicode|punctuation|whitespace|acronyms",pu="|case|contractions|parentheses|quotations|emoji|honorifics",mu={light:hu(du),medium:hu(du+pu),heavy:hu(du+pu+"|possessives|adverbs|nouns|verbs")};var gu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=mu[e]),Object.keys(e).forEach(t=>{cu.hasOwnProperty(t)&&cu[t](this,e[t])}),this}}},fu=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 bu=["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")},wu=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:yu(e,t),isSubordinate:vu(e),root:t}};const ku=e=>e.text(),Pu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Au=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var ju=function(e){let t=wu(e);return{root:ku(t.root),number:Au(t.number),determiner:ku(t.determiner),adjectives:Pu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Eu={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,Eu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Eu),e};const Nu={tags:!0};var Iu=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,Nu).tag("Singular","toPlural"),e};const Gu=(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 Gu(this,e).map(wu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=ju(t)),n},[])}isPlural(e){let t=this.filter(e=>wu(e).isPlural);return Gu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=wu(e).adjectives;n.found&&(t=t.concat(n))}),Gu(t,e)}toPlural(e){return Gu(this,e).map(e=>xu(e,wu(e)))}toSingular(e){return Gu(this,e).map(e=>{let t=wu(e);return Iu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=fu(this);return t=Gu(t,e),new Nouns(this.document,t.pointer)}}},Cu=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},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(Ou.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Ou.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Ou.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},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 $u=/^([0-9,. ]+)\/([0-9,. ]+)$/,Fu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Su=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Hu=function(e){if(!0===Fu.hasOwnProperty(e))return Fu[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=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 Mu.test(a)&&(a=a.replace(Mu,""),r=r.replaceWith(a)),r=Lu.hasOwnProperty(a)?Lu[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},qu=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 Ku=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Uu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Ru=[[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"]],Qu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Ku[n][1]&&(e-=Ku[n][1],t.push(Ku[n][0]));return Uu[e]&&t.push(Uu[e]),t};var Zu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=qu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ru.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(Qu(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=qu(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(" ")},_u=function(e){return e.numerator&&e.denominator?`${Zu({num:e.numerator})} out of ${Zu({num:e.denominator})}`:""};const Yu={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=Zu(e).split(" "),n=t[t.length-1];return Yu.hasOwnProperty(n)?t[t.length-1]=Yu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},ec=function(e){if(!e.numerator||!e.denominator)return"";let t=Zu({num:e.numerator}),n=Xu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const tc=(e,t)=>"number"==typeof t?e.eq(t):e;var nc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return tc(this,e).map(Wu)}get(e){return tc(this,e).map(Wu)}json(e){return tc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Wu(t);return n.fraction=r,n},[])}toDecimal(e){return tc(this,e).forEach(e=>{let{decimal:t}=Wu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return tc(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 tc(this,e).forEach(e=>{let t=Wu(e),n=ec(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return tc(this,e).forEach(e=>{let t=Wu(e),n=_u(t);e.replaceWith(n)}),this}toPercentage(e){return tc(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=Cu(this);return t=tc(t,e),new Fractions(this.document,t.pointer)}};const rc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ac=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("("+rc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+rc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+rc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+rc+")"));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) (${rc})`),r=e.has("("+rc+") #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("("+rc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+rc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},oc=function(e){if("string"==typeof e)return{num:Hu(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=Hu(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")}},ic=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=qu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const sc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},lc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var uc=function(e){let t={suffix:"",prefix:e.prefix};return sc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+sc[e.prefix],t.prefix=""),lc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+lc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},cc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=uc(e);return t+Xu(e)+n}if("Ordinal"===t)return e.prefix+ic(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=uc(e);return t+Zu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const hc=(e,t)=>"number"==typeof t?e.eq(t):e;var dc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return hc(this,e).map(oc)}get(e){return hc(this,e).map(oc).map(e=>e.num)}json(e){return hc(this,e).map(t=>{let n=t.toView().json(e)[0],r=oc(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=oc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=cc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=oc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=cc(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=>oc(t).num===e)}greaterThan(e){return this.filter(t=>oc(t).num>e)}lessThan(e){return this.filter(t=>oc(t).num{let r=oc(n).num;return r>e&&r{let n=oc(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=cc(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=oc(e).num);let t=this.map(t=>{let n=oc(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=cc(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=ac(this);return t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ac(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ac(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},pc={api:function(e){nc(e),dc(e)}};const mc={people:!0,emails:!0,phoneNumbers:!0,places:!0},gc=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 fc={api:function(e){e.prototype.redact=gc}},bc=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))})},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))))))},yc=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}},wc=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},kc=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},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},Ac=function(e){return e.verbs().toInfinitive(),e};const jc=(e,t)=>"number"==typeof t?e.eq(t):e;var Ec={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}=yc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return jc(this,e).map(e=>(yc(e),wc(e)))}toPresentTense(e){return jc(this,e).map(e=>(yc(e),kc(e)))}toFutureTense(e){return jc(this,e).map(e=>(yc(e),e=Pc(e)))}toInfinitive(e){return jc(this,e).map(e=>(yc(e),Ac(e)))}toNegative(e){return jc(this,e).map(e=>(yc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return jc(this,e).map(e=>(yc(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 jc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return jc(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=jc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=bc(this);return jc(t,e)}};Object.assign(e.prototype,t)}},xc=function(e){return e.match("#Honorific+? #Person+")},Nc=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 Ic="male",Gc="female",Tc={mr:Ic,mrs:Gc,miss:Gc,madam:Gc,king:Ic,queen:Gc,duke:Ic,duchess:Gc,baron:Ic,baroness:Gc,count:Ic,countess:Gc,prince:Ic,princess:Gc,sire:Ic,dame:Gc,lady:Gc,ayatullah:Ic,congressman:Ic,congresswoman:Gc,"first lady":Gc,mx:null};var Cc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Gc;if(n.has("#MaleName"))return Ic;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Tc.hasOwnProperty(e))return Tc[e];if(/^her /.test(e))return Gc;if(/^his /.test(e))return Ic}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 Ic;if(n&&!t)return Gc}return null};const Dc=(e,t)=>"number"==typeof t?e.eq(t):e;var Oc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Dc(this,e).map(Nc)}json(e){return Dc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Nc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Cc(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=Dc(t,e),new People(this.document,t.pointer)}},Bc=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},Vc=function(e){e.prototype.places=function(t){let n=Bc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},zc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const $c=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 Fc=function(e){e.prototype.topics=$c},Sc={api:function(e){Oc(e),Vc(e),zc(e),Fc(e)}},Hc=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},Mc=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 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")},qc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Kc=function(e){let t=e.clone();t.contractions().expand();const n=Mc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Jc(t,n),auxiliary:Lc(t,n),negative:Wc(t),phrasal:qc(n)}};const Uc={tense:"PresentTense"},Rc={conditional:!0},Qc={tense:"FutureTense"},Zc={progressive:!0},_c={tense:"PastTense"},Yc={complete:!0,progressive:!1},Xc={passive:!0},eh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},th={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Uc]],["^wanted to #Infinitive$",[_c]],["^will want to #Infinitive$",[Qc]]],"gerund-phrase":[["^#PastTense #Gerund$",[_c]],["^#PresentTense #Gerund$",[Uc]],["^#Infinitive #Gerund$",[Uc]],["^will #Infinitive #Gerund$",[Qc]],["^have #PastTense #Gerund$",[_c]],["^will have #PastTense #Gerund$",[_c]]],"simple-present":[["^#PresentTense$",[Uc]],["^#Infinitive$",[Uc]]],"simple-past":[["^#PastTense$",[_c]]],"simple-future":[["^will #Adverb? #Infinitive",[Qc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Uc,Zc]]],"past-progressive":[["^(was|were) #Gerund$",[_c,Zc]]],"future-progressive":[["^will be #Gerund$",[Qc,Zc]]],"present-perfect":[["^(has|have) #PastTense$",[_c,Yc]]],"past-perfect":[["^had #PastTense$",[_c,Yc]],["^had #PastTense to #Infinitive",[_c,Yc]]],"future-perfect":[["^will have #PastTense$",[Qc,Yc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[_c,Zc]]],"past-perfect-progressive":[["^had been #Gerund$",[_c,Zc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Qc,Zc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[_c,Xc]],["^(was|were) being (#PastTense|#Participle)",[_c,Xc]],["^(had|have) been (#PastTense|#Participle)",[_c,Xc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Uc,Xc]],["^(is|are|am) being (#PastTense|#Participle)",[Uc,Xc]],["^has been (#PastTense|#Participle)",[Uc,Xc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Qc,Xc,Rc]],["will be being? (#PastTense|#Participle)",[Qc,Xc,Rc]]],"present-conditional":[["would be #PastTense",[Uc,Rc]]],"past-conditional":[["would have been #PastTense",[_c,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Qc]]],"auxiliary-past":[["^did #Infinitive$",[_c,{plural:!1}]],["^used to #Infinitive$",[_c,Yc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Uc,Yc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[_c]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let nh=[];Object.keys(th).map(e=>{th[e].forEach(t=>{nh.push({name:e,match:t[0],data:eh(t[1])})})});var rh=nh,ah=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(),oh(r)&&(n.remove(r),r=n.last()),oh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:ih(t,e)}};const lh=e=>e,uh=(e,t)=>{let n=sh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},ch=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=sh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},hh=function(e,t){let n=sh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},dh=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},ph=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,dh(e)),r&&e.replace(t.root,r),e},mh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),gh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},fh=function(e){return e&&e.isView?e.text("normal"):""},bh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,dh(e))};var vh=function(e){let t=Kc(e);e=e.clone().toView();const n=ah(e,t);return{root:t.root.text(),preAdverbs:gh(t.adverbs.pre),postAdverbs:gh(t.adverbs.post),auxiliary:fh(t.auxiliary),negative:t.negative.found,prefix:fh(t.prefix),infinitive:bh(t.root),grammar:n}};const yh={tags:!0};var wh=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,dh(r)),i&&e.replace(r,i,yh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=hh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const kh={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,dh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=sh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,kh),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",kh),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,dh(a)),n(o,e.model).Participle}},Ah={infinitive:Ph.simple,"simple-present":Ph.simple,"simple-past":lh,"simple-future":Ph.both,"present-progressive":e=>(e.replace("are","were",kh),e.replace("(is|are|am)","was",kh),e),"past-progressive":lh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ph.hasHad,"past-perfect":lh,"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":lh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",kh),e),"passive-past":e=>(e.replace("have","had",kh),e),"passive-present":e=>(e.replace("(is|are)","was",kh),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",kh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":lh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",kh),e),"auxiliary-past":lh,"auxiliary-present":e=>(e.replace("(do|does)","did",kh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",kh):(Ph.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":lh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",kh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ph.simple(e,t),mh(e),e)};var jh=function(e,t,n){return Ah.hasOwnProperty(n)?((e=Ah[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Eh={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,dh(a)),!1===uh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=ch(e)),o&&(e=e.replace(a,o,Eh)).not("#Particle").tag("PresentTense"),e},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,dh(a)),!1===uh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Eh)).not("#Particle").tag("Gerund"),e},Ih={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=sh(e).subject;if(uh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Eh)}return e},"simple-past":xh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=ch(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":lh,"past-progressive":(e,t)=>{let n=ch(e);return e.replace("(were|was)",n,Eh)},"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=sh(e).subject;return uh(e)||n.has("i")?((e=ph(e,t)).remove("had"),e):(e.replace("had","has",Eh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":lh,"past-perfect-progressive":e=>e.replace("had","has",Eh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=ch(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Eh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":lh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":lh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Nh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=hh(e);return e.replace(t.auxiliary,n),e}return Nh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":lh,"modal-infinitive":lh,"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,dh(r)),a&&(e=e.replace(t.root,a,Eh))})(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 uh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Eh),e.remove("will"),e}};var Gh=function(e,t,n){return Ih.hasOwnProperty(n)?((e=Ih[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Th={tags:!0},Ch=(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,dh(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,dh(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},Oh={infinitive:Ch,"simple-present":Ch,"simple-past":Ch,"simple-future":lh,"present-progressive":Dh,"past-progressive":Dh,"future-progressive":lh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":lh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":lh,"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":lh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":lh,"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":lh,"modal-past":lh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Bh=function(e,t,n){return e.has("will")||e.has("going to")?e:Oh.hasOwnProperty(n)?((e=Oh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Vh={tags:!0};var zh=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,dh(a));let s=r(i,e.model).Gerund;return s&&(s=`${ch(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(["preTagger","postTagger","chunks"]),e};const $h={tags:!0},Fh=function(e,t){let n=hh(e);return e.prepend(n+" not"),e},Sh=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)},Hh=e=>e.has("(is|was|am|are|will|were|be)"),Mh={"simple-present":(e,t)=>!0===Hh(e)?Sh(e):(e=ph(e,t),e=Fh(e)),"simple-past":(e,t)=>!0===Hh(e)?Sh(e):((e=ph(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Hh(e)?Sh(e):Fh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",$h),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=Fh(e)).replace("wants","want",$h)};var Jh=function(e,t,n){if(e.has("#Negative"))return e;if(Mh.hasOwnProperty(n))return e=Mh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Hh(e)?Sh(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(Kc)}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=>(Kc(e),sh(e).subject))}adverbs(e){return Lh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Lh(this,e).filter(e=>!0!==sh(e).plural)}isPlural(e){return Lh(this,e).filter(e=>!0===sh(e).plural)}isImperative(e){return Lh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return wh(e,t,n.form)})}toPresentTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return Gh(e,t,n.form)})}toPastTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return jh(e,t,n.form)})}toFutureTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return Bh(e,t,n.form)})}toGerund(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return zh(e,t,n.form)})}conjugate(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:wh(e.clone(),t,n.form).text("normal"),PastTense:jh(e.clone(),t,n.form).text("normal"),PresentTense:Gh(e.clone(),t,n.form).text("normal"),FutureTense:Bh(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=Kc(e),n=ah(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=Hc(this);return t=Lh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Hl),m.plugin(lu),m.plugin(gu),m.plugin(Tu),m.plugin(pc),m.plugin(fc),m.plugin(Ec),m.plugin(Sc),m.plugin(Wh),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]);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.0";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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\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(We),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 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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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(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||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=In(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Tn=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})},Cn=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.find(e=>r.has(e)))})},Dn=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},On=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=Gn(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=Tn(a,t.hooks);return o=Cn(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),Dn(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===On(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 Vn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Vn.test(t))!function(e,t,n,r){let a=t.split(Vn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn,Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Rn=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:Ln(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Wn(t=e).forEach(Mn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Wn(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},Qn=function(e){let t=Wn(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},Zn={text:Un,txt:Un,array:Qn,flat:Qn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Yn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Wn(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 Yn(this.json),_n(this.json,e)}debug(){return Yn(this.json),_n(this.json,"debug"),this}}const er=function(e){let t=Rn(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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)}},ur=function(e){Object.assign(e.prototype,lr)},cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var gr=function(e){let t=[],n=e.split(mr);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 Or=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Br=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Vr=/['’]/,zr=/^[a-z]\.([a-z]\.)+/i,$r=/^[-+.][0-9]/,Fr=/^'[0-9]{2}/;var Sr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Or,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$r.test(e)?"'"===n&&Fr.test(e)?(n="",t):"":(n="",t)))).replace(Br,a=>(r=a,Vr.test(a)&&/[sn]['’]$/.test(t)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Hr=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,Lr=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var qr=function(e){return function(e){return!0===Mr.test(e)||!0===Wr.test(e)||!0===Jr.test(e)||!0===Lr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Kr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Hr(r),r=n(r,t),r=qr(r),e.normal=r},Rr={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:Ar,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(Cr);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=Ir(n),n=xr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Sr(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=>{Kr(e,t)}),n})}}}},Ur={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["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=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])})});var _r=["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 Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xr={};Object.keys(Yr).forEach((function(e){Yr[e].split("").forEach((function(t){Xr[t]=e}))}));const ea=/\//,ta=/[a-z]\.[a-z]/i,na=/[0-9]/;var ra=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])),ea.test(n)&&!ta.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 aa=/^\p{Letter}+-\p{Letter}+$/u;var oa=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"),aa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ia=function(e){let t=0,n=0,r=e.document;for(let e=0;esa(e,ra),machine:e=>sa(e,oa),normal:e=>sa(e,Kr),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 ha={safe:!0,min:3};var da={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ua},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ha,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ca(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(fn),m.extend(St),m.extend(Nn),m.extend(dr),m.plugin(be),m.extend(la),m.plugin(f),m.extend(Ge),m.extend(da),m.extend(Pe),m.extend(Bn);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"},ma={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ga=36,fa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ba=fa.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=ga,a=1;for(;n=0;n--,a*=ga){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ya=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=Pa(ma[e]);xa.test(e)?Object.keys(t).forEach(t=>{if(Ia[t]=e,"Noun|Verb"===e){let e=Ea(t,Ga);Ia[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ta="Adjective";var Ca={beforeTags:{Determiner:Ta,Possessive:Ta},afterTags:{Adjective:Ta},beforeWords:{seem:Ta,seemed:Ta,seems:Ta,feel:Ta,feels:Ta,felt:Ta,appear:Ta,appears:Ta,appeared:Ta,also:Ta,over:Ta,under:Ta,too:Ta,it:Ta,but:Ta,still:Ta,really:Ta,quite:Ta,well:Ta,very:Ta,deeply:Ta,profoundly:Ta,extremely:Ta,so:Ta,badly:Ta,mostly:Ta,totally:Ta,awfully:Ta,rather:Ta,nothing:Ta,something:Ta,anything:Ta},afterWords:{too:Ta,also:Ta,or:Ta}};const Da="Gerund";var Oa={beforeTags:{Adverb:Da,Preposition:Da,Conjunction:Da},afterTags:{Adverb:Da,Possessive:Da,Person:Da,Pronoun:Da,Determiner:Da,Copula:Da,Preposition:Da,Conjunction:Da,Comparative:Da},beforeWords:{been:Da,keep:Da,continue:Da,stop:Da,am:Da,be:Da,me:Da,began:Da,start:Da,starts:Da,started:Da,stops:Da,stopped:Da,help:Da,helps:Da,avoid:Da,avoids:Da,love:Da,loves:Da,loved:Da,hate:Da,hates:Da,hated:Da},afterWords:{you:Da,me:Da,her:Da,him:Da,them:Da,their:Da,it:Da,this:Da,there:Da,on:Da,about:Da,for:Da}},Ba={beforeTags:Object.assign({},Ca.beforeTags,Oa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ca.afterTags,Oa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ca.beforeWords,Oa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ca.afterWords,Oa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Va="Singular";var za={beforeTags:{Determiner:Va,Possessive:Va,Acronym:Va,Noun:Va,Adjective:Va,PresentTense:Va,Gerund:Va,PastTense:Va,Infinitive:Va,Date:Va},afterTags:{Value:Va,Modal:Va,Copula:Va,PresentTense:Va,PastTense:Va,Demonym:Va},beforeWords:{the:Va,with:Va,without:Va,of:Va,for:Va,any:Va,all:Va,on:Va,cut:Va,cuts:Va,save:Va,saved:Va,saves:Va,make:Va,makes:Va,made:Va,minus:Va,plus:Va,than:Va,another:Va,versus:Va,neither:Va,favorite:Va,best:Va,daily:Va,weekly:Va,linear:Va,binary:Va,mobile:Va,lexical:Va,technical:Va,computer:Va,scientific:Va,formal:Va},afterWords:{of:Va,system:Va,aid:Va,method:Va,utility:Va,tool:Va,reform:Va,therapy:Va,philosophy:Va,room:Va,authority:Va,says:Va,said:Va,wants:Va,wanted:Va}};const $a={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fa={beforeTags:Object.assign({},Ca.beforeTags,za.beforeTags,$a.beforeTags),afterTags:Object.assign({},Ca.afterTags,za.afterTags),beforeWords:Object.assign({},Ca.beforeWords,za.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,za.afterWords)};const Sa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ha={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ma={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ja={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var La={beforeTags:Object.assign({},Ca.beforeTags,Sa),afterTags:Object.assign({},Ca.afterTags,Ha),beforeWords:Object.assign({},Ca.beforeWords,Ma),afterWords:Object.assign({},Ca.afterWords,Ja)};const Wa="Infinitive";var qa={beforeTags:{Modal:Wa,Adverb:Wa,Negative:Wa,Plural:Wa},afterTags:{Determiner:Wa,Adverb:Wa,Possessive:Wa,Preposition:Wa},beforeWords:{i:Wa,we:Wa,you:Wa,they:Wa,to:Wa,please:Wa,will:Wa,have:Wa,had:Wa,would:Wa,could:Wa,should:Wa,do:Wa,did:Wa,does:Wa,can:Wa,must:Wa,us:Wa,me:Wa,he:Wa,she:Wa,it:Wa,being:Wa},afterWords:{the:Wa,me:Wa,you:Wa,him:Wa,her:Wa,them:Wa,it:Wa,a:Wa,an:Wa,up:Wa,down:Wa,by:Wa,out:Wa,off:Wa,when:Wa,all:Wa,to:Wa,because:Wa,although:Wa,before:Wa,how:Wa,otherwise:Wa,though:Wa,yet:Wa}};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Ca.beforeTags,qa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ca.afterTags,qa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Ca.beforeWords,qa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,qa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qa={},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"},_a={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Ya={beforeTags:Object.assign({},Oa.beforeTags,za.beforeTags,Ua),afterTags:Object.assign({},Oa.afterTags,za.afterTags,Qa),beforeWords:Object.assign({},Oa.beforeWords,za.beforeWords,Za),afterWords:Object.assign({},Oa.afterWords,za.afterWords,_a)},Xa={beforeTags:Object.assign({},qa.beforeTags,za.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qa.afterTags,za.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qa.beforeWords,za.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qa.afterWords,za.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ro={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ao={beforeTags:Object.assign({},to.beforeTags,ro.beforeTags),afterTags:Object.assign({},to.afterTags,ro.afterTags),beforeWords:Object.assign({},to.beforeWords,ro.beforeWords),afterWords:Object.assign({},to.afterWords,ro.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Ba,"Adj|Noun":Fa,"Adj|Past":La,"Adj|Present":Ra,"Noun|Verb":Xa,"Noun|Gerund":Ya,"Person|Noun":{beforeTags:Object.assign({},za.beforeTags,to.beforeTags),afterTags:Object.assign({},za.afterTags,to.afterTags),beforeWords:Object.assign({},za.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},za.afterWords,to.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,qa.beforeTags),afterTags:Object.assign({},to.afterTags,qa.afterTags),beforeWords:Object.assign({},to.beforeWords,qa.beforeWords),afterWords:Object.assign({},to.afterWords,qa.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const po="Adjective",mo="Infinitive",go="PresentTense",fo="Singular",bo="PastTense",vo="Adverb",yo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",jo="Modal",Eo="Participle";var xo=[null,null,{ea:fo,ia:Po,ic:po,ly:vo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":vo,"'ll":jo,"'re":"Copula",azy:po,eer:Po,end:ko,ped:bo,ffy:po,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:po,mum:po,nes:go,nny:po,ous:po,que:po,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:go,eld:bo,ken:Eo,ven:Eo,ten:Eo,ect:mo,ict:mo,ign:mo,ful:po,bal:po},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:po,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:go,ends:ko,enko:Ao,ette:fo,wner:fo,fies:go,fore:vo,gate:mo,gone:po,ices:yo,ints:yo,ruct:mo,ines:yo,ions:yo,less:po,llen:po,made:po,nsen:Ao,oses:go,ould:jo,some:po,sson:Ao,tion:fo,tage:Po,ique:fo,tive:po,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:po,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:po,nary:po},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:yo,bound:po,ettes:yo,fully:vo,ishes:go,ities:yo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:yo,rough:po,tches:go,tieth:"Ordinal",tures:yo,wards:vo,where:vo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const No="Adjective",Io="Noun",Go="Verb";var To=[null,null,{},{neo:Io,bio:Io,"de-":Go,"re-":Go,"un-":Go},{anti:Io,auto:Io,faux:No,hexa:Io,kilo:Io,mono:Io,nano:Io,octa:Io,poly:Io,semi:No,tele:Io,"pro-":No,"mis-":Go,"dis-":Go,"pre-":No},{anglo:Io,centi:Io,ethno:Io,ferro:Io,grand:Io,hepta:Io,hydro:Io,intro:Io,macro:Io,micro:Io,milli:Io,nitro:Io,penta:Io,quasi:No,radio:Io,tetra:Io,"omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:Io}];const Co="Adjective",Do="Infinitive",Oo="PresentTense",Bo="Singular",Vo="PastTense",zo="Adverb",$o="Expression",Fo="Actor",So="Verb",Ho="Noun",Mo="LastName";var Jo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Mo],[/.[^aeiou]ica$/,Bo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Vo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Vo,"rammed"],[/.[aeiou][sg]hed$/,Vo,"gushed"],[/.[aeiou]red$/,Vo,"hired"],[/.[aeiou]r?ried$/,Vo,"hurried"],[/[^aeiou]ard$/,Bo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,Vo,"hurled"],[/.[iao]sed$/,Vo,""],[/[aeiou]n?[cs]ed$/,Vo,""],[/[aeiou][rl]?[mnf]ed$/,Vo,""],[/[aeiou][ns]?c?ked$/,Vo,"bunked"],[/[aeiou]gned$/,Vo],[/[aeiou][nl]?ged$/,Vo],[/.[tdbwxyz]ed$/,Vo],[/[^aeiou][aeiou][tvx]ed$/,Vo],[/.[cdflmnprstv]ied$/,Vo,"emptied"]],e:[[/.[lnr]ize$/,Do,"antagonize"],[/.[^aeiou]ise$/,Do,"antagonise"],[/.[aeiou]te$/,Do,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,Mo,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Mo,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Bo,"magnesium"],[/[^aeiou]ism$/,Bo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,Fo,"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$/,Bo],[/[^i]fer$/,Do],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Bo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Bo],[/[a-z]'s$/,Ho],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,Mo]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Bo],[/[rdntkbhs]ly$/,zo],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,zo],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Bo]]};const Lo="Verb",Wo="Noun";var qo={leftTags:[["Adjective",Wo],["Possessive",Wo],["Determiner",Wo],["Adverb",Lo],["Pronoun",Lo],["Value",Wo],["Ordinal",Wo],["Modal",Lo],["Superlative",Wo],["Demonym",Wo],["Honorific","Person"]],leftWords:[["i",Lo],["first",Wo],["it",Lo],["there",Lo],["not",Lo],["because",Wo],["if",Wo],["but",Wo],["who",Lo],["this",Wo],["his",Wo],["when",Wo],["you",Lo],["very","Adjective"],["old",Wo],["never",Lo],["before",Wo],["a","Singular"],["the",Wo],["been",Lo]],rightTags:[["Copula",Wo],["PastTense",Wo],["Conjunction",Wo],["Modal",Wo]],rightWords:[["there",Lo],["me",Lo],["man","Adjective"],["only",Lo],["him",Lo],["it",Lo],["were",Wo],["took",Wo],["himself",Lo],["went",Wo],["who",Wo],["jr","Person"]]},Ko={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"},Uo={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 _o=/^.([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(_o);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(_o,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Xo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Xo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ri=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 ai=ni({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"}),oi=ni(Qo),ii=ni(Ro),si=ni(Uo),li=ri(ai),ui=ri(oi),ci=ri(ii),hi=ri(si),di=ni(Ko),pi=ni(Zo);var mi={fromPast:ai,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:hi,toComparative:di,toSuperlative:pi,fromComparative:ri(di),fromSuperlative:ri(pi)},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),{}),fi=[[/([^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,""]],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(vi[t].forEach(n=>e[n]=t),e),{});var yi=vi,wi=function(e){let t=e.substring(e.length-3);if(!0===yi.hasOwnProperty(t))return yi[t];let n=e.substring(e.length-2);return!0===yi.hasOwnProperty(n)?yi[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 Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},ji=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]),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"}],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"]),Gi={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")?xi.has(e)?e.replace(/ically/,"ical"):Ii.has(e)?null:Gi.hasOwnProperty(e)?Gi[e]:ji(e,Ni)||e:null};const Ci=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Di={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Di.hasOwnProperty(e))return Di[e];let t=ji(e,Ci);return t||e+"ly"};const Bi=[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"},zi=new Set(["terrible","annoying"]),$i=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},Fi=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:$i,adjToComparative:Fi,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:Ti,adjToAdverb:Oi,adjToNoun:function(e){if(Vi.hasOwnProperty(e))return Vi[e];if(zi.has(e))return null;let t=ji(e,Bi);return t||e+"ness"}}}},Mi=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 Ji=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Li=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=Ji(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ji(r,"Infinitive","Verb"),Object.assign(s,l),l=Ji(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ji(o,"Adjective","Superlative"),Object.assign(s,l),l=Ji(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Wi={two:{models:mi}};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"},Ki=function(e,t){const n={model:t,methods:Hi};let{lex:r,_multi:a}=Hi.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=Ai(e,Wi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=qi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(a,r,!1),"Adj|Present"===o&&(Ri(a,r,!0),function(e,t,n){let r=$i(e,n);t[r]=t[r]||"Superlative";let a=Fi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(a,Wi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(a,Wi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ki(n,t)};let Qi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:pa,models:mi,suffixPatterns:xo,prefixPatterns:To,endsWith:Jo,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:Ia,clues:ho,uncountable:{},orgWords:gi}};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=Ki(e.one.lexicon,e)).one.lexicon,e),e=Ui(e.two.switches,e),e=Li(e),e=Mi(e)}(Qi);var Zi=Qi;const _i=/^(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(_i.test(a.normal)){let e=a.normal.replace(_i,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Xi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const as=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(rs(e.normal)?Xi(e,"Plural","3-plural-guess"):Xi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ds=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>r.tags.has(e))?null:(os(e,t,n),r.tags.has("Noun")||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!hs[r.normal]?(Xi(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 ms=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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ps(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const gs=/['‘’‛‵′`´]/,fs=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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ys=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"]),ws=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ys.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)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};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){let a=e[t-1],o=e[t+1];if(ws(a)||ws(o))return Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ks(a)||ks(o))return Xi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Xi(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 Xi(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Es=/^[A-Z-]+$/,xs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[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===Es.test(n)||n.length>5||Gs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==xs.test(n)&&!0!==Is.test(n)&&!0!==js.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Gs.hasOwnProperty(r.text)&&js.test(r.text)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Xi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Es.test(r.text)&&r.text.length<=6?(Xi(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 Xi(s,l,"3-[neighbour]"),os(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},zs=function(e,t,n){0===e[t].tags.size&&(Xi(e[t],"Noun","3-[fallback]"),os(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)-?/,Js=(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},Ls=(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(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Ws={tagSwitch:Yi,checkSuffix:ms,checkRegex:bs,checkCase:ds,checkPrefix:vs,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")&&(Xi(o,"Verb","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Xi(o,"Adjective","3-[prefix]"),Xi(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=Js(e[t+1],n.afterWords);return o=o||Js(e[t-1],n.beforeWords),o=o||Ls(e[t-1],n.beforeTags,a),o=o||Ls(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ss[o]&&(u=Ss[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):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)},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 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"]},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},pl={in:!0,by:!0,for:!0};var ml=(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===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 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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>hl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},vl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.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;bl.hasOwnProperty(i)&&(s=bl[i](r,o,t)),s&&(s=vl(s,e),il(n,[a,o],s),fl(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=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)",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:"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: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:"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"}]),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,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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},El=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)},xl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?El(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},Nl={api:function(e){e.prototype.swap=xl}};m.plugin(tl),m.plugin(yl),m.plugin(jl),m.plugin(Nl);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},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{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},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 Jl=/\(/,Ll=/\)/,Wl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Jl,"");let t=e[e.length-1];t.post=t.post.replace(Ll,"")}),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={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Kl).join("|")+")"),Ul=RegExp("("+Object.values(Kl).join("|")+")"),Ql=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ul,"")})}(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 _l=/\./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(_l,""),e.normal=e.normal.replace(_l,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(_l,""),e.normal=e.normal.replace(_l,""),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)}},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),Zl(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",pu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var mu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=pu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[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 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 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")},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:vu(e,t),isSubordinate:bu(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);return t.found?(t.parse()[0]||{}).num: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 Eu=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 Nu=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 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=>Eu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return Nu(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)}}},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},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},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=Ju.hasOwnProperty(a)?Ju[a]:Mu(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:Mu(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},Wu=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"],Ru=[[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"]],Uu=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=Wu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ru.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(Uu(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=Wu(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(" ")},Zu=function(e){return e.numerator&&e.denominator?`${Qu({num:e.numerator})} out of ${Qu({num:e.denominator})}`:""};const _u={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 _u.hasOwnProperty(n)?t[t.length-1]=_u[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},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(Lu)}get(e){return ec(this,e).map(Lu)}json(e){return ec(this,e).map(t=>{let n=t.toView().json(e)[0],r=Lu(t);return n.fraction=r,n},[])}toDecimal(e){return ec(this,e).forEach(e=>{let{decimal:t}=Lu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return ec(this,e).forEach(e=>{let t=Lu(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=Lu(e),n=Xu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return ec(this,e).forEach(e=>{let t=Lu(e),n=Zu(t);e.replaceWith(n)}),this}toPercentage(e){return ec(this,e).forEach(e=>{let{decimal:t}=Lu(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},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=Lu(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")}},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=Wu(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},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},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},dc={api:function(e){tc(e),hc(e)}};const pc={people:!0,emails:!0,phoneNumbers:!0,places:!0},mc=function(e={}){return!1!==(e=Object.assign({},pc,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=mc}},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))})},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}},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},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},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},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}=vc(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=>(vc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(vc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(vc(e),e=kc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(vc(e),Pc(e)))}toNegative(e){return Ac(this,e).map(e=>(vc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(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 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)}},Ec=function(e){return e.match("#Honorific+? #Person+")},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 Nc="male",Ic="female",Gc={mr:Nc,mrs:Ic,miss:Ic,madam:Ic,king:Nc,queen:Ic,duke:Nc,duchess:Ic,baron:Nc,baroness:Ic,count:Nc,countess:Ic,prince:Nc,princess:Ic,sire:Nc,dame:Ic,lady:Ic,ayatullah:Nc,congressman:Nc,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 Nc;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 Nc}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 Nc;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(xc)}json(e){return Cc(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: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=Ec(this);return t=Cc(t,e),new People(this.document,t.pointer)}},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},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)}},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},Fc={api:function(e){Dc(e),Bc(e),Vc(e),$c(e)}},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},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},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 Jc=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},Lc=function(e){return e.match("#Negative")},Wc=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:Jc(t,n),negative:Lc(t),phrasal:Wc(n)}};const Kc={tense:"PresentTense"},Rc={conditional:!0},Uc={tense:"FutureTense"},Qc={progressive:!0},Zc={tense:"PastTense"},_c={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$",[Zc]],["^will want to #Infinitive$",[Uc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Zc]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Uc]],["^have #PastTense #Gerund$",[Zc]],["^will have #PastTense #Gerund$",[Zc]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[Zc]]],"simple-future":[["^will #Adverb? #Infinitive",[Uc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,Qc]]],"past-progressive":[["^(was|were) #Gerund$",[Zc,Qc]]],"future-progressive":[["^will be #Gerund$",[Uc,Qc]]],"present-perfect":[["^(has|have) #PastTense$",[Zc,_c]]],"past-perfect":[["^had #PastTense$",[Zc,_c]],["^had #PastTense to #Infinitive",[Zc,_c]]],"future-perfect":[["^will have #PastTense$",[Uc,_c]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Zc,Qc]]],"past-perfect-progressive":[["^had been #Gerund$",[Zc,Qc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Uc,Qc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Zc,Yc]],["^(was|were) being (#PastTense|#Participle)",[Zc,Yc]],["^(had|have) been (#PastTense|#Participle)",[Zc,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)",[Uc,Yc,Rc]],["will be being? (#PastTense|#Participle)",[Uc,Yc,Rc]]],"present-conditional":[["would be #PastTense",[Kc,Rc]]],"past-conditional":[["would have been #PastTense",[Zc,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Uc]]],"auxiliary-past":[["^did #Infinitive$",[Zc,{plural:!1}]],["^used to #Infinitive$",[Zc,_c]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Kc,_c,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Zc]]],"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,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},ph=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),mh=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"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var bh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:mh(t.adverbs.pre),postAdverbs:mh(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const vh={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,vh).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=ph(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),ph(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},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).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},Nh={infinitive:Eh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Eh(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":Eh,"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 Eh(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)=>(Eh(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$"),Eh(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 Nh.hasOwnProperty(n)?((e=Nh[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 Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var Lh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Jh(this,e).map(qc)}json(e,t){return Jh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=bh(t),n},[])}subjects(e){return Jh(this,e).map(e=>(qc(e),ih(e).subject))}adverbs(e){return Jh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Jh(this,e).filter(e=>!0!==ih(e).plural)}isPlural(e){return Jh(this,e).filter(e=>!0===ih(e).plural)}isImperative(e){return Jh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return yh(e,t,n.form)})}toPresentTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ih(e,t,n.form)})}toPastTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ah(e,t,n.form)})}toFutureTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Oh(e,t,n.form)})}toGerund(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Vh(e,t,n.form)})}conjugate(e){return Jh(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 Jh(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=Jh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Sl),m.plugin(su),m.plugin(mu),m.plugin(Gu),m.plugin(dc),m.plugin(gc),m.plugin(jc),m.plugin(Fc),m.plugin(Lh),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 8c7e000e6..7dca4abae 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.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},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,G={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 D=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.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 D.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=G.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof G[t]?(o=o.sort(G[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}},Q={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 R=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,M,I,Q);var H={api:function(t){Object.assign(t.prototype,R)},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]]},Gt=(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},Dt=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=Gt(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=>Dt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Ut=Bt;const Mt=Object.assign({},Lt,Vt,Ut);Mt.lookBehind=Mt.before,Mt.lookBefore=Mt.before,Mt.lookAhead=Mt.after,Mt.lookAfter=Mt.after,Mt.notIf=Mt.ifNo;var Wt=function(t){Object.assign(t.prototype,Mt)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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},Ge=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var De={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=Ge(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=/^\../,Ue=/^#./,Me=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}=Me(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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn,sn=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 ln="";var cn={green:t=>""+t+ln,red:t=>""+t+ln,blue:t=>""+t+ln,magenta:t=>""+t+ln,cyan:t=>""+t+ln,yellow:t=>""+t+ln,black:t=>""+t+ln,dim:t=>""+t+ln,i:t=>""+t+ln},an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(cn.blue("\n ──────")),e.forEach(t=>{console.log(cn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=cn.blue(" │ ")+cn.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 cn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},un=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},hn=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]}${cn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var pn=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()}},gn={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},bn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=bn(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},xn={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:bn,splitAll:vn}}},jn=function(t,e){let n=t.concat(e),r=bn(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=>yn(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},On=function(t,e){let n=bn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>yn(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},Pn=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=kn(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)}};_n.and=_n.union,_n.intersection=function(t){t=kn(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.not=function(t){t=kn(t,this);let e=En(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.difference=_n.not,_n.complement=function(){let t=this.all(),e=En(t.fullPointer,this.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=jn(t,[e])}),t=Pn(t,this.document),this.update(t)};var Sn={methods:xn,api:function(t){Object.assign(t.prototype,_n)}};const An=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var $n=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(An(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(An(t))})})}),e.filter(t=>t)}(t.regs),t.wants=function(t){let e=[];return t.forEach(t=>{"or"!==t.operator||t.optional||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=An(t);n&&e.push(n)})}))}),e}(t.regs),t.minWords=t.regs.filter(t=>!t.optional).length}),t},Tn=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})},Cn=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.find(t=>r.has(t)))})},zn=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},Nn=function(t,e){let[n,r,o]=t.pointer,i=e[n],s=r>4?r-2:0,l=t.tag||"";var c;if(c=t.tag,"[object Array]"===Object.prototype.toString.call(c)&&(l=t.tag.join(" #")),!l||i.every(t=>t.tags.has(l)))return;let a=t.reason||t.match;a=a?`|${a}|`:"";let u=(" "+a).padEnd(20)+" - ";const h=t=>""+t+"";for(;so+2);s+=1){let t=i[s].machine||i[s].normal;u+=s>r&&s{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=$n(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=Tn(o,e.hooks);return i=Cn(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),zn(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;const c="undefined"!=typeof process&&process.env?process.env:self.env||{};return c.DEBUG_TAGS&&console.log(`\n → ${t.length} corrections:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match;c.DEBUG_TAGS&&Nn(t,e);let a=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Fn(a,t.tag,r))return;if("-"===a[a.length-1].post)return}void 0!==t.tag&&(s(a,t.tag,n,t.safe,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 Vn=/ /,qn=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.text||"["+t.implicit+"]";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[0],e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Vn.test(e))!function(t,e,n,r){let o=e.split(Vn);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;nDn(t,e,n,r))};var Bn=Dn,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=>Mn({id:t})),e}return[Mn({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},Rn=t=>"[object Array]"===Object.prototype.toString.call(t),Hn=t=>(t=t||"").trim(),Zn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Wn.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:In(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=Mn({});return t.forEach(t=>{if((t=Mn(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(Mn),e);var e},Kn=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},Jn=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},Xn={text:Kn,txt:Kn,array:Jn,flat:Jn},Yn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Kn(t,!0)),null):Xn.hasOwnProperty(e)?Xn[e](t):t},tr=t=>{Qn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},er=/\//;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=Hn(t),!er.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)||Mn({});return new g(e)}add(t,e={}){if(Rn(t))return t.forEach(t=>this.add(Hn(t),e)),this;t=Hn(t);let n=Mn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Hn(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 Rn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){tr(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 tr(this.json),Yn(this.json,t)}debug(){return tr(this.json),Yn(this.json,"debug"),this}}const nr=function(t){let e=Zn(t);return new g(e)};nr.prototype.plugin=function(t){t(this)};var rr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const or=function(t){if(rr.hasOwnProperty(t.id))return rr[t.id];if(rr.hasOwnProperty(t.is))return rr[t.is];let e=t._cache.parents.find(t=>rr[t]);return rr[e]};var ir=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:or(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 sr=function(t){return t?"string"==typeof t?[t]:t:[]};var lr=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=sr(t[e].children),t[e].not=sr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},cr={one:{setTag:Bn,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=lr(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 nr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return ir(n)}}};const ar=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ur={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||""),ar(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 ar(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)}},hr=function(t){Object.assign(t.prototype,ur)},fr={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 pr=new Set(["Auxiliary","Possessive"]);var dr={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(pr.has(t)||!e.hasOwnProperty(n))return 1;if(pr.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:hr,lib:fr};const gr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var wr=function(t){let e=[],n=t.split(mr);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 Fr=/^[ \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]+$/,Vr=/['’]/,qr=/^[a-z]\.([a-z]\.)+/i,Gr=/^[-+.][0-9]/,Dr=/^'[0-9]{2}/;var Br=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Fr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Gr.test(t)?"'"===n&&Dr.test(t)?(n="",e):"":(n="",e)))).replace(Lr,o=>(r=o,Vr.test(o)&&/[sn]['’]$/.test(e)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===qr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}},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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Wr=/^[A-Z]\.,?$/,Ir=/[A-Z]{2,}('s|,)?$/,Qr=/([a-z]\.)+[a-z]\.?$/;var Rr=function(t){return function(t){return!0===Mr.test(t)||!0===Qr.test(t)||!0===Wr.test(t)||!0===Ir.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Hr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Ur(r),r=n(r,e),r=Rr(r),t.normal=r},Zr={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:kr,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(zr);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=$r(n),n=Sr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Br(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=>{Hr(t,e)}),n})}}}},Kr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Jr={},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(t=>{t[0].forEach(e=>{Jr[e]=!0,Xr[e]="Abbreviation",void 0!==t[1]&&(Xr[e]=[Xr[e],t[1]])})});var Yr=["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 to={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(to).forEach((function(t){to[t].split("").forEach((function(e){eo[e]=t}))}));const no=/\//,ro=/[a-z]\.[a-z]/i,oo=/[0-9]/;var io=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])),no.test(n)&&!ro.test(n)&&!oo.test(n)){let e=n.split(no);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const so=/^\p{Letter}+-\p{Letter}+$/u;var lo=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"),so.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},co=function(t){let e=0,n=0,r=t.document;for(let t=0;tao(t,io),machine:t=>ao(t,lo),normal:t=>ao(t,Hr),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 po={safe:!0,min:3};var go={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},po,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=fo(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}},mo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=ho},lib:go,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(wn),d.extend(De),d.extend(Sn),d.extend(dr),d.plugin(yt),d.extend(uo),d.plugin(w),d.extend($t),d.extend(mo),d.extend(Et),d.extend(Ln),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]);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.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},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}},Q={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 R=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,Q);var H={api:function(t){Object.assign(t.prototype,R)},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|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn,sn=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 ln="";var cn={green:t=>""+t+ln,red:t=>""+t+ln,blue:t=>""+t+ln,magenta:t=>""+t+ln,cyan:t=>""+t+ln,yellow:t=>""+t+ln,black:t=>""+t+ln,dim:t=>""+t+ln,i:t=>""+t+ln},an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(cn.blue("\n ──────")),e.forEach(t=>{console.log(cn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=cn.blue(" │ ")+cn.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 cn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},un=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},hn=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]}${cn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var pn=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()}},gn={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},bn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=bn(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},xn={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:bn,splitAll:vn}}},jn=function(t,e){let n=t.concat(e),r=bn(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=>yn(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},On=function(t,e){let n=bn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>yn(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},Pn=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=kn(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)}};_n.and=_n.union,_n.intersection=function(t){t=kn(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.not=function(t){t=kn(t,this);let e=En(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.difference=_n.not,_n.complement=function(){let t=this.all(),e=En(t.fullPointer,this.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=jn(t,[e])}),t=Pn(t,this.document),this.update(t)};var Sn={methods:xn,api:function(t){Object.assign(t.prototype,_n)}};const An=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var $n=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(An(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(An(t))})})}),e.filter(t=>t)}(t.regs),t.wants=function(t){let e=[];return t.forEach(t=>{"or"!==t.operator||t.optional||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=An(t);n&&e.push(n)})}))}),e}(t.regs),t.minWords=t.regs.filter(t=>!t.optional).length}),t},Tn=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})},Cn=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.find(t=>r.has(t)))})},zn=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},Nn=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=$n(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=Tn(o,e.hooks);return i=Cn(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),zn(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===Nn(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 Ln=/ /,Vn=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(),Ln.test(e))!function(t,e,n,r){let o=e.split(Ln);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;nDn(t,e,n,r))};var Gn=Dn,Bn=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=>Mn({id:t})),e}return[Mn({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},Qn=t=>"[object Array]"===Object.prototype.toString.call(t),Rn=t=>(t=t||"").trim(),Hn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Un.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:Wn(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=Mn({});return t.forEach(t=>{if((t=Mn(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):(In(e=t).forEach(Mn),e);var e},Zn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return In(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},Kn=function(t){let e=In(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},Jn={text:Zn,txt:Zn,array:Kn,flat:Kn},Xn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Zn(t,!0)),null):Jn.hasOwnProperty(e)?Jn[e](t):t},Yn=t=>{In(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},tr=/\//;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=Rn(t),!tr.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)||Mn({});return new g(e)}add(t,e={}){if(Qn(t))return t.forEach(t=>this.add(Rn(t),e)),this;t=Rn(t);let n=Mn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Rn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return In(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=In(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 In(this.json)}fillDown(){var t;return t=this.json,In(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 Qn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){Yn(this.json);let t=In(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 Yn(this.json),Xn(this.json,t)}debug(){return Yn(this.json),Xn(this.json,"debug"),this}}const er=function(t){let e=Hn(t);return new g(e)};er.prototype.plugin=function(t){t(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(t){if(nr.hasOwnProperty(t.id))return nr[t.id];if(nr.hasOwnProperty(t.is))return nr[t.is];let e=t._cache.parents.find(t=>nr[t]);return nr[e]};var or=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:rr(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 ir=function(t){return t?"string"==typeof t?[t]:t:[]};var sr=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=ir(t[e].children),t[e].not=ir(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},lr={one:{setTag:Gn,unTag:Bn,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=sr(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 er(e).cache().fillDown().out("array")}(Object.assign({},e,t));return or(n)}}};const cr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ar={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||""),cr(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 cr(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)}},ur=function(t){Object.assign(t.prototype,ar)},hr={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 fr=new Set(["Auxiliary","Possessive"]);var pr={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(fr.has(t)||!e.hasOwnProperty(n))return 1;if(fr.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:lr,api:ur,lib:hr};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var mr=function(t){let e=[],n=t.split(gr);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 Nr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Fr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Lr=/['’]/,Vr=/^[a-z]\.([a-z]\.)+/i,qr=/^[-+.][0-9]/,Dr=/^'[0-9]{2}/;var Gr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Nr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!qr.test(t)?"'"===n&&Dr.test(t)?(n="",e):"":(n="",e)))).replace(Fr,o=>(r=o,Lr.test(o)&&/[sn]['’]$/.test(e)&&!1===Lr.test(n)?(r=r.replace(Lr,""),"'"):!0===Vr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}},Br=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Ur=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,Ir=/([a-z]\.)+[a-z]\.?$/;var Qr=function(t){return function(t){return!0===Mr.test(t)||!0===Ir.test(t)||!0===Ur.test(t)||!0===Wr.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Rr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Br(r),r=n(r,e),r=Qr(r),t.normal=r},Hr={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:Or,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(Cr);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=Ar(n),n=_r(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Gr(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=>{Rr(t,e)}),n})}}}},Zr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Kr={},Jr={};[[["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=>{Kr[e]=!0,Jr[e]="Abbreviation",void 0!==t[1]&&(Jr[e]=[Jr[e],t[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((t,e)=>(t[e]=!0,t),{});let Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},to={};Object.keys(Yr).forEach((function(t){Yr[t].split("").forEach((function(e){to[e]=t}))}));const eo=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var oo=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])),eo.test(n)&&!no.test(n)&&!ro.test(n)){let e=n.split(eo);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const io=/^\p{Letter}+-\p{Letter}+$/u;var so=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"),io.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},lo=function(t){let e=0,n=0,r=t.document;for(let t=0;tco(t,oo),machine:t=>co(t,so),normal:t=>co(t,Rr),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 fo={safe:!0,min:3};var po={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},fo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=ho(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}},go={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=uo},lib:po,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(wn),d.extend(Ge),d.extend(Sn),d.extend(pr),d.plugin(yt),d.extend(ao),d.plugin(w),d.extend($t),d.extend(go),d.extend(Et),d.extend(Fn),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 9a892c93f..db62b5968 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.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},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 G={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 D=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.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 D.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=G.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof G[t]?(o=o.sort(G[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 Q={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 R=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,M,I,Q);var H={api:function(t){Object.assign(t.prototype,R)},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]]},Gt=(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},Dt=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=Gt(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=>Dt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Gt(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=>Dt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Ut=Bt;const Mt=Object.assign({},Lt,Vt,Ut);Mt.lookBehind=Mt.before,Mt.lookBefore=Mt.before,Mt.lookAhead=Mt.after,Mt.lookAfter=Mt.after,Mt.notIf=Mt.ifNo;var Wt=function(t){Object.assign(t.prototype,Mt)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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},Ge=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var De={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=Ge(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=/^\../,Ue=/^#./,Me=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}=Me(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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn;var sn=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 ln={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 an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(ln.blue("\n ──────")),e.forEach(t=>{console.log(ln.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=ln.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=ln.blue(" │ ")+ln.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 ln[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var cn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(ln.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(ln.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(ln.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(ln.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var un=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]}${ln.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const hn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var fn=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 dn={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},yn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var bn=function(t,e){let n=yn(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 vn={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:yn,splitAll:bn}}};var xn=function(t,e){let n=t.concat(e),r=yn(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=>wn(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 En=function(t,e){let n=yn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>wn(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},kn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Pn={union:function(t){t=On(t,this);let e=xn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)}};Pn.and=Pn.union,Pn.intersection=function(t){t=On(t,this);let e=En(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.not=function(t){t=On(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.difference=Pn.not,Pn.complement=function(){let t=this.all(),e=jn(t.fullPointer,this.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=xn(t,[e])}),t=kn(t,this.document),this.update(t)};var _n={methods:vn,api:function(t){Object.assign(t.prototype,Pn)}};const Sn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var An=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(Sn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Sn(t))})})}),e.filter(t=>t)}(t.regs),t.wants=function(t){let e=[];return t.forEach(t=>{"or"!==t.operator||t.optional||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Sn(t);n&&e.push(n)})}))}),e}(t.regs),t.minWords=t.regs.filter(t=>!t.optional).length}),t};var $n=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 Tn=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.find(t=>r.has(t)))})};var Cn=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 zn=function(t,e){let[n,r,o]=t.pointer,i=e[n],s=r>4?r-2:0,l=t.tag||"";var a;if(a=t.tag,"[object Array]"===Object.prototype.toString.call(a)&&(l=t.tag.join(" #")),!l||i.every(t=>t.tags.has(l)))return;let c=t.reason||t.match;c=c?`|${c}|`:"";let u=(" "+c).padEnd(20)+" - ";const h=t=>""+t+"";for(;so+2);s+=1){let t=i[s].machine||i[s].normal;u+=s>r&&s{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=An(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=$n(o,e.hooks);return i=Tn(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),Cn(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;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};return a.DEBUG_TAGS&&console.log(`\n → ${t.length} corrections:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match;a.DEBUG_TAGS&&zn(t,e);let c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Nn(c,t.tag,r))return;if("-"===c[c.length-1].post)return}void 0!==t.tag&&(s(c,t.tag,n,t.safe,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 Ln=/ /,Vn=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.text||"["+t.implicit+"]";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[0],e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Ln.test(e))!function(t,e,n,r){let o=e.split(Ln);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;nGn(t,e,n,r))};var Dn=Gn;var Bn=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=>Un({id:t})),e}return[Un({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},Qn=t=>"[object Array]"===Object.prototype.toString.call(t),Rn=t=>(t=t||"").trim(),Hn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Mn.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:Wn(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=Un({});return t.forEach(t=>{if((t=Un(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):(In(e=t).forEach(Un),e);var e},Zn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return In(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},Kn=function(t){let e=In(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},Jn={text:Zn,txt:Zn,array:Kn,flat:Kn},Xn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Zn(t,!0)),null):Jn.hasOwnProperty(e)?Jn[e](t):t},Yn=t=>{In(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},tr=/\//;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=Rn(t),!tr.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)||Un({});return new g(e)}add(t,e={}){if(Qn(t))return t.forEach(t=>this.add(Rn(t),e)),this;t=Rn(t);let n=Un({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Rn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return In(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=In(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 In(this.json)}fillDown(){var t;return t=this.json,In(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 Qn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){Yn(this.json);let t=In(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 Yn(this.json),Xn(this.json,t)}debug(){return Yn(this.json),Xn(this.json,"debug"),this}}const er=function(t){let e=Hn(t);return new g(e)};er.prototype.plugin=function(t){t(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(t){if(nr.hasOwnProperty(t.id))return nr[t.id];if(nr.hasOwnProperty(t.is))return nr[t.is];let e=t._cache.parents.find(t=>nr[t]);return nr[e]};var or=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:rr(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 ir=function(t){return t?"string"==typeof t?[t]:t:[]};var sr=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=ir(t[e].children),t[e].not=ir(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 lr={one:{setTag:Dn,unTag:Bn,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=sr(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 er(e).cache().fillDown().out("array")}(Object.assign({},e,t));return or(n)}}};const ar=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var cr={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||""),ar(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 ar(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 ur=function(t){Object.assign(t.prototype,cr)};var hr={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 fr=new Set(["Auxiliary","Possessive"]);var pr={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(fr.has(t)||!e.hasOwnProperty(n))return 1;if(fr.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:lr,api:ur,lib:hr};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var mr=function(t){let e=[],n=t.split(gr);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 Nr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Fr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Lr=/['’]/,Vr=/^[a-z]\.([a-z]\.)+/i,qr=/^[-+.][0-9]/,Gr=/^'[0-9]{2}/;var Dr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Nr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!qr.test(t)?"'"===n&&Gr.test(t)?(n="",e):"":(n="",e)))).replace(Fr,o=>(r=o,Lr.test(o)&&/[sn]['’]$/.test(e)&&!1===Lr.test(n)?(r=r.replace(Lr,""),"'"):!0===Vr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Br=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 Ur=/([A-Z]\.)+[A-Z]?,?$/,Mr=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,Ir=/([a-z]\.)+[a-z]\.?$/;var Qr=function(t){return function(t){return!0===Ur.test(t)||!0===Ir.test(t)||!0===Mr.test(t)||!0===Wr.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Rr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Br(r),r=n(r,e),r=Qr(r),t.normal=r};var Hr={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:Or,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(Cr);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=Ar(n),n=_r(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Dr(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=>{Rr(t,e)}),n})}}}};var Zr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Kr={},Jr={};[[["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=>{Kr[e]=!0,Jr[e]="Abbreviation",void 0!==t[1]&&(Jr[e]=[Jr[e],t[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((t,e)=>(t[e]=!0,t),{});let Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},to={};Object.keys(Yr).forEach((function(t){Yr[t].split("").forEach((function(e){to[e]=t}))}));const eo=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var oo=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])),eo.test(n)&&!no.test(n)&&!ro.test(n)){let e=n.split(eo);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const io=/^\p{Letter}+-\p{Letter}+$/u;var so=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"),io.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var lo=function(t){let e=0,n=0,r=t.document;for(let t=0;tao(t,oo),machine:t=>ao(t,so),normal:t=>ao(t,Rr),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 fo={safe:!0,min:3};var po={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},fo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=ho(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 go={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=uo},lib:po,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(mn),d.extend(De),d.extend(_n),d.extend(pr),d.plugin(yt),d.extend(co),d.plugin(w),d.extend($t),d.extend(go),d.extend(Et),d.extend(Fn);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]);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.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},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 Q={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 R=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,Q);var H={api:function(t){Object.assign(t.prototype,R)},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|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn;var sn=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 ln={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 an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(ln.blue("\n ──────")),e.forEach(t=>{console.log(ln.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=ln.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=ln.blue(" │ ")+ln.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 ln[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var cn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(ln.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(ln.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(ln.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(ln.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var un=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]}${ln.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const hn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var fn=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 dn={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},yn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var bn=function(t,e){let n=yn(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 vn={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:yn,splitAll:bn}}};var xn=function(t,e){let n=t.concat(e),r=yn(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=>wn(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 En=function(t,e){let n=yn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>wn(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},kn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Pn={union:function(t){t=On(t,this);let e=xn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)}};Pn.and=Pn.union,Pn.intersection=function(t){t=On(t,this);let e=En(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.not=function(t){t=On(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.difference=Pn.not,Pn.complement=function(){let t=this.all(),e=jn(t.fullPointer,this.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=xn(t,[e])}),t=kn(t,this.document),this.update(t)};var _n={methods:vn,api:function(t){Object.assign(t.prototype,Pn)}};const Sn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var An=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(Sn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Sn(t))})})}),e.filter(t=>t)}(t.regs),t.wants=function(t){let e=[];return t.forEach(t=>{"or"!==t.operator||t.optional||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Sn(t);n&&e.push(n)})}))}),e}(t.regs),t.minWords=t.regs.filter(t=>!t.optional).length}),t};var $n=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 Tn=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.find(t=>r.has(t)))})};var Cn=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 zn=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=An(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=$n(o,e.hooks);return i=Tn(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),Cn(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===zn(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 Fn=/ /,Ln=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Vn=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(),Fn.test(e))!function(t,e,n,r){let o=e.split(Fn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Vn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nqn(t,e,n,r))};var Dn=qn;var Gn=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=>Bn({id:t})),e}return[Bn({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},In=t=>"[object Array]"===Object.prototype.toString.call(t),Qn=t=>(t=t||"").trim(),Rn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Mn.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:Un(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=Bn({});return t.forEach(t=>{if((t=Bn(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):(Wn(e=t).forEach(Bn),e);var e},Hn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Wn(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},Zn=function(t){let e=Wn(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},Kn={text:Hn,txt:Hn,array:Zn,flat:Zn},Jn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Hn(t,!0)),null):Kn.hasOwnProperty(e)?Kn[e](t):t},Xn=t=>{Wn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},Yn=/\//;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=Qn(t),!Yn.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)||Bn({});return new g(e)}add(t,e={}){if(In(t))return t.forEach(t=>this.add(Qn(t),e)),this;t=Qn(t);let n=Bn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Qn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Wn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Wn(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 Wn(this.json)}fillDown(){var t;return t=this.json,Wn(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 In(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){Xn(this.json);let t=Wn(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 Xn(this.json),Jn(this.json,t)}debug(){return Xn(this.json),Jn(this.json,"debug"),this}}const tr=function(t){let e=Rn(t);return new g(e)};tr.prototype.plugin=function(t){t(this)};var er={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(t){if(er.hasOwnProperty(t.id))return er[t.id];if(er.hasOwnProperty(t.is))return er[t.is];let e=t._cache.parents.find(t=>er[t]);return er[e]};var rr=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:nr(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 or=function(t){return t?"string"==typeof t?[t]:t:[]};var ir=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=or(t[e].children),t[e].not=or(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 sr={one:{setTag:Dn,unTag:Gn,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=ir(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 tr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return rr(n)}}};const lr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ar={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||""),lr(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 lr(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 cr=function(t){Object.assign(t.prototype,ar)};var ur={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 hr=new Set(["Auxiliary","Possessive"]);var fr={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(hr.has(t)||!e.hasOwnProperty(n))return 1;if(hr.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:sr,api:cr,lib:ur};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,dr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var gr=function(t){let e=[],n=t.split(dr);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 zr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Nr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Fr=/['’]/,Lr=/^[a-z]\.([a-z]\.)+/i,Vr=/^[-+.][0-9]/,qr=/^'[0-9]{2}/;var Dr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(zr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Vr.test(t)?"'"===n&&qr.test(t)?(n="",e):"":(n="",e)))).replace(Nr,o=>(r=o,Fr.test(o)&&/[sn]['’]$/.test(e)&&!1===Fr.test(n)?(r=r.replace(Fr,""),"'"):!0===Lr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Gr=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 Br=/([A-Z]\.)+[A-Z]?,?$/,Mr=/^[A-Z]\.,?$/,Ur=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var Ir=function(t){return function(t){return!0===Br.test(t)||!0===Wr.test(t)||!0===Mr.test(t)||!0===Ur.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Qr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Gr(r),r=n(r,e),r=Ir(r),t.normal=r};var Rr={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:Er,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(Tr);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=Sr(n),n=Pr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Dr(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=>{Qr(t,e)}),n})}}}};var Hr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zr={},Kr={};[[["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=>{Zr[e]=!0,Kr[e]="Abbreviation",void 0!==t[1]&&(Kr[e]=[Kr[e],t[1]])})});var Jr=["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 Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(Xr).forEach((function(t){Xr[t].split("").forEach((function(e){Yr[e]=t}))}));const to=/\//,eo=/[a-z]\.[a-z]/i,no=/[0-9]/;var ro=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])),to.test(n)&&!eo.test(n)&&!no.test(n)){let e=n.split(to);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=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"),oo.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var so=function(t){let e=0,n=0,r=t.document;for(let t=0;tlo(t,ro),machine:t=>lo(t,io),normal:t=>lo(t,Qr),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 ho={safe:!0,min:3};var fo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},ho,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=uo(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 po={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=co},lib:fo,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(mn),d.extend(Ge),d.extend(_n),d.extend(fr),d.plugin(yt),d.extend(ao),d.plugin(w),d.extend($t),d.extend(po),d.extend(Et),d.extend(Nn);export{d as default}; diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index 869b5ddab..63cda6015 100644 --- a/builds/three/compromise-three.cjs +++ b/builds/three/compromise-three.cjs @@ -1,2 +1,18343 @@ -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.0";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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=In(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Tn=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})},Cn=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.find(e=>r.has(e)))})},Dn=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},On=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=Gn(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=Tn(a,t.hooks);return o=Cn(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),Dn(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&&On(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Bn(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 zn=/ /,$n=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],t,a),1!=(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(/^#/,""),Fn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nSn(e,t,n,r))};var Hn=Sn,Mn=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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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):(qn(t=e).forEach(Jn),t);var t},Qn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return qn(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=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},_n={text:Qn,txt:Qn,array:Zn,flat:Zn},Yn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Qn(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Xn=e=>{qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},er=/\//;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),!er.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(Kn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Jn({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 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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(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 Xn(this.json),Yn(this.json,e)}debug(){return Xn(this.json),Yn(this.json,"debug"),this}}const tr=function(e){let t=Rn(e);return new g$1(t)};tr.prototype.plugin=function(e){e(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(e){if(nr.hasOwnProperty(e.id))return nr[e.id];if(nr.hasOwnProperty(e.is))return nr[e.is];let t=e._cache.parents.find(e=>nr[e]);return nr[t]};var ar=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:rr(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 or=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=or(e[t].children),e[t].not=or(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},sr={one:{setTag:Hn,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=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 tr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ar(n)}}};const lr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ur={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||""),lr(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 lr(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,ur)},hr={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 dr=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(dr.has(e)||!t.hasOwnProperty(n))return 1;if(dr.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:sr,api:cr,lib:hr};const mr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var fr=function(e){let t=[],n=e.split(gr);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]+/,Vr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,zr=/['’]/,$r=/^[a-z]\.([a-z]\.)+/i,Fr=/^[-+.][0-9]/,Sr=/^'[0-9]{2}/;var Hr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Br,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fr.test(e)?"'"===n&&Sr.test(e)?(n="",t):"":(n="",t)))).replace(Vr,a=>(r=a,zr.test(a)&&/[sn]['’]$/.test(t)&&!1===zr.test(n)?(r=r.replace(zr,""),"'"):!0===$r.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Mr=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]?,?$/,Lr=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,qr=/([a-z]\.)+[a-z]\.?$/;var Kr=function(e){return function(e){return!0===Jr.test(e)||!0===qr.test(e)||!0===Lr.test(e)||!0===Wr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Ur=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Mr(r),r=n(r,t),r=Kr(r),e.normal=r},Rr={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:jr,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(Dr);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=Nr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Hr(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})}}}},Qr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zr={},_r={};[[["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,_r[t]="Abbreviation",void 0!==e[1]&&(_r[t]=[_r[t],e[1]])})});var Yr=["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 Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},ea={};Object.keys(Xr).forEach((function(e){Xr[e].split("").forEach((function(t){ea[t]=e}))}));const ta=/\//,na=/[a-z]\.[a-z]/i,ra=/[0-9]/;var aa=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])),ta.test(n)&&!na.test(n)&&!ra.test(n)){let t=n.split(ta);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const oa=/^\p{Letter}+-\p{Letter}+$/u;var ia=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"),oa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},sa=function(e){let t=0,n=0,r=e.document;for(let e=0;ela(e,aa),machine:e=>la(e,ia),normal:e=>la(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 da={safe:!0,min:3};var pa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ca},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},da,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ha(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(fn),m.extend(St),m.extend(Nn),m.extend(pr),m.plugin(be),m.extend(ua),m.plugin(f),m.extend(Ge),m.extend(pa),m.extend(Pe),m.extend(Vn);var ma={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"},ga={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 fa=36,ba="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",va=ba.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ya=function(e){if(void 0!==va[e])return va[e];let t=0,n=1,r=fa,a=1;for(;n=0;n--,a*=fa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},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(ga[e]);Na.test(e)?Object.keys(t).forEach(t=>{if(Ga[t]=e,"Noun|Verb"===e){let e=xa(t,Ta);Ga[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 Ca="Adjective";var Da={beforeTags:{Determiner:Ca,Possessive:Ca},afterTags:{Adjective:Ca},beforeWords:{seem:Ca,seemed:Ca,seems:Ca,feel:Ca,feels:Ca,felt:Ca,appear:Ca,appears:Ca,appeared:Ca,also:Ca,over:Ca,under:Ca,too:Ca,it:Ca,but:Ca,still:Ca,really:Ca,quite:Ca,well:Ca,very:Ca,deeply:Ca,profoundly:Ca,extremely:Ca,so:Ca,badly:Ca,mostly:Ca,totally:Ca,awfully:Ca,rather:Ca,nothing:Ca,something:Ca,anything:Ca},afterWords:{too:Ca,also:Ca,or:Ca}};const Oa="Gerund";var Ba={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}},Va={beforeTags:Object.assign({},Da.beforeTags,Ba.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Da.afterTags,Ba.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Da.beforeWords,Ba.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Da.afterWords,Ba.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({},Da.beforeTags,$a.beforeTags,Fa.beforeTags),afterTags:Object.assign({},Da.afterTags,$a.afterTags),beforeWords:Object.assign({},Da.beforeWords,$a.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.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"},Ja={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},La={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wa={beforeTags:Object.assign({},Da.beforeTags,Ha),afterTags:Object.assign({},Da.afterTags,Ma),beforeWords:Object.assign({},Da.beforeWords,Ja),afterWords:Object.assign({},Da.afterWords,La)};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,when:qa,all:qa,to:qa,because:qa,although:qa,before:qa,how:qa,otherwise:qa,though:qa,yet:qa}};const Ua={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Da.beforeTags,Ka.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,Ka.afterTags,Ua.afterTags),beforeWords:Object.assign({},Da.beforeWords,Ka.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,Ka.afterWords,{to:void 0})};const Qa={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Za={},_a={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({},Ba.beforeTags,$a.beforeTags,Qa),afterTags:Object.assign({},Ba.afterTags,$a.afterTags,Za),beforeWords:Object.assign({},Ba.beforeWords,$a.beforeWords,_a),afterWords:Object.assign({},Ba.afterWords,$a.afterWords,Ya)},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"},co={"Adj|Gerund":Va,"Adj|Noun":Sa,"Adj|Past":Wa,"Adj|Present":Ra,"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",bo="Singular",vo="PastTense",yo="Adverb",wo="Plural",ko="Actor",Po="Verb",Ao="Noun",jo="LastName",Eo="Modal",xo="Participle";var No=[null,null,{ea:bo,ia:Ao,ic:mo,ly:yo,"'n":Po,"'t":Po},{oed:vo,ued:vo,xed:vo," so":yo,"'ll":Eo,"'re":"Copula",azy:mo,eer:Ao,end:Po,ped:vo,ffy:mo,ify:go,ing:"Gerund",ize:go,ibe:go,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:vo,ken:xo,ven:xo,ten:xo,ect:go,ict:go,ign:go,ful:mo,bal:mo},{amed:vo,aped:vo,ched:vo,lked:vo,rked:vo,reed:vo,nded:vo,mned:mo,cted:vo,dged:vo,ield:bo,akis:jo,cede:go,chuk:jo,czyk:jo,ects:fo,ends:Po,enko:jo,ette:bo,wner:bo,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:jo,oses:fo,ould:Eo,some:mo,sson:jo,tion:bo,tage:Ao,ique:bo,tive:mo,tors:Ao,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:mo,vide:go,ract:go,duce:go,pose:go,eive:go,lyze:go,lyse:go,iant:mo,nary:mo},{elist:bo,holic:bo,phite:bo,tized:vo,urned:vo,eased:vo,ances:wo,bound:mo,ettes:wo,fully:yo,ishes:fo,ities:wo,marek:jo,nssen:jo,ology:Ao,osome:bo,tment:bo,ports:wo,rough:mo,tches:fo,tieth:"Ordinal",tures:wo,wards:yo,where:yo,archy:Ao,pathy:Ao,opoly:Ao,embly:Ao,phate:Ao,ndent:bo,scent:bo,onist:bo,anist:bo,alist:bo,olist:bo,icist:bo,ounce:go,iable:mo,borne:mo,gnant:mo,inant:mo,igent:mo,atory:mo,rient:bo,dient:bo},{auskas:jo,parent:bo,cedent:bo,ionary:bo,cklist:bo,keeper:ko,logist:ko,teenth:"Value"},{opoulos:jo,borough:"Place",sdottir:jo}];const Io="Adjective",Go="Noun",To="Verb";var Co=[null,null,{},{neo:Go,bio:Go,"de-":To,"re-":To,"un-":To},{anti:Go,auto:Go,faux:Io,hexa:Go,kilo:Go,mono:Go,nano:Go,octa:Go,poly:Go,semi:Io,tele:Go,"pro-":Io,"mis-":To,"dis-":To,"pre-":Io},{anglo:Go,centi:Go,ethno:Go,ferro:Go,grand:Go,hepta:Go,hydro:Go,intro:Go,macro:Go,micro:Go,milli:Go,nitro:Go,penta:Go,quasi:Io,radio:Go,tetra:Go,"omni-":Io,"post-":Io},{pseudo:Io,"extra-":Io,"hyper-":Io,"inter-":Io,"intra-":Io,"deca-":Io},{electro:Go}];const Do="Adjective",Oo="Infinitive",Bo="PresentTense",Vo="Singular",zo="PastTense",$o="Adverb",Fo="Expression",So="Actor",Ho="Verb",Mo="Noun",Jo="LastName";var Lo={a:[[/.[aeiou]na$/,Mo,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,Do]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Vo,"steward"],[/[aeiou][^aeiou]id$/,Do,""],[/.[vrl]id$/,Do,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,Oo,"antagonize"],[/.[^aeiou]ise$/,Oo,"antagonise"],[/.[aeiou]te$/,Oo,"bite"],[/.[^aeiou][ai]ble$/,Do,"fixable"],[/.[^aeiou]eable$/,Do,"maleable"],[/.[ts]ive$/,Do,"festive"],[/[a-z]-like$/,Do,"woman-like"]],h:[[/.[^aeiouf]ish$/,Do,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,Do,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Fo,"kkkk"]],l:[[/.[gl]ial$/,Do,"familial"],[/.[^aeiou]ful$/,Do,"fitful"],[/.[nrtumcd]al$/,Do,"natal"],[/.[^aeiou][ei]al$/,Do,"familial"]],m:[[/.[^aeiou]ium$/,Vo,"magnesium"],[/[^aeiou]ism$/,Vo,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Do,"republican"],[/[^aeiou]ician$/,So,"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$/,Vo],[/[^i]fer$/,Oo],[/.[^aeiou][ao]pher$/,So],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Do],[/[aeiou].*ist$/,Do],[/^[a-z]et$/,Ho]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,Ho],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,Mo],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,Do],[/.[st]ty$/,Do],[/.[tnl]ary$/,Do],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,$o],[/.(gg|bb|zz)ly$/,Do],[/...lly$/,$o],[/.[gk]y$/,Do],[/[bszmp]{2}y$/,Do],[/.[ai]my$/,Do],[/[ea]{2}zy$/,Do],[/.[^aeiou]ity$/,Vo]]};const Wo="Verb",qo="Noun";var Ko={leftTags:[["Adjective",qo],["Possessive",qo],["Determiner",qo],["Adverb",Wo],["Pronoun",Wo],["Value",qo],["Ordinal",qo],["Modal",Wo],["Superlative",qo],["Demonym",qo],["Honorific","Person"]],leftWords:[["i",Wo],["first",qo],["it",Wo],["there",Wo],["not",Wo],["because",qo],["if",qo],["but",qo],["who",Wo],["this",qo],["his",qo],["when",qo],["you",Wo],["very","Adjective"],["old",qo],["never",Wo],["before",qo],["a","Singular"],["the",qo],["been",Wo]],rightTags:[["Copula",qo],["PastTense",qo],["Conjunction",qo],["Modal",qo]],rightWords:[["there",Wo],["me",Wo],["man","Adjective"],["only",Wo],["him",Wo],["it",Wo],["were",qo],["took",qo],["himself",Wo],["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"},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"},Zo={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],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},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(Zo),si=ri(Ro),li=ri(Qo),ui=ai(oi),ci=ai(ii),hi=ai(si),di=ai(li),pi=ri(Uo),mi=ri(_o);var gi={fromPast:oi,fromPresent:ii,fromGerund:si,fromParticiple:li,toPast:ui,toPresent:ci,toGerund:hi,toParticiple:di,toComparative:pi,toSuperlative:mi,fromComparative:ai(pi),fromSuperlative:ai(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,""]],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(yi[t].forEach(n=>e[n]=t),e),{});var wi=yi,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=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},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},Ei=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 xi="ically",Ni=new Set(["analyt"+xi,"chem"+xi,"class"+xi,"clin"+xi,"crit"+xi,"ecolog"+xi,"electr"+xi,"empir"+xi,"frant"+xi,"grammat"+xi,"ident"+xi,"ideolog"+xi,"log"+xi,"mag"+xi,"mathemat"+xi,"mechan"+xi,"med"+xi,"method"+xi,"method"+xi,"mus"+xi,"phys"+xi,"phys"+xi,"polit"+xi,"pract"+xi,"rad"+xi,"satir"+xi,"statist"+xi,"techn"+xi,"technolog"+xi,"theoret"+xi,"typ"+xi,"vert"+xi,"whims"+xi]),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")?Ni.has(e)?e.replace(/ically/,"ical"):Gi.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:Ei(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=Ei(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"]),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"]}},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.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:xa,nounToSingular:vi,verbToInfinitive:Ai,getTense:ki,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:Ci,adjToAdverb:Bi,adjToNoun:function(e){if(zi.hasOwnProperty(e))return zi[e];if($i.has(e))return null;let t=Ei(e,Vi);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 Li=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Wi=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(r,"Infinitive","Verb"),Object.assign(s,l),l=Li(a,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(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")},Qi=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 Zi={one:{_multiCache:{},lexicon:Ia},two:{irregularPlurals:ma,models:gi,suffixPatterns:No,prefixPatterns:Co,endsWith:Lo,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:Ga,clues:po,uncountable:{},orgWords:fi}};Zi=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=Qi(e.two.switches,e),e=Wi(e),e=Ji(e)}(Zi);var _i=Zi;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])}},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"]},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 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===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 ms=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=ms(r.normal,n.two.suffixPatterns);if(null!==e)return es(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ms(r.implicit,n.two.suffixPatterns),null!==e))return es(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const fs=/['‘’‛‵′`´]/,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 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"]),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 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(ks(a)||ks(o))return es(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Ps(a)||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(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 Es=/^[A-Z]('s|,)?$/,xs=/^[A-Z-]+$/,Ns=/([A-Z]\.)+[A-Z]?,?$/,Is=/[A-Z]{2,}('s|,)?$/,Gs=/([a-z]\.)+[a-z]\.?$/,Ts={I:!0,A:!0};var Cs=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===xs.test(n)||n.length>5||Ts.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ns.test(n)&&!0!==Gs.test(n)&&!0!==Es.test(n)&&!0!==Is.test(n))}(r,n)?(r.tags.clear(),es(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ts.hasOwnProperty(r.text)&&Es.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")&&xs.test(r.text)&&r.text.length<=6?(es(r,"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},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||Ds(e[t-1],a),l=l||Ds(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},$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),"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||{},Js=/^(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&&Ms.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&&Ms.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},qs={tagSwitch:Xi,checkSuffix:gs,checkRegex:vs,checkCase:ps,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:Cs,neighbours:Bs,orgWords:zs,nounFallback:$s,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=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);Hs[o]&&(u=Hs[o](e,t)||u),u?(Ms.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):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)},Zs={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: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"]},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 pl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ml={in:!0,by:!0,for:!0};var gl=(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===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 fl=/'/,bl=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)},vl={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;vl.hasOwnProperty(i)&&(s=vl[i](r,o,t)),s&&(s=yl(s,e),sl(n,[a,o],s),bl(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 kl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",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:"[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:"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)",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: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:"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:"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"}]),jl=null;var El={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;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}},model:{two:{matches:Al}},hooks:["postTagger"]},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)},Nl=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},Il={api:function(e){e.prototype.swap=Nl}};m.plugin(nl),m.plugin(wl),m.plugin(El),m.plugin(Il);var Gl=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},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 Cl={this:"Noun",then:"Pivot"};var Dl=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))})},Hl={compute:{chunks:function(e){const{document:t,world:n}=e;Dl(t),Ol(t),zl(e,t,n),Fl(t),Sl(t)}},api:function(e){e.prototype.chunks=Tl,e.prototype.clauses=Gl},hooks:["chunks"]};const Ml=/'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(Ml,""),e.normal=e.normal.replace(Ml,"")})}),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=/\)/,ql=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 Ul={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Ul).join("|")+")"),Ql=RegExp("("+Object.values(Ul).join("|")+")"),Zl=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Ul[n])return null;const r=Ul[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ql,"")})}(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 Yl=/\./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(Yl,""),e.normal=e.normal.replace(Yl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Yl,""),e.normal=e.normal.replace(Yl,""),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)}},eu=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 tu=(e,t)=>"number"==typeof t?e.eq(t):e,nu=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 ru=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=nu(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 tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return tu(this,e).map(e=>{let n=nu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=tu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=tu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=tu(t,e),new Adjectives(t.document,t.pointer)}};const au=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},ou=[["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 iu=[["emojis","emoji"],["atmentions","atMentions"]];var su=function(e){ou.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=au,iu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},lu={api:function(e){su(e),Jl(e),Kl(e),_l(e),ru(e),eu(e),Xl(e)}};const uu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var cu={case:e=>{uu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;uu(e,e=>e.text=n(e.text,t))},whitespace:e=>{uu(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=>{uu(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 hu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),du="unicode|punctuation|whitespace|acronyms",pu="|case|contractions|parentheses|quotations|emoji|honorifics",mu={light:hu(du),medium:hu(du+pu),heavy:hu(du+pu+"|possessives|adverbs|nouns|verbs")};var gu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=mu[e]),Object.keys(e).forEach(t=>{cu.hasOwnProperty(t)&&cu[t](this,e[t])}),this}}},fu=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 bu=["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")},wu=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:yu(e,t),isSubordinate:vu(e),root:t}};const ku=e=>e.text(),Pu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Au=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var ju=function(e){let t=wu(e);return{root:ku(t.root),number:Au(t.number),determiner:ku(t.determiner),adjectives:Pu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Eu={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,Eu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Eu),e};const Nu={tags:!0};var Iu=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,Nu).tag("Singular","toPlural"),e};const Gu=(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 Gu(this,e).map(wu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=ju(t)),n},[])}isPlural(e){let t=this.filter(e=>wu(e).isPlural);return Gu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=wu(e).adjectives;n.found&&(t=t.concat(n))}),Gu(t,e)}toPlural(e){return Gu(this,e).map(e=>xu(e,wu(e)))}toSingular(e){return Gu(this,e).map(e=>{let t=wu(e);return Iu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=fu(this);return t=Gu(t,e),new Nouns(this.document,t.pointer)}}},Cu=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},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(Ou.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Ou.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Ou.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},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 $u=/^([0-9,. ]+)\/([0-9,. ]+)$/,Fu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Su=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Hu=function(e){if(!0===Fu.hasOwnProperty(e))return Fu[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=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 Mu.test(a)&&(a=a.replace(Mu,""),r=r.replaceWith(a)),r=Lu.hasOwnProperty(a)?Lu[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},qu=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 Ku=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Uu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Ru=[[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"]],Qu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Ku[n][1]&&(e-=Ku[n][1],t.push(Ku[n][0]));return Uu[e]&&t.push(Uu[e]),t};var Zu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=qu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ru.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(Qu(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=qu(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(" ")},_u=function(e){return e.numerator&&e.denominator?`${Zu({num:e.numerator})} out of ${Zu({num:e.denominator})}`:""};const Yu={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=Zu(e).split(" "),n=t[t.length-1];return Yu.hasOwnProperty(n)?t[t.length-1]=Yu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},ec=function(e){if(!e.numerator||!e.denominator)return"";let t=Zu({num:e.numerator}),n=Xu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const tc=(e,t)=>"number"==typeof t?e.eq(t):e;var nc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return tc(this,e).map(Wu)}get(e){return tc(this,e).map(Wu)}json(e){return tc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Wu(t);return n.fraction=r,n},[])}toDecimal(e){return tc(this,e).forEach(e=>{let{decimal:t}=Wu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return tc(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 tc(this,e).forEach(e=>{let t=Wu(e),n=ec(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return tc(this,e).forEach(e=>{let t=Wu(e),n=_u(t);e.replaceWith(n)}),this}toPercentage(e){return tc(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=Cu(this);return t=tc(t,e),new Fractions(this.document,t.pointer)}};const rc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ac=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("("+rc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+rc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+rc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+rc+")"));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) (${rc})`),r=e.has("("+rc+") #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("("+rc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+rc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},oc=function(e){if("string"==typeof e)return{num:Hu(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=Hu(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")}},ic=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=qu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const sc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},lc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var uc=function(e){let t={suffix:"",prefix:e.prefix};return sc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+sc[e.prefix],t.prefix=""),lc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+lc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},cc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=uc(e);return t+Xu(e)+n}if("Ordinal"===t)return e.prefix+ic(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=uc(e);return t+Zu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const hc=(e,t)=>"number"==typeof t?e.eq(t):e;var dc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return hc(this,e).map(oc)}get(e){return hc(this,e).map(oc).map(e=>e.num)}json(e){return hc(this,e).map(t=>{let n=t.toView().json(e)[0],r=oc(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=oc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=cc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=oc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=cc(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=oc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=cc(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=>oc(t).num===e)}greaterThan(e){return this.filter(t=>oc(t).num>e)}lessThan(e){return this.filter(t=>oc(t).num{let r=oc(n).num;return r>e&&r{let n=oc(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=cc(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=oc(e).num);let t=this.map(t=>{let n=oc(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=cc(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=ac(this);return t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ac(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ac(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=hc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},pc={api:function(e){nc(e),dc(e)}};const mc={people:!0,emails:!0,phoneNumbers:!0,places:!0},gc=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 fc={api:function(e){e.prototype.redact=gc}},bc=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))})},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))))))},yc=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}},wc=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},kc=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},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},Ac=function(e){return e.verbs().toInfinitive(),e};const jc=(e,t)=>"number"==typeof t?e.eq(t):e;var Ec={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}=yc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return jc(this,e).map(e=>(yc(e),wc(e)))}toPresentTense(e){return jc(this,e).map(e=>(yc(e),kc(e)))}toFutureTense(e){return jc(this,e).map(e=>(yc(e),e=Pc(e)))}toInfinitive(e){return jc(this,e).map(e=>(yc(e),Ac(e)))}toNegative(e){return jc(this,e).map(e=>(yc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return jc(this,e).map(e=>(yc(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 jc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return jc(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=jc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=bc(this);return jc(t,e)}};Object.assign(e.prototype,t)}},xc=function(e){return e.match("#Honorific+? #Person+")},Nc=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 Ic="male",Gc="female",Tc={mr:Ic,mrs:Gc,miss:Gc,madam:Gc,king:Ic,queen:Gc,duke:Ic,duchess:Gc,baron:Ic,baroness:Gc,count:Ic,countess:Gc,prince:Ic,princess:Gc,sire:Ic,dame:Gc,lady:Gc,ayatullah:Ic,congressman:Ic,congresswoman:Gc,"first lady":Gc,mx:null};var Cc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Gc;if(n.has("#MaleName"))return Ic;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Tc.hasOwnProperty(e))return Tc[e];if(/^her /.test(e))return Gc;if(/^his /.test(e))return Ic}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 Ic;if(n&&!t)return Gc}return null};const Dc=(e,t)=>"number"==typeof t?e.eq(t):e;var Oc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Dc(this,e).map(Nc)}json(e){return Dc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Nc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Cc(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=Dc(t,e),new People(this.document,t.pointer)}},Bc=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},Vc=function(e){e.prototype.places=function(t){let n=Bc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},zc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const $c=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 Fc=function(e){e.prototype.topics=$c},Sc={api:function(e){Oc(e),Vc(e),zc(e),Fc(e)}},Hc=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},Mc=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 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")},qc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Kc=function(e){let t=e.clone();t.contractions().expand();const n=Mc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Jc(t,n),auxiliary:Lc(t,n),negative:Wc(t),phrasal:qc(n)}};const Uc={tense:"PresentTense"},Rc={conditional:!0},Qc={tense:"FutureTense"},Zc={progressive:!0},_c={tense:"PastTense"},Yc={complete:!0,progressive:!1},Xc={passive:!0},eh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},th={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Uc]],["^wanted to #Infinitive$",[_c]],["^will want to #Infinitive$",[Qc]]],"gerund-phrase":[["^#PastTense #Gerund$",[_c]],["^#PresentTense #Gerund$",[Uc]],["^#Infinitive #Gerund$",[Uc]],["^will #Infinitive #Gerund$",[Qc]],["^have #PastTense #Gerund$",[_c]],["^will have #PastTense #Gerund$",[_c]]],"simple-present":[["^#PresentTense$",[Uc]],["^#Infinitive$",[Uc]]],"simple-past":[["^#PastTense$",[_c]]],"simple-future":[["^will #Adverb? #Infinitive",[Qc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Uc,Zc]]],"past-progressive":[["^(was|were) #Gerund$",[_c,Zc]]],"future-progressive":[["^will be #Gerund$",[Qc,Zc]]],"present-perfect":[["^(has|have) #PastTense$",[_c,Yc]]],"past-perfect":[["^had #PastTense$",[_c,Yc]],["^had #PastTense to #Infinitive",[_c,Yc]]],"future-perfect":[["^will have #PastTense$",[Qc,Yc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[_c,Zc]]],"past-perfect-progressive":[["^had been #Gerund$",[_c,Zc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Qc,Zc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[_c,Xc]],["^(was|were) being (#PastTense|#Participle)",[_c,Xc]],["^(had|have) been (#PastTense|#Participle)",[_c,Xc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Uc,Xc]],["^(is|are|am) being (#PastTense|#Participle)",[Uc,Xc]],["^has been (#PastTense|#Participle)",[Uc,Xc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Qc,Xc,Rc]],["will be being? (#PastTense|#Participle)",[Qc,Xc,Rc]]],"present-conditional":[["would be #PastTense",[Uc,Rc]]],"past-conditional":[["would have been #PastTense",[_c,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Qc]]],"auxiliary-past":[["^did #Infinitive$",[_c,{plural:!1}]],["^used to #Infinitive$",[_c,Yc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Uc,Yc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[_c]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let nh=[];Object.keys(th).map(e=>{th[e].forEach(t=>{nh.push({name:e,match:t[0],data:eh(t[1])})})});var rh=nh,ah=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(),oh(r)&&(n.remove(r),r=n.last()),oh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:ih(t,e)}};const lh=e=>e,uh=(e,t)=>{let n=sh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},ch=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=sh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},hh=function(e,t){let n=sh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},dh=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},ph=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,dh(e)),r&&e.replace(t.root,r),e},mh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),gh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},fh=function(e){return e&&e.isView?e.text("normal"):""},bh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,dh(e))};var vh=function(e){let t=Kc(e);e=e.clone().toView();const n=ah(e,t);return{root:t.root.text(),preAdverbs:gh(t.adverbs.pre),postAdverbs:gh(t.adverbs.post),auxiliary:fh(t.auxiliary),negative:t.negative.found,prefix:fh(t.prefix),infinitive:bh(t.root),grammar:n}};const yh={tags:!0};var wh=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,dh(r)),i&&e.replace(r,i,yh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=hh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const kh={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,dh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=sh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,kh),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",kh),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,dh(a)),n(o,e.model).Participle}},Ah={infinitive:Ph.simple,"simple-present":Ph.simple,"simple-past":lh,"simple-future":Ph.both,"present-progressive":e=>(e.replace("are","were",kh),e.replace("(is|are|am)","was",kh),e),"past-progressive":lh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ph.hasHad,"past-perfect":lh,"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":lh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",kh),e),"passive-past":e=>(e.replace("have","had",kh),e),"passive-present":e=>(e.replace("(is|are)","was",kh),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",kh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":lh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",kh),e),"auxiliary-past":lh,"auxiliary-present":e=>(e.replace("(do|does)","did",kh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",kh):(Ph.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":lh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",kh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ph.simple(e,t),mh(e),e)};var jh=function(e,t,n){return Ah.hasOwnProperty(n)?((e=Ah[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Eh={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,dh(a)),!1===uh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=ch(e)),o&&(e=e.replace(a,o,Eh)).not("#Particle").tag("PresentTense"),e},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,dh(a)),!1===uh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Eh)).not("#Particle").tag("Gerund"),e},Ih={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=sh(e).subject;if(uh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Eh)}return e},"simple-past":xh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=ch(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":lh,"past-progressive":(e,t)=>{let n=ch(e);return e.replace("(were|was)",n,Eh)},"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=sh(e).subject;return uh(e)||n.has("i")?((e=ph(e,t)).remove("had"),e):(e.replace("had","has",Eh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":lh,"past-perfect-progressive":e=>e.replace("had","has",Eh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=ch(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Eh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":lh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":lh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Nh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=hh(e);return e.replace(t.auxiliary,n),e}return Nh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":lh,"modal-infinitive":lh,"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,dh(r)),a&&(e=e.replace(t.root,a,Eh))})(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 uh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Eh),e.remove("will"),e}};var Gh=function(e,t,n){return Ih.hasOwnProperty(n)?((e=Ih[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Th={tags:!0},Ch=(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,dh(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,dh(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},Oh={infinitive:Ch,"simple-present":Ch,"simple-past":Ch,"simple-future":lh,"present-progressive":Dh,"past-progressive":Dh,"future-progressive":lh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":lh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":lh,"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":lh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":lh,"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":lh,"modal-past":lh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Bh=function(e,t,n){return e.has("will")||e.has("going to")?e:Oh.hasOwnProperty(n)?((e=Oh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Vh={tags:!0};var zh=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,dh(a));let s=r(i,e.model).Gerund;return s&&(s=`${ch(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(["preTagger","postTagger","chunks"]),e};const $h={tags:!0},Fh=function(e,t){let n=hh(e);return e.prepend(n+" not"),e},Sh=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)},Hh=e=>e.has("(is|was|am|are|will|were|be)"),Mh={"simple-present":(e,t)=>!0===Hh(e)?Sh(e):(e=ph(e,t),e=Fh(e)),"simple-past":(e,t)=>!0===Hh(e)?Sh(e):((e=ph(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Hh(e)?Sh(e):Fh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",$h),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=Fh(e)).replace("wants","want",$h)};var Jh=function(e,t,n){if(e.has("#Negative"))return e;if(Mh.hasOwnProperty(n))return e=Mh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Hh(e)?Sh(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(Kc)}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=>(Kc(e),sh(e).subject))}adverbs(e){return Lh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Lh(this,e).filter(e=>!0!==sh(e).plural)}isPlural(e){return Lh(this,e).filter(e=>!0===sh(e).plural)}isImperative(e){return Lh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return wh(e,t,n.form)})}toPresentTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return Gh(e,t,n.form)})}toPastTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return jh(e,t,n.form)})}toFutureTense(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return Bh(e,t,n.form)})}toGerund(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return zh(e,t,n.form)})}conjugate(e){return Lh(this,e).map(e=>{let t=Kc(e),n=ah(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:wh(e.clone(),t,n.form).text("normal"),PastTense:jh(e.clone(),t,n.form).text("normal"),PresentTense:Gh(e.clone(),t,n.form).text("normal"),FutureTense:Bh(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=Kc(e),n=ah(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=Hc(this);return t=Lh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Hl),m.plugin(lu),m.plugin(gu),m.plugin(Tu),m.plugin(pc),m.plugin(fc),m.plugin(Ec),m.plugin(Sc),m.plugin(Wh),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(); +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.nlp = factory()); +})(this, (function () { 'use strict'; + + let methods$o = { + one: {}, + two: {}, + three: {}, + four: {}, + }; + + let model$7 = { + one: {}, + two: {}, + three: {}, + }; + let compute$d = {}; + let hooks = []; + + var tmpWrld = { methods: methods$o, model: model$7, compute: compute$d, hooks }; + + const isArray$9 = input => Object.prototype.toString.call(input) === '[object Array]'; + + const fns$5 = { + /** add metadata to term objects */ + compute: function (input) { + const { world } = this; + const compute = world.compute; + // do one method + if (typeof input === 'string' && compute.hasOwnProperty(input)) { + compute[input](this); + } + // allow a list of methods + 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') { + input(this); + } else { + console.warn('no compute:', input); // eslint-disable-line + } + return this + }, + }; + var compute$c = fns$5; + + const forEach = function (cb) { + let ptrs = this.fullPointer; + ptrs.forEach((ptr, i) => { + let view = this.update([ptr]); + cb(view, i); + }); + return this + }; + + 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) + }); + if (res.length === 0) { + return empty || this.update([]) + } + // return an array of values, or View objects? + // user can return either from their callback + if (res[0] !== undefined) { + // array of strings + if (typeof res[0] === 'string') { + return res + } + // array of objects + if (typeof res[0] === 'object' && (res[0] === null || !res[0].isView)) { + return res + } + } + // return a View object + let all = []; + res.forEach(ptr => { + all = all.concat(ptr.fullPointer); + }); + return this.toView(all) + }; + + 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]]) + 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]) + }; + + 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) + }) + }; + + const random = function (n = 1) { + let ptrs = this.fullPointer; + let r = Math.floor(Math.random() * ptrs.length); + //prevent it from going over the end + if (r + n > this.length) { + r = this.length - n; + r = r < 0 ? 0 : r; + } + ptrs = ptrs.slice(r, r + n); + return this.update(ptrs) + }; + var loops = { forEach, map, filter, find: find$c, some, random }; + + const utils = { + /** */ + termList: function () { + return this.methods.one.termList(this.docs) + }, + /** 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) + return typeof n === 'number' ? m.eq(n) : m + }, + + /** */ + groups: function (group) { + if (group || group === 0) { + return this.update(this._groups[group] || []) + } + // return an object of Views + let res = {}; + Object.keys(this._groups).forEach(k => { + res[k] = this.update(this._groups[k]); + }); + // this._groups = null + return res + }, + /** */ + 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.none() + }, + /** */ + first: function () { + return this.eq(0) + }, + /** */ + last: function () { + let n = this.fullPointer.length - 1; + return this.eq(n) + }, + + /** grab term[0] for every match */ + firstTerms: function () { + return this.match('^.') + }, + + /** grab the last term for every match */ + lastTerms: function () { + return this.match('.$') + }, + + /** */ + slice: function (min, max) { + let pntrs = this.pointer || this.docs.map((_o, n) => [n]); + pntrs = pntrs.slice(min, max); + return this.update(pntrs) + }, + + /** return a view of the entire document */ + all: function () { + return this.update().toView() + }, + /** */ + fullSentences: function () { + let ptrs = this.fullPointer.map(a => [a[0]]); //lazy! + return this.update(ptrs).toView() + }, + /** return a view of no parts of the document */ + none: function () { + return this.update([]) + }, + + /** are these two views looking at the same words? */ + isDoc: function (b) { + if (!b || !b.isView) { + return false + } + let aPtr = this.fullPointer; + let bPtr = b.fullPointer; + if (!aPtr.length === bPtr.length) { + return false + } + // ensure pointers are the same + return aPtr.every((ptr, i) => { + if (!bPtr[i]) { + return false + } + // ensure [n, start, end] are all the same + return ptr[0] === bPtr[i][0] && ptr[1] === bPtr[i][1] && ptr[2] === bPtr[i][2] + }) + }, + + /** how many seperate terms does the document have? */ + wordCount: function () { + return this.docs.reduce((count, terms) => { + count += terms.filter(t => t.text !== '').length; + return count + }, 0) + }, + + }; + utils.group = utils.groups; + utils.fullSentence = utils.fullSentences; + utils.sentence = utils.fullSentences; + utils.lastTerm = utils.lastTerms; + utils.firstTerm = utils.firstTerms; + var util = utils; + + const methods$n = Object.assign({}, util, compute$c, loops); + + // aliases + methods$n.get = methods$n.eq; + var api$y = methods$n; + + class View { + constructor(document, pointer, groups = {}) { + // invisible props + [ + ['document', document], + ['world', tmpWrld], + ['_groups', groups], + ['_cache', null], + ['viewType', 'View'] + ].forEach(a => { + Object.defineProperty(this, a[0], { + value: a[1], + writable: true, + }); + }); + this.ptrs = pointer; + } + /* getters: */ + get docs() { + let docs = this.document; + if (this.ptrs) { + docs = tmpWrld.methods.one.getDoc(this.ptrs, this.document); + } + return docs + } + 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 true //this comes in handy sometimes + } + // is the view not-empty? + get found() { + return this.docs.length > 0 + } + // how many matches we have + get length() { + return this.docs.length + } + // return a more-hackable pointer + get fullPointer() { + let { docs, ptrs, document } = this; + // compute a proper pointer, from docs + let pointers = ptrs || docs.map((_d, n) => [n]); + // do we need to repair it, first? + return pointers.map(a => { + let [n, start, end, id, endId] = a; + start = start || 0; + end = end || (document[n] || []).length; + //add frozen id, for good-measure + if (document[n] && document[n][start]) { + id = id || document[n][start].id; + if (document[n][end - 1]) { + endId = endId || document[n][end - 1].id; + } + } + return [n, start, end, id, endId] + }) + } + // create a new View, from this one + 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 + let cache = []; + pointer.forEach(ptr => { + if (ptr.length === 1) { + cache.push(m._cache[ptr[0]]); + } + // let [n, start, end] = ptr + // if (start === 0 && this.document[n][end - 1] && !this.document[n][end]) { + // console.log('=-=-=-= here -=-=-=-') + // } + }); + 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 + } + fromText(input) { + const { methods } = this; + //assume ./01-tokenize is installed + let document = methods.one.tokenize.fromString(input, this.world); + let doc = new View(document); + doc.world = this.world; + doc.compute(['normal', 'lexicon']); + if (this.world.compute.preTagger) { + doc.compute('preTagger'); + } + return doc + } + clone() { + // clone the whole document + let document = this.document.slice(0); + document = document.map(terms => { + return terms.map(term => { + term = Object.assign({}, term); + term.tags = new Set(term.tags); + return term + }) + }); + // clone only sub-document ? + let m = this.update(this.pointer); + m.document = document; + m._cache = this._cache; //clone this too? + return m + } + } + Object.assign(View.prototype, api$y); + var View$1 = View; + + var version = '14.3.0'; + + const isObject$6 = function (item) { + return item && typeof item === 'object' && !Array.isArray(item) + }; + + // recursive merge of objects + function mergeDeep(model, plugin) { + if (isObject$6(plugin)) { + for (const key in plugin) { + if (isObject$6(plugin[key])) { + if (!model[key]) Object.assign(model, { [key]: {} }); + mergeDeep(model[key], plugin[key]); //recursion + // } else if (isArray(plugin[key])) { + // console.log(key) + // console.log(model) + } else { + Object.assign(model, { [key]: plugin[key] }); + } + } + } + return model + } + // const merged = mergeDeep({ a: 1 }, { b: { c: { d: { e: 12345 } } } }) + // console.dir(merged, { depth: 5 }) + + // vroom + function mergeQuick(model, plugin) { + for (const key in plugin) { + model[key] = model[key] || {}; + Object.assign(model[key], plugin[key]); + } + return model + } + + const extend = function (plugin, world, View, nlp) { + const { methods, model, compute, hooks } = world; + if (plugin.methods) { + mergeQuick(methods, plugin.methods); + } + if (plugin.model) { + mergeDeep(model, plugin.model); + } + // shallow-merge compute + if (plugin.compute) { + Object.assign(compute, plugin.compute); + } + // append new hooks + if (hooks) { + world.hooks = hooks.concat(plugin.hooks || []); + } + // assign new class methods + if (plugin.api) { + plugin.api(View); + } + if (plugin.lib) { + Object.keys(plugin.lib).forEach(k => nlp[k] = plugin.lib[k]); + } + if (plugin.tags) { + nlp.addTags(plugin.tags); + } + if (plugin.words) { + nlp.addWords(plugin.words); + } + if (plugin.mutate) { + plugin.mutate(world); + } + }; + var extend$1 = extend; + + /** log the decision-making to console */ + const verbose = function (set) { + const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; //use window, in browser + env.DEBUG_TAGS = set === 'tagger' || set === true ? true : ''; + env.DEBUG_MATCH = set === 'match' || set === true ? true : ''; + env.DEBUG_CHUNKS = set === 'chunker' || set === true ? true : ''; + return this + }; + + const isObject$5 = val => { + return Object.prototype.toString.call(val) === '[object Object]' + }; + + const isArray$8 = function (arr) { + return Object.prototype.toString.call(arr) === '[object Array]' + }; + + // internal Term objects are slightly different + const fromJson = function (json) { + return json.map(o => { + return o.terms.map(term => { + if (isArray$8(term.tags)) { + term.tags = new Set(term.tags); + } + return term + }) + }) + }; + + // interpret an array-of-arrays + const preTokenized = function (arr) { + return arr.map((a) => { + return a.map(str => { + return { + text: str, + normal: str,//cleanup + pre: '', + post: ' ', + tags: new Set() + } + }) + }) + }; + + const inputs = function (input, View, world) { + const { methods } = world; + let doc = new View([]); + doc.world = world; + // support a number + if (typeof input === 'number') { + input = String(input); + } + // return empty doc + if (!input) { + return doc + } + // parse a string + if (typeof input === 'string') { + let document = methods.one.tokenize.fromString(input, world); + return new View(document) + } + // handle compromise View + if (isObject$5(input) && input.isView) { + return new View(input.document, input.ptrs) + } + // handle json input + if (isArray$8(input)) { + // pre-tokenized array-of-arrays + if (isArray$8(input[0])) { + let document = preTokenized(input); + return new View(document) + } + // handle json output + let document = fromJson(input); + return new View(document) + } + return doc + }; + var handleInputs = inputs; + + let world = Object.assign({}, tmpWrld); + + const nlp = function (input, lex) { + if (lex) { + nlp.addWords(lex); + } + let doc = handleInputs(input, View$1, world); + if (input) { + doc.compute(world.hooks); + } + return doc + }; + Object.defineProperty(nlp, '_world', { + value: world, + writable: true, + }); + + /** don't run the POS-tagger */ + nlp.tokenize = function (input, lex) { + const { compute } = this._world; + // add user-given words to lexicon + if (lex) { + nlp.addWords(lex); + } + // run the tokenizer + let doc = handleInputs(input, View$1, world); + // give contractions a shot, at least + if (compute.contractions) { + doc.compute(['alias', 'normal', 'machine', 'contractions']); //run it if we've got it + } + return doc + }; + + + /** extend compromise functionality */ + nlp.plugin = function (plugin) { + extend$1(plugin, this._world, View$1, this); + return this + }; + nlp.extend = nlp.plugin; + + + /** reach-into compromise internals */ + nlp.world = function () { + return this._world + }; + nlp.model = function () { + return this._world.model + }; + nlp.methods = function () { + return this._world.methods + }; + nlp.hooks = function () { + return this._world.hooks + }; + + /** log the decision-making to console */ + nlp.verbose = verbose; + /** current library release version */ + nlp.version = version; + + var nlp$1 = nlp; + + const createCache = function (document) { + let cache = document.map(terms => { + let stuff = new Set(); + terms.forEach(term => { + // add words + if (term.normal !== '') { + stuff.add(term.normal); + } + // cache switch-status - '%Noun|Verb%' + if (term.switch) { + stuff.add(`%${term.switch}%`); + } + // cache implicit words, too + if (term.implicit) { + stuff.add(term.implicit); + } + 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)); + } + let tags = Array.from(term.tags); + for (let t = 0; t < tags.length; t += 1) { + stuff.add('#' + tags[t]); + } + }); + return stuff + }); + return cache + }; + var cacheDoc = createCache; + + var methods$m = { + one: { + cacheDoc, + }, + }; + + const methods$l = { + /** */ + cache: function () { + this._cache = this.methods.one.cacheDoc(this.document); + return this + }, + /** */ + uncache: function () { + this._cache = null; + return this + }, + }; + const addAPI$3 = function (View) { + Object.assign(View.prototype, methods$l); + }; + var api$x = addAPI$3; + + var compute$b = { + cache: function (view) { + view._cache = view.methods.one.cacheDoc(view.document); + } + }; + + var cache$1 = { + api: api$x, + compute: compute$b, + methods: methods$m, + }; + + var caseFns = { + /** */ + toLowerCase: function () { + this.termList().forEach(t => { + t.text = t.text.toLowerCase(); + }); + return this + }, + /** */ + toUpperCase: function () { + this.termList().forEach(t => { + t.text = t.text.toUpperCase(); + }); + return this + }, + /** */ + toTitleCase: function () { + this.termList().forEach(t => { + t.text = t.text.replace(/^ *[a-z\u00C0-\u00FF]/, x => x.toUpperCase()); //support unicode? + }); + return this + }, + /** */ + toCamelCase: function () { + this.docs.forEach(terms => { + terms.forEach((t, i) => { + if (i !== 0) { + t.text = t.text.replace(/^ *[a-z\u00C0-\u00FF]/, x => x.toUpperCase()); //support unicode? + } + if (i !== terms.length - 1) { + t.post = ''; + } + }); + }); + return this + }, + }; + + // case logic + const isTitleCase$1 = (str) => /^\p{Lu}[\p{Ll}'’]/u.test(str) || /^\p{Lu}$/u.test(str); + const toTitleCase$1 = (str) => str.replace(/^\p{Ll}/u, x => x.toUpperCase()); + const toLowerCase = (str) => str.replace(/^\p{Lu}/u, x => x.toLowerCase()); + + // splice an array into an array + const spliceArr = (parent, index, child) => { + // tag them as dirty + child.forEach(term => term.dirty = true); + if (parent) { + let args = [index, 0].concat(child); + Array.prototype.splice.apply(parent, args); + } + return parent + }; + + // add a space at end, if required + const endSpace = function (terms) { + const hasSpace = / $/; + const hasDash = /[-–—]/; + let lastTerm = terms[terms.length - 1]; + if (lastTerm && !hasSpace.test(lastTerm.post) && !hasDash.test(lastTerm.post)) { + lastTerm.post += ' '; + } + }; + + // sentence-ending punctuation should move in append + const movePunct = (source, end, needle) => { + const juicy = /[-.?!,;:)–—'"]/g; + let wasLast = source[end - 1]; + if (!wasLast) { + return + } + let post = wasLast.post; + if (juicy.test(post)) { + let punct = post.match(juicy).join(''); //not perfect + let last = needle[needle.length - 1]; + last.post = punct + last.post; + // remove it, from source + wasLast.post = wasLast.post.replace(juicy, ''); + } + }; + + + const moveTitleCase = function (home, start, needle) { + let from = home[start]; + // should we bother? + if (start !== 0 || !isTitleCase$1(from.text)) { + return + } + // titlecase new first term + needle[0].text = toTitleCase$1(needle[0].text); + // should we un-titlecase the old word? + let old = home[start]; + if (old.tags.has('ProperNoun') || old.tags.has('Acronym')) { + return + } + if (isTitleCase$1(old.text) && old.text.length > 1) { + old.text = toLowerCase(old.text); + } + }; + + // put these words before the others + const cleanPrepend = function (home, ptr, needle, document) { + let [n, start, end] = ptr; + // introduce spaces appropriately + if (start === 0) { + // at start - need space in insert + endSpace(needle); + } else if (end === document[n].length) { + // at end - need space in home + endSpace(needle); + } else { + // in middle - need space in home and insert + endSpace(needle); + endSpace([home[ptr[1]]]); + } + moveTitleCase(home, start, needle); + // movePunct(home, end, needle) + spliceArr(home, start, needle); + }; + + const cleanAppend = function (home, ptr, needle, document) { + let [n, , end] = ptr; + let total = (document[n] || []).length; + if (end < total) { + // are we in the middle? + // add trailing space on self + movePunct(home, end, needle); + endSpace(needle); + } else if (total === end) { + // are we at the end? + // add a space to predecessor + endSpace(home); + // very end, move period + movePunct(home, end, needle); + // is there another sentence after? + if (document[n + 1]) { + needle[needle.length - 1].post += ' '; + } + } + spliceArr(home, ptr[2], needle); + // set new endId + ptr[4] = needle[needle.length - 1].id; + }; + + /* + unique & ordered term ids, based on time & term index + + Base 36 (numbers+ascii) + 3 digit 4,600 + 2 digit 1,200 + 1 digit 36 + + TTT|NNN|II|R + + 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 + + novels: + avg 80,000 words + 15 words per sentence + 5,000 sentences + + Infinite Jest: + 36,247 sentences + https://en.wikipedia.org/wiki/List_of_longest_novels + + collisions are more-likely after + 46 seconds have passed, + and + after 46-thousand sentences + + */ + let start$1 = 0; + + const pad3 = (str) => { + str = str.length < 3 ? '0' + str : str; + return str.length < 3 ? '0' + str : str + }; + + const toId = function (term) { + let [n, i] = term.index || [0, 0]; + start$1 += 1; + var now = start$1; + now = parseInt(now, 10); + + //don't overflow time + now = now > 46655 ? 46655 : now; + //don't overflow sentences + n = n > 46655 ? 46655 : n; + // //don't overflow terms + i = i > 1294 ? 1294 : i; + + // 3 digits for time + let id = pad3(now.toString(36)); + // 3 digit for sentence index (46k) + id += pad3(n.toString(36)); + + // 1 digit for term index (36) + let tx = i.toString(36); + tx = tx.length < 2 ? '0' + tx : tx; //pad2 + id += tx; + + // 1 digit random number + let r = parseInt(Math.random() * 36, 10); + id += (r).toString(36); + + return term.normal + '|' + id.toUpperCase() + }; + + var uuid = toId; + + // setInterval(() => console.log(toId(4, 12)), 100) + + // are we inserting inside a contraction? + // expand it first + const expand$4 = function (m) { + if (m.has('@hasContraction')) {//&& m.after('^.').has('@hasContraction') + let more = m.grow('@hasContraction'); + more.contractions().expand(); + } + }; + + const isArray$7 = (arr) => Object.prototype.toString.call(arr) === '[object Array]'; + + // set new ids for each terms + const addIds$2 = function (terms) { + terms = terms.map((term) => { + term.id = uuid(term); + return term + }); + return terms + }; + + const getTerms = function (input, world) { + const { methods } = world; + // create our terms from a string + if (typeof input === 'string') { + return methods.one.tokenize.fromString(input, world)[0] //assume one sentence + } + //allow a view object + if (typeof input === 'object' && input.isView) { + return input.clone().docs[0] //assume one sentence + } + //allow an array of terms, too + if (isArray$7(input)) { + return isArray$7(input[0]) ? input[0] : input + } + return [] + }; + + const insert = function (input, view, prepend) { + const { document, world } = view; + // insert words at end of each doc + let ptrs = view.fullPointer; + let selfPtrs = view.fullPointer; + view.forEach((m, i) => { + let ptr = m.fullPointer[0]; + let [n] = ptr; + // add-in the words + let home = document[n]; + let terms = getTerms(input, world); + terms = addIds$2(terms); + if (prepend) { + expand$4(view.update([ptr]).firstTerm()); + cleanPrepend(home, ptr, terms, document); + } else { + expand$4(view.update([ptr]).lastTerm()); + cleanAppend(home, ptr, terms, document); + } + // harden the pointer + if (document[n] && document[n][ptr[1]]) { + ptr[3] = document[n][ptr[1]].id; + } + // change self backwards by len + selfPtrs[i] = ptr; + // extend the pointer + ptr[2] += terms.length; + ptrs[i] = ptr; + }); + let doc = view.toView(ptrs); + // shift our self pointer, if necessary + view.ptrs = selfPtrs; + // try to tag them, too + doc.compute(['id', 'index', 'lexicon']); + if (doc.world.compute.preTagger) { + doc.compute('preTagger'); + } + return doc + }; + + const fns$4 = { + insertAfter: function (input) { + return insert(input, this, false) + }, + insertBefore: function (input) { + return insert(input, this, true) + }, + + }; + fns$4.append = fns$4.insertAfter; + fns$4.prepend = fns$4.insertBefore; + fns$4.insert = fns$4.insertAfter; + + var insert$1 = fns$4; + + const dollarStub = /\$[0-9a-z]+/g; + const fns$3 = {}; + + const titleCase$3 = function (str) { + return str.replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase()) + }; + + // doc.replace('foo', (m)=>{}) + const replaceByFn = function (main, fn) { + main.forEach(m => { + let out = fn(m); + m.replaceWith(out); + }); + return main + }; + + // support 'foo $0' replacements + const subDollarSign = function (input, main) { + if (typeof input !== 'string') { + return input + } + let groups = main.groups(); + input = input.replace(dollarStub, (a) => { + let num = a.replace(/\$/, ''); + if (groups.hasOwnProperty(num)) { + return groups[num].text() + } + return a + }); + return input + }; + + fns$3.replaceWith = function (input, keep = {}) { + let ptrs = this.fullPointer; + let main = this; + if (typeof input === 'function') { + return replaceByFn(main, input) + } + // support 'foo $0' replacements + input = subDollarSign(input, main); + + let original = this.update(ptrs); + // soften-up pointer + ptrs = ptrs.map(ptr => ptr.slice(0, 3)); + // original.freeze() + let oldTags = (original.docs[0] || []).map(term => Array.from(term.tags)); + // slide this in + main.insertAfter(input); + // are we replacing part of a contraction? + if (original.has('@hasContraction') && main.contractions) { + let more = main.grow('@hasContraction+'); + more.contractions().expand(); + } + // delete the original terms + main.delete(original); //science. + // what should we return? + 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) => { + term.tagSafe(oldTags[i]); + }); + } + // try to co-erce case, too + if (keep.case && m.docs[0] && m.docs[0][0] && m.docs[0][0].index[1] === 0) { + m.docs[0][0].text = titleCase$3(m.docs[0][0].text); + } + return m + }; + + fns$3.replace = function (match, input, keep) { + if (match && !input) { + return this.replaceWith(match, keep) + } + let m = this.match(match); + if (!m.found) { + return this + } + return m.replaceWith(input, keep) + }; + var replace = fns$3; + + // transfer sentence-ending punctuation + const repairPunct = function (terms, len) { + let last = terms.length - 1; + let from = terms[last]; + let to = terms[last - len]; + if (to && from) { + to.post += from.post; //this isn't perfect. + to.post = to.post.replace(/ +([.?!,;:])/, '$1'); + // don't allow any silly punctuation outcomes like ',!' + to.post = to.post.replace(/[,;:]+([.?!])/, '$1'); + } + }; + + // remove terms from document json + const pluckOut = function (document, nots) { + nots.forEach(ptr => { + let [n, start, end] = ptr; + let len = end - start; + if (!document[n]) { + return // weird! + } + if (end === document[n].length && end > 1) { + repairPunct(document[n], len); + } + document[n].splice(start, len); // replaces len terms at index start + }); + // remove any now-empty sentences + // (foreach + splice = 'mutable filter') + for (let i = document.length - 1; i >= 0; i -= 1) { + if (document[i].length === 0) { + document.splice(i, 1); + // remove any trailing whitespace before our removed sentence + if (i === document.length && document[i - 1]) { + let terms = document[i - 1]; + let lastTerm = terms[terms.length - 1]; + if (lastTerm) { + lastTerm.post = lastTerm.post.trimEnd(); + } + } + // repair any downstream indexes + // for (let k = i; k < document.length; k += 1) { + // document[k].forEach(term => term.index[0] -= 1) + // } + } + } + return document + }; + + var pluckOutTerm = pluckOut; + + const fixPointers$1 = function (ptrs, gonePtrs) { + ptrs = ptrs.map(ptr => { + let [n] = ptr; + if (!gonePtrs[n]) { + return ptr + } + gonePtrs[n].forEach(no => { + let len = no[2] - no[1]; + // does it effect our pointer? + if (ptr[1] <= no[1] && ptr[2] >= no[2]) { + ptr[2] -= len; + } + }); + return ptr + }); + + // decrement any pointers after a now-empty pointer + ptrs.forEach((ptr, i) => { + // is the pointer now empty? + if (ptr[1] === 0 && ptr[2] == 0) { + // go down subsequent pointers + for (let n = i + 1; n < ptrs.length; n += 1) { + ptrs[n][0] -= 1; + if (ptrs[n][0] < 0) { + ptrs[n][0] = 0; + } + } + } + }); + // remove any now-empty pointers + ptrs = ptrs.filter(ptr => ptr[2] - ptr[1] > 0); + + // remove old hard-pointers + ptrs = ptrs.map((ptr) => { + ptr[3] = null; + ptr[4] = null; + return ptr + }); + return ptrs + }; + + const methods$k = { + /** */ + remove: function (reg) { + const { indexN } = this.methods.one.pointer; + // two modes: + // - a. remove self, from full parent + let self = this.all(); + let not = this; + // - b. remove a match, from self + if (reg) { + self = this; + not = this.match(reg); + } + // is it part of a contraction? + if (self.has('@hasContraction') && self.contractions) { + let more = self.grow('@hasContraction'); + more.contractions().expand(); + } + + let ptrs = self.fullPointer; + let nots = not.fullPointer.reverse(); + // remove them from the actual document) + let document = pluckOutTerm(this.document, nots); + // repair our pointers + let gonePtrs = indexN(nots); + ptrs = fixPointers$1(ptrs, gonePtrs); + + // clean up our original inputs + self.ptrs = ptrs; + self.document = document; + self.compute('index'); + if (!reg) { + this.ptrs = []; + return self.none() + } + // self._cache = null + let res = self.toView(ptrs); //return new document + return res + }, + }; + + // aliases + methods$k.delete = methods$k.remove; + var remove = methods$k; + + const methods$j = { + /** add this punctuation or whitespace before each match: */ + pre: function (str, concat) { + if (str === undefined && this.found) { + return this.docs[0][0].pre + } + this.docs.forEach(terms => { + let term = terms[0]; + if (concat === true) { + term.pre += str; + } else { + term.pre = str; + } + }); + return this + }, + + /** add this punctuation or whitespace after each match: */ + post: function (str, concat) { + if (str === undefined) { + let last = this.docs[this.docs.length - 1]; + return last[last.length - 1].post + } + this.docs.forEach(terms => { + let term = terms[terms.length - 1]; + if (concat === true) { + term.post += str; + } else { + term.post = str; + } + }); + return this + }, + + /** remove whitespace from start/end */ + trim: function () { + if (!this.found) { + return this + } + let docs = this.docs; + let start = docs[0][0]; + start.pre = start.pre.trimStart(); + let last = docs[docs.length - 1]; + let end = last[last.length - 1]; + end.post = end.post.trimEnd(); + return this + }, + + /** connect words with hyphen, and remove whitespace */ + hyphenate: function () { + this.docs.forEach(terms => { + //remove whitespace + terms.forEach((t, i) => { + if (i !== 0) { + t.pre = ''; + } + if (terms[i + 1]) { + t.post = '-'; + } + }); + }); + return this + }, + + /** remove hyphens between words, and set whitespace */ + dehyphenate: function () { + const hasHyphen = /[-–—]/; + this.docs.forEach(terms => { + //remove whitespace + terms.forEach(t => { + if (hasHyphen.test(t.post)) { + t.post = ' '; + } + }); + }); + return this + }, + + /** add quotations around these matches */ + toQuotations: function (start, end) { + start = start || `"`; + end = end || `"`; + this.docs.forEach(terms => { + terms[0].pre = start + terms[0].pre; + let last = terms[terms.length - 1]; + last.post = end + last.post; + }); + return this + }, + + /** add brackets around these matches */ + toParentheses: function (start, end) { + start = start || `(`; + end = end || `)`; + this.docs.forEach(terms => { + terms[0].pre = start + terms[0].pre; + let last = terms[terms.length - 1]; + last.post = end + last.post; + }); + return this + }, + }; + methods$j.deHyphenate = methods$j.dehyphenate; + methods$j.toQuotation = methods$j.toQuotations; + + var whitespace$1 = methods$j; + + /** alphabetical order */ + const alpha = (a, b) => { + if (a.normal < b.normal) { + return -1 + } + if (a.normal > b.normal) { + return 1 + } + return 0 + }; + + /** count the # of characters of each match */ + const length = (a, b) => { + let left = a.normal.trim().length; + let right = b.normal.trim().length; + if (left < right) { + return 1 + } + if (left > right) { + return -1 + } + return 0 + }; + + /** count the # of terms in each match */ + const wordCount$2 = (a, b) => { + if (a.words < b.words) { + return 1 + } + if (a.words > b.words) { + return -1 + } + return 0 + }; + + /** count the # of terms in each match */ + const sequential = (a, b) => { + if (a[0] < b[0]) { + return 1 + } + if (a[0] > b[0]) { + return -1 + } + return a[1] > b[1] ? 1 : -1 + }; + + /** sort by # of duplicates in the document*/ + const byFreq = function (arr) { + let counts = {}; + arr.forEach(o => { + counts[o.normal] = counts[o.normal] || 0; + counts[o.normal] += 1; + }); + // sort by freq + arr.sort((a, b) => { + let left = counts[a.normal]; + let right = counts[b.normal]; + if (left < right) { + return 1 + } + if (left > right) { + return -1 + } + return 0 + }); + return arr + }; + + var methods$i = { alpha, length, wordCount: wordCount$2, sequential, byFreq }; + + // aliases + const seqNames = new Set(['index', 'sequence', 'seq', 'sequential', 'chron', 'chronological']); + const freqNames = new Set(['freq', 'frequency', 'topk', 'repeats']); + const alphaNames = new Set(['alpha', 'alphabetical']); + + // support function as parameter + const customSort = function (view, fn) { + let ptrs = view.fullPointer; + ptrs = ptrs.sort((a, b) => { + a = view.update([a]); + b = view.update([b]); + return fn(a, b) + }); + view.ptrs = ptrs; //mutate original + return view + }; + + /** re-arrange the order of the matches (in place) */ + const sort = function (input) { + let { docs, pointer } = this; + if (typeof input === 'function') { + return customSort(this, input) + } + input = input || 'alpha'; + let ptrs = pointer || docs.map((_d, n) => [n]); + let arr = docs.map((terms, n) => { + return { + index: n, + words: terms.length, + normal: terms.map(t => t.machine || t.normal || '').join(' '), + pointer: ptrs[n], + } + }); + // 'chronological' sorting + if (seqNames.has(input)) { + input = 'sequential'; + } + // alphabetical sorting + if (alphaNames.has(input)) { + input = 'alpha'; + } + // sort by frequency + if (freqNames.has(input)) { + arr = methods$i.byFreq(arr); + return this.update(arr.map(o => o.pointer)) + } + // apply sort method on each phrase + if (typeof methods$i[input] === 'function') { + arr = arr.sort(methods$i[input]); + return this.update(arr.map(o => o.pointer)) + } + return this + }; + + /** reverse the order of the matches, but not the words or index */ + const reverse$2 = function () { + let ptrs = this.pointer || this.docs.map((_d, n) => [n]); + ptrs = [].concat(ptrs); + ptrs = ptrs.reverse(); + return this.update(ptrs) + }; + + /** remove any duplicate matches */ + const unique = function () { + let already = new Set(); + let res = this.filter(m => { + let txt = m.text('machine'); + if (already.has(txt)) { + return false + } + already.add(txt); + return true + }); + // this.ptrs = res.ptrs //mutate original? + return res//.compute('index') + }; + + var sort$1 = { unique, reverse: reverse$2, sort }; + + const isArray$6 = (arr) => Object.prototype.toString.call(arr) === '[object Array]'; + + // append a new document, somehow + const combineDocs = function (homeDocs, inputDocs) { + // add a space + let end = homeDocs[homeDocs.length - 1]; + let last = end[end.length - 1]; + if (/ /.test(last.post) === false) { + last.post += ' '; + } + homeDocs = homeDocs.concat(inputDocs); + return homeDocs + }; + + const combineViews = function (home, input) { + // is it a view from the same document? + if (home.document === input.document) { + let ptrs = home.fullPointer.concat(input.fullPointer); + return home.toView(ptrs).compute('index') + } + // update n of new pointer, to end of our pointer + let ptrs = input.fullPointer; + ptrs.forEach(a => { + a[0] += home.document.length; + }); + home.document = combineDocs(home.document, input.document); + return home.all() + }; + + var concat = { + // add string as new match/sentence + concat: function (input) { + const { methods, document, world } = this; + // parse and splice-in new terms + if (typeof input === 'string') { + let json = methods.one.tokenize.fromString(input, world); + let ptrs = this.fullPointer; + let lastN = ptrs[ptrs.length - 1][0]; + spliceArr(document, lastN + 1, json); + return this.compute('index') + } + // plop some view objects together + if (typeof input === 'object' && input.isView) { + return combineViews(this, input) + } + // assume it's an array of terms + if (isArray$6(input)) { + let docs = combineDocs(this.document, input); + this.document = docs; + return this.all() + } + return this + }, + }; + + // add indexes to pointers + const harden = function () { + this.ptrs = this.fullPointer; + return this + }; + // remove indexes from pointers + const soften = function () { + let ptr = this.ptrs; + if (!ptr || ptr.length < 1) { + return this + } + ptr = ptr.map(a => a.slice(0, 3)); + this.ptrs = ptr; + return this + }; + var harden$1 = { harden, soften }; + + const methods$h = Object.assign({}, caseFns, insert$1, replace, remove, whitespace$1, sort$1, concat, harden$1); + + const addAPI$2 = function (View) { + Object.assign(View.prototype, methods$h); + }; + var api$w = addAPI$2; + + const compute$9 = { + id: function (view) { + let docs = view.docs; + for (let n = 0; n < docs.length; n += 1) { + for (let i = 0; i < docs[n].length; i += 1) { + let term = docs[n][i]; + term.id = term.id || uuid(term); + } + } + } + }; + + var compute$a = compute$9; + + var change = { + api: api$w, + compute: compute$a, + }; + + var contractions$3 = [ + // simple mappings + { word: '@', out: ['at'] }, + { word: 'alot', out: ['a', 'lot'] }, + { word: 'brb', out: ['be', 'right', 'back'] }, + { word: 'cannot', out: ['can', 'not'] }, + { word: 'cant', out: ['can', 'not'] }, + { word: 'dont', out: ['do', 'not'] }, + { word: 'dun', out: ['do', 'not'] }, + { word: 'wont', out: ['will', 'not'] }, + { word: "can't", out: ['can', 'not'] }, + { 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 + { word: 'gimme', out: ['give', 'me'] }, + { word: 'tryna', out: ['trying', 'to'] }, + { word: 'gtg', out: ['got', 'to', 'go'] }, + { word: 'im', out: ['i', 'am'] }, + { word: 'imma', out: ['I', 'will'] }, + { word: 'imo', out: ['in', 'my', 'opinion'] }, + { word: 'irl', out: ['in', 'real', 'life'] }, + { word: 'ive', out: ['i', 'have'] }, + { word: 'rn', out: ['right', 'now'] }, + { word: 'tbh', out: ['to', 'be', 'honest'] }, + { word: 'wanna', out: ['want', 'to'] }, + { word: `c'mere`, out: ['come', 'here'] }, + { word: `c'mon`, out: ['come', 'on'] }, + // apostrophe d + { word: 'howd', out: ['how', 'did'] }, + { word: 'whatd', out: ['what', 'did'] }, + { word: 'whend', out: ['when', 'did'] }, + { word: 'whered', out: ['where', 'did'] }, + + // { after: `cause`, out: ['because'] }, + { word: "tis", out: ['it', 'is'] }, + { word: "twas", out: ['it', 'was'] }, + { word: `y'know`, out: ['you', 'know'] }, + { word: "ne'er", out: ['never'] }, + { word: "o'er", out: ['over'] }, + // contraction-part mappings + { after: 'll', out: ['will'] }, + { after: 've', out: ['have'] }, + { after: 're', out: ['are'] }, + { after: 'm', out: ['am'] }, + // french contractions + { before: 'c', out: ['ce'] }, + { before: 'm', out: ['me'] }, + { before: 'n', out: ['ne'] }, + { before: 'qu', out: ['que'] }, + { before: 's', out: ['se'] }, + { before: 't', out: ['tu'] }, // t'aime + ]; + + var model$6 = { one: { contractions: contractions$3 } }; + + // put n new words where 1 word was + const insertContraction$1 = function (document, point, words) { + let [n, w] = point; + if (!words || words.length === 0) { + return + } + 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]) { + // move whitespace over + words[0].pre = document[n][w].pre; + words[words.length - 1].post = document[n][w].post; + // add the text/normal to the first term + words[0].text = document[n][w].text; + words[0].normal = document[n][w].normal; // move tags too? + } + // do the splice + document[n].splice(w, 1, ...words); + }; + var splice$1 = insertContraction$1; + + const hasContraction$3 = /'/; + //look for a past-tense verb + // const hasPastTense = (terms, i) => { + // let after = terms.slice(i + 1, i + 3) + // return after.some(t => t.tags.has('PastTense')) + // } + // he'd walked -> had + // how'd -> did + // he'd go -> would + + const alwaysDid = new Set([ + 'what', + 'how', + 'when', + 'where', + 'why', + ]); + + // after-words + const useWould = new Set([ + 'be', + 'go', + 'start', + 'think', + 'need', + ]); + + const useHad = new Set([ + 'been', + 'gone' + ]); + // they'd gone + // they'd go + + + // he'd been + // he had been + // he would been + + const _apostropheD$1 = function (terms, i) { + let before = terms[i].normal.split(hasContraction$3)[0]; + + // what'd, how'd + if (alwaysDid.has(before)) { + return [before, 'did'] + } + if (terms[i + 1]) { + // they'd gone + if (useHad.has(terms[i + 1].normal)) { + return [before, 'had'] + } + // they'd go + if (useWould.has(terms[i + 1].normal)) { + return [before, 'would'] + } + } + return null + // if (hasPastTense(terms, i) === true) { + // return [before, 'had'] + // } + // // had/would/did + // return [before, 'would'] + }; + var apostropheD$1 = _apostropheD$1; + + //ain't -> are/is not + const apostropheT$2 = function (terms, i) { + if (terms[i].normal === "ain't" || terms[i].normal === 'aint') { + return null //do this in ./two/ + } + let before = terms[i].normal.replace(/n't/, ''); + return [before, 'not'] + }; + + var apostropheT$3 = apostropheT$2; + + const hasContraction$2 = /'/; + + // l'amour + const preL = (terms, i) => { + // le/la + let after = terms[i].normal.split(hasContraction$2)[1]; + // quick french gender disambig (rough) + if (after && after.endsWith('e')) { + return ['la', after] + } + return ['le', after] + }; + + // d'amerique + const preD = (terms, i) => { + let after = terms[i].normal.split(hasContraction$2)[1]; + // quick guess for noun-agreement (rough) + if (after && after.endsWith('e')) { + return ['du', after] + } else if (after && after.endsWith('s')) { + return ['des', after] + } + return ['de', after] + }; + + // j'aime + const preJ = (terms, i) => { + let after = terms[i].normal.split(hasContraction$2)[1]; + return ['je', after] + }; + + var french = { + preJ, + preL, + preD, + }; + + 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]; + 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); + if (parts !== null) { + return [parts[1], 'to', parts[4]] + } + } + return null + }; + var numberRange$1 = numberRange; + + const byApostrophe$1 = /'/; + const numDash = /^[0-9][^-–—]*[-–—].*?[0-9]/; + + // run tagger on our new implicit terms + const reTag$1 = function (terms, view, start, len) { + let tmp = view.update(); + tmp.document = [terms]; + // offer to re-tag neighbours, too + let end = start + len; + if (start > 0) { + start -= 1; + } + if (terms[end]) { + end += 1; + } + tmp.ptrs = [[0, start, end]]; + tmp.compute('lexicon'); + if (tmp.world.compute.preTagger) { + tmp.compute('preTagger'); + } + }; + + const byEnd$1 = { + // ain't + t: (terms, i) => apostropheT$3(terms, i), + // how'd + d: (terms, i) => apostropheD$1(terms, i), + }; + + const byStart = { + // j'aime + j: (terms, i) => french.preJ(terms, i), + // l'amour + l: (terms, i) => french.preL(terms, i), + // d'amerique + d: (terms, i) => french.preD(terms, i), + }; + + // pull-apart known contractions from model + const knownOnes = function (list, term, before, after) { + for (let i = 0; i < list.length; i += 1) { + let o = list[i]; + // look for word-word match (cannot-> [can, not]) + if (o.word === term.normal) { + return o.out + } + // look for after-match ('re -> [_, are]) + else if (after !== null && after === o.after) { + return [before].concat(o.out) + } + // look for before-match (l' -> [le, _]) + else if (before !== null && before === o.before) { + return o.out.concat(after) + // return [o.out, after] //typeof o.out === 'string' ? [o.out, after] : o.out(terms, i) + } + } + return null + }; + + const toDocs$1 = function (words, view) { + let doc = view.fromText(words.join(' ')); + doc.compute('id'); + return doc.docs[0] + }; + + //really easy ones + const contractions$1 = (view) => { + let { world, document } = view; + const { model, methods } = world; + let list = model.one.contractions || []; + // each sentence + document.forEach((terms, n) => { + // loop through terms backwards + for (let i = terms.length - 1; i >= 0; i -= 1) { + let before = null; + let after = null; + if (byApostrophe$1.test(terms[i].normal) === true) { + [before, after] = terms[i].normal.split(byApostrophe$1); + } + // any known-ones, like 'dunno'? + let words = knownOnes(list, terms[i], before, after); + // ['foo', 's'] + if (!words && byEnd$1.hasOwnProperty(after)) { + words = byEnd$1[after](terms, i, world); + } + // ['j', 'aime'] + if (!words && byStart.hasOwnProperty(before)) { + words = byStart[before](terms, i); + } + // actually insert the new terms + if (words) { + words = toDocs$1(words, view); + splice$1(document, [n, i], words); + reTag$1(document[n], view, i, words.length); + continue + } + // '44-2' has special care + if (numDash.test(terms[i].normal)) { + words = numberRange$1(terms, i); + if (words) { + words = toDocs$1(words, view); + splice$1(document, [n, i], words); + 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); + } + reTag$1(document[n], view, i, words.length); + } + } + } + }); + }; + var contractions$2 = contractions$1; + + var compute$8 = { contractions: contractions$2 }; + + const plugin$3 = { + model: model$6, + compute: compute$8, + hooks: ['contractions'], + }; + var contractions = plugin$3; + + // scan-ahead to match multiple-word terms - 'jack rabbit' + const checkMulti = function (terms, i, lexicon, setTag, world) { + let max = i + 4 > terms.length ? terms.length - i : 4; + let str = terms[i].machine || terms[i].normal; + for (let skip = 1; skip < max; skip += 1) { + let t = terms[i + skip]; + let word = t.machine || t.normal; + str += ' ' + word; + if (lexicon.hasOwnProperty(str) === true) { + let tag = lexicon[str]; + let ts = terms.slice(i, i + skip + 1); + setTag(ts, tag, world, false, '1-multi-lexicon'); + return true + } + } + return false + }; + + const multiWord = function (terms, i, world) { + const { model, methods } = world; + // const { fastTag } = methods.one + const setTag = methods.one.setTag; + const multi = model.one._multiCache || {}; + const lexicon = model.one.lexicon || {}; + // basic lexicon lookup + let t = terms[i]; + let word = t.machine || t.normal; + // multi-word lookup + if (terms[i + 1] !== undefined && multi[word] === true) { + return checkMulti(terms, i, lexicon, setTag, world) + } + return null + }; + var multiWord$1 = multiWord; + + const prefix$4 = /^(under|over|mis|re|un|dis|semi|pre|post)-?/; + // anti|non|extra|inter|intra|over + const allowPrefix = new Set(['Verb', 'Infinitive', 'PastTense', 'Gerund', 'PresentTense', 'Adjective', 'Participle']); + + // tag any words in our lexicon + const checkLexicon = function (terms, i, world) { + const { model, methods } = world; + // const fastTag = methods.one.fastTag + const setTag = methods.one.setTag; + const lexicon = model.one.lexicon; + + // basic lexicon lookup + let t = terms[i]; + let word = t.machine || t.normal; + // normal lexicon lookup + if (lexicon[word] !== undefined && lexicon.hasOwnProperty(word)) { + let tag = lexicon[word]; + setTag([t], tag, world, false, '1-lexicon'); + // fastTag(t, tag, '1-lexicon') + return true + } + // lookup aliases in the lexicon + if (t.alias) { + let found = t.alias.find(str => lexicon.hasOwnProperty(str)); + if (found) { + let tag = lexicon[found]; + setTag([t], tag, world, false, '1-lexicon-alias'); + // fastTag(t, tag, '1-lexicon-alias') + return true + } + } + // prefixing for verbs/adjectives + if (prefix$4.test(word) === true) { + let stem = word.replace(prefix$4, ''); + if (lexicon.hasOwnProperty(stem) && stem.length > 3) { + // only allow prefixes for verbs/adjectives + if (allowPrefix.has(lexicon[stem])) { + // console.log('->', word, stem, lexicon[stem]) + setTag([t], lexicon[stem], world, false, '1-lexicon-prefix'); + // fastTag(t, lexicon[stem], '1-lexicon-prefix') + return true + } + } + } + return null + }; + var singleWord = checkLexicon; + + // 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 world = view.world; + view.docs.forEach(terms => { + for (let i = 0; i < terms.length; i += 1) { + if (terms[i].tags.size === 0) { + let found = null; + found = found || multiWord$1(terms, i, world); + // lookup known words + found = found || singleWord(terms, i, world); + } + } + }); + }; + + var compute$7 = { + lexicon: firstPass + }; + + // derive clever things from our lexicon key-value pairs + const expand$3 = function (words) { + // const { methods, model } = world + 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(); + // cache multi-word terms + let split = word.split(/ /); + if (split.length > 1) { + _multi[split[0]] = true; + } + lex[word] = lex[word] || tag; + }); + // cleanup + delete lex['']; + delete lex[null]; + delete lex[' ']; + return { lex, _multi } + }; + var expandLexicon$3 = expand$3; + + var methods$g = { + one: { + expandLexicon: expandLexicon$3, + } + }; + + /** insert new words/phrases into the lexicon */ + const addWords = function (words) { + const world = this.world(); + const { methods, model } = world; + if (!words) { + return + } + // normalize tag vals + Object.keys(words).forEach(k => { + if (typeof words[k] === 'string' && words[k].startsWith('#')) { + words[k] = words[k].replace(/^#/, ''); + } + }); + // add some words to our lexicon + if (methods.two.expandLexicon) { + // do fancy ./two version + let { lex, _multi } = methods.two.expandLexicon(words, world); + Object.assign(model.one.lexicon, lex); + Object.assign(model.one._multiCache, _multi); + } else if (methods.one.expandLexicon) { + // do basic ./one version + let { lex, _multi } = methods.one.expandLexicon(words, world); + Object.assign(model.one.lexicon, lex); + Object.assign(model.one._multiCache, _multi); + } else { + //no fancy-business + Object.assign(model.one.lexicon, words); + } + }; + + var lib$5 = { addWords }; + + const model$5 = { + one: { + lexicon: {}, //setup blank lexicon + _multiCache: {}, + } + }; + + var lexicon$2 = { + model: model$5, + methods: methods$g, + compute: compute$7, + lib: lib$5, + hooks: ['lexicon'] + }; + + // edited by Spencer Kelly + // credit to https://github.com/BrunoRB/ahocorasick by Bruno Roberto Búrigo. + + const tokenize$2 = function (phrase, world) { + const { methods, model } = world; + let terms = methods.one.tokenize.splitTerms(phrase, model).map(methods.one.tokenize.splitWhitespace); + return terms.map(term => term.text.toLowerCase()) + }; + + // turn an array or object into a compressed aho-corasick structure + const buildTrie = function (phrases, world) { + + // const tokenize=methods.one. + let goNext = [{}]; + let endAs = [null]; + let failTo = [0]; + + let xs = []; + let n = 0; + phrases.forEach(function (phrase) { + let curr = 0; + // let wordsB = phrase.split(/ /g).filter(w => w) + let words = tokenize$2(phrase, world); + for (let i = 0; i < words.length; i++) { + let word = words[i]; + if (goNext[curr] && goNext[curr].hasOwnProperty(word)) { + curr = goNext[curr][word]; + } else { + n++; + goNext[curr][word] = n; + goNext[n] = {}; + curr = n; + endAs[n] = null; + } + } + endAs[curr] = [words.length]; + }); + // f(s) = 0 for all states of depth 1 (the ones from which the 0 state can transition to) + for (let word in goNext[0]) { + n = goNext[0][word]; + failTo[n] = 0; + xs.push(n); + } + + while (xs.length) { + let r = xs.shift(); + // for each symbol a such that g(r, a) = s + let keys = Object.keys(goNext[r]); + for (let i = 0; i < keys.length; i += 1) { + let word = keys[i]; + let s = goNext[r][word]; + xs.push(s); + // set state = f(r) + n = failTo[r]; + while (n > 0 && !goNext[n].hasOwnProperty(word)) { + n = failTo[n]; + } + if (goNext.hasOwnProperty(n)) { + let fs = goNext[n][word]; + failTo[s] = fs; + if (endAs[fs]) { + endAs[s] = endAs[s] || []; + endAs[s] = endAs[s].concat(endAs[fs]); + } + } else { + failTo[s] = 0; + } + } + } + return { goNext, endAs, failTo } + }; + var build = buildTrie; + + // console.log(buildTrie(['smart and cool', 'smart and nice'])) + + // follow our trie structure + const scanWords = function (terms, trie, opts) { + let n = 0; + let results = []; + for (let i = 0; i < terms.length; i++) { + let word = terms[i][opts.form] || terms[i].normal; + // main match-logic loop: + while (n > 0 && (trie.goNext[n] === undefined || !trie.goNext[n].hasOwnProperty(word))) { + n = trie.failTo[n] || 0; // (usually back to 0) + } + // did we fail? + if (!trie.goNext[n].hasOwnProperty(word)) { + continue + } + n = trie.goNext[n][word]; + if (trie.endAs[n]) { + let arr = trie.endAs[n]; + for (let o = 0; o < arr.length; o++) { + let len = arr[o]; + let term = terms[i - len + 1]; + let [no, start] = term.index; + results.push([no, start, start + len, term.id]); + } + } + } + return results + }; + + const cacheMiss = function (words, cache) { + for (let i = 0; i < words.length; i += 1) { + if (cache.has(words[i]) === true) { + return false + } + } + return true + }; + + const scan = function (view, trie, opts) { + let results = []; + opts.form = opts.form || 'normal'; + let docs = view.docs; + if (!trie.goNext || !trie.goNext[0]) { + console.error('Compromise invalid lookup trie');//eslint-disable-line + return view.none() + } + let firstWords = Object.keys(trie.goNext[0]); + // do each phrase + for (let i = 0; i < docs.length; i++) { + // can we skip the phrase, all together? + if (view._cache && view._cache[i] && cacheMiss(firstWords, view._cache[i]) === true) { + continue + } + let terms = docs[i]; + let found = scanWords(terms, trie, opts); + if (found.length > 0) { + results = results.concat(found); + } + } + return view.update(results) + }; + var scan$1 = scan; + + const isObject$4 = val => { + return Object.prototype.toString.call(val) === '[object Object]' + }; + + function api$v (View) { + + /** find all matches in this document */ + View.prototype.lookup = function (input, opts = {}) { + if (!input) { + return this.none() + } + if (typeof input === 'string') { + input = [input]; + } + let trie = isObject$4(input) ? input : build(input, this.world); + let res = scan$1(this, trie, opts); + res = res.settle(); + return res + }; + } + + // chop-off tail of redundant vals at end of array + const truncate = (list, val) => { + for (let i = list.length - 1; i >= 0; i -= 1) { + if (list[i] !== val) { + list = list.slice(0, i + 1); + return list + } + } + return list + }; + + // prune trie a bit + const compress = function (trie) { + trie.goNext = trie.goNext.map(o => { + if (Object.keys(o).length === 0) { + return undefined + } + return o + }); + // chop-off tail of undefined vals in goNext array + trie.goNext = truncate(trie.goNext, undefined); + // chop-off tail of zeros in failTo array + trie.failTo = truncate(trie.failTo, 0); + // chop-off tail of nulls in endAs array + trie.endAs = truncate(trie.endAs, null); + return trie + }; + var compress$1 = compress; + + /** pre-compile a list of matches to lookup */ + const lib$4 = { + /** turn an array or object into a compressed trie*/ + compile: function (input) { + const trie = build(input, this.world()); + return compress$1(trie) + } + }; + + var lookup = { + api: api$v, + lib: lib$4 + }; + + const relPointer = function (ptrs, parent) { + if (!parent) { + return ptrs + } + ptrs.forEach(ptr => { + let n = ptr[0]; + if (parent[n]) { + ptr[0] = parent[n][0]; //n + ptr[1] += parent[n][1]; //start + ptr[2] += parent[n][1]; //end + } + }); + return ptrs + }; + + // make match-result relative to whole document + const fixPointers = function (res, parent) { + let { ptrs, byGroup } = res; + ptrs = relPointer(ptrs, parent); + Object.keys(byGroup).forEach(k => { + byGroup[k] = relPointer(byGroup[k], parent); + }); + return { ptrs, byGroup } + }; + + const isObject$3 = val => { + return Object.prototype.toString.call(val) === '[object Object]' + }; + + // did they pass-in a compromise object? + const isView = val => val && isObject$3(val) && val.isView === true; + + const isNet = val => val && isObject$3(val) && val.isNet === true; + + + // is the pointer the full sentence? + // export const isFull = function (ptr, document) { + // let [n, start, end] = ptr + // if (start !== 0) { + // return false + // } + // if (document[n] && document[n][end - 1] && !document[n][end]) { + // return true + // } + // return false + // } + + const match$2 = function (regs, group, opts) { + const one = this.methods.one; + // support param as view object + if (isView(regs)) { + return this.intersection(regs) + } + // support a compiled set of matches + 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); + } + 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 + }; + + const matchOne = function (regs, group, opts) { + const one = this.methods.one; + // support at view as a param + if (isView(regs)) { + return this.intersection(regs).eq(0) + } + // support a compiled set of matches + 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); + } + let todo = { regs, group, justOne: true }; + let res = one.match(this.docs, todo, this._cache); + let { ptrs, byGroup } = fixPointers(res, this.fullPointer); + let view = this.toView(ptrs); + view._groups = byGroup; + return view + }; + + const has = function (regs, group, opts) { + const one = this.methods.one; + // support view as input + if (isView(regs)) { + let ptrs = regs.fullPointer; // support a view object as input + return ptrs.length > 0 + } + // support a compiled set of matches + 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); + } + let todo = { regs, group, justOne: true }; + let ptrs = one.match(this.docs, todo, this._cache).ptrs; + return ptrs.length > 0 + }; + + // 'if' + const ifFn = function (regs, group, opts) { + const one = this.methods.one; + // support view as input + if (isView(regs)) { + return this.filter(m => m.intersection(regs).found) + } + // support a compiled set of matches + if (isNet(regs)) { + 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); + } + let todo = { regs, group, justOne: true }; + let ptrs = this.fullPointer; + let cache = this._cache || []; + ptrs = ptrs.filter((ptr, i) => { + let m = this.update([ptr]); + let res = one.match(m.docs, todo, cache[i]).ptrs; + return res.length > 0 + }); + let view = this.update(ptrs); + // try and reconstruct the cache + if (this._cache) { + view._cache = ptrs.map(ptr => cache[ptr[0]]); + } + return view + }; + + const ifNo = function (regs, group, opts) { + const { methods } = this; + const one = methods.one; + // support a view object as input + if (isView(regs)) { + return this.filter(m => !m.intersection(regs).found) + } + // support a compiled set of matches + if (isNet(regs)) { + let m = this.sweep(regs, { tagger: false }).view.settle(); + 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); + } + let cache = this._cache || []; + let view = this.filter((m, i) => { + let todo = { regs, group, justOne: true }; + let ptrs = one.match(m.docs, todo, cache[i]).ptrs; + return ptrs.length === 0 + }); + // try to reconstruct the cache + if (this._cache) { + view._cache = view.ptrs.map(ptr => cache[ptr[0]]); + } + return view + }; + + var match$3 = { matchOne, match: match$2, has, if: ifFn, ifNo }; + + const before = function (regs, group, opts) { + const { indexN } = this.methods.one.pointer; + let pre = []; + let byN = indexN(this.fullPointer); + Object.keys(byN).forEach(k => { + // check only the earliest match in the sentence + let first = byN[k].sort((a, b) => (a[1] > b[1] ? 1 : -1))[0]; + if (first[1] > 0) { + pre.push([first[0], 0, first[1]]); + } + }); + let preWords = this.toView(pre); + if (!regs) { + return preWords + } + return preWords.match(regs, group, opts) + }; + + const after = function (regs, group, opts) { + const { indexN } = this.methods.one.pointer; + let post = []; + let byN = indexN(this.fullPointer); + let document = this.document; + Object.keys(byN).forEach(k => { + // check only the latest match in the sentence + let last = byN[k].sort((a, b) => (a[1] > b[1] ? -1 : 1))[0]; + let [n, , end] = last; + if (end < document[n].length) { + post.push([n, end, document[n].length]); + } + }); + let postWords = this.toView(post); + if (!regs) { + return postWords + } + return postWords.match(regs, group, opts) + }; + + const growLeft = function (regs, group, opts) { + if (typeof regs === 'string') { + 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; + this.forEach((m, n) => { + let more = m.before(regs, group); + if (more.found) { + let terms = more.terms(); + ptrs[n][1] -= terms.length; + ptrs[n][3] = terms.docs[0][0].id; + } + }); + return this.update(ptrs) + }; + + const growRight = function (regs, group, opts) { + if (typeof regs === 'string') { + regs = this.world.methods.one.parseMatch(regs, opts, this.world); + } + regs[0].start = true;// ensure matches are beside us → + let ptrs = this.fullPointer; + this.forEach((m, n) => { + let more = m.after(regs, group); + if (more.found) { + let terms = more.terms(); + ptrs[n][2] += terms.length; + ptrs[n][4] = null; //remove end-id + } + }); + return this.update(ptrs) + }; + + const grow = function (regs, group, opts) { + return this.growRight(regs, group, opts).growLeft(regs, group, opts) + }; + + var lookaround = { before, after, growLeft, growRight, grow }; + + const combine = function (left, right) { + return [left[0], left[1], right[2]] + }; + + const isArray$5 = function (arr) { + return Object.prototype.toString.call(arr) === '[object Array]' + }; + + const getDoc$3 = (reg, view, group) => { + if (typeof reg === 'string' || isArray$5(reg)) { + return view.match(reg, group) + } + if (!reg) { + return view.none() + } + return reg + }; + + const addIds$1 = function (ptr, view) { + let [n, start, end] = ptr; + if (view.document[n] && view.document[n][start]) { + ptr[3] = ptr[3] || view.document[n][start].id; + if (view.document[n][end - 1]) { + ptr[4] = ptr[4] || view.document[n][end - 1].id; + } + } + return ptr + }; + + const methods$f = {}; + // [before], [match], [after] + methods$f.splitOn = function (m, group) { + const { splitAll } = this.methods.one.pointer; + let splits = getDoc$3(m, this, group).fullPointer; + let all = splitAll(this.fullPointer, splits); + let res = []; + all.forEach(o => { + res.push(o.passthrough); + res.push(o.before); + res.push(o.match); + res.push(o.after); + }); + res = res.filter(p => p); + res = res.map(p => addIds$1(p, this)); + return this.update(res) + }; + + // [before], [match after] + methods$f.splitBefore = function (m, group) { + const { splitAll } = this.methods.one.pointer; + let splits = getDoc$3(m, this, group).fullPointer; + let all = splitAll(this.fullPointer, splits); + let res = []; + all.forEach(o => { + res.push(o.passthrough); + res.push(o.before); + if (o.match && o.after) { + // console.log(combine(o.match, o.after)) + res.push(combine(o.match, o.after)); + } else { + res.push(o.match); + res.push(o.after); + } + }); + res = res.filter(p => p); + res = res.map(p => addIds$1(p, this)); + return this.update(res) + }; + + // [before match], [after] + methods$f.splitAfter = function (m, group) { + const { splitAll } = this.methods.one.pointer; + let splits = getDoc$3(m, this, group).fullPointer; + let all = splitAll(this.fullPointer, splits); + let res = []; + all.forEach(o => { + res.push(o.passthrough); + if (o.before && o.match) { + res.push(combine(o.before, o.match)); + } else { + res.push(o.before); + res.push(o.match); + } + res.push(o.after); + }); + res = res.filter(p => p); + res = res.map(p => addIds$1(p, this)); + return this.update(res) + }; + methods$f.split = methods$f.splitAfter; + + var split$2 = methods$f; + + const methods$e = Object.assign({}, match$3, lookaround, split$2); + // aliases + methods$e.lookBehind = methods$e.before; + methods$e.lookBefore = methods$e.before; + + methods$e.lookAhead = methods$e.after; + methods$e.lookAfter = methods$e.after; + + methods$e.notIf = methods$e.ifNo; + const matchAPI = function (View) { + Object.assign(View.prototype, methods$e); + }; + var api$u = matchAPI; + + // match 'foo /yes/' and not 'foo/no/bar' + const bySlashes = /(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/; + // match '(yes) but not foo(no)bar' + const byParentheses = /([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/; + // okay + const byWord$1 = / /g; + + const isBlock = str => { + return /^[![^]*(<[^<]*>)?\(/.test(str) && /\)[?\]+*$~]*$/.test(str) + }; + const isReg = str => { + return /^[![^]*(<[^<]*>)?\//.test(str) && /\/[?\]+*$~]*$/.test(str) + }; + + const cleanUp$1 = function (arr) { + arr = arr.map(str => str.trim()); + arr = arr.filter(str => str); + return arr + }; + + const parseBlocks = function (txt) { + // parse by /regex/ first + let arr = txt.split(bySlashes); + let res = []; + // parse by (blocks), next + arr.forEach(str => { + if (isReg(str)) { + res.push(str); + return + } + res = res.concat(str.split(byParentheses)); + }); + res = cleanUp$1(res); + // split by spaces, now + let final = []; + res.forEach(str => { + if (isBlock(str)) { + final.push(str); + } else if (isReg(str)) { + final.push(str); + } else { + final = final.concat(str.split(byWord$1)); + } + }); + final = cleanUp$1(final); + return final + }; + var parseBlocks$1 = parseBlocks; + + const hasMinMax = /\{([0-9]+)?(, *[0-9]*)?\}/; + const andSign = /&&/; + // const hasDash = /\p{Letter}[-–—]\p{Letter}/u + const captureName = new RegExp(/^<\s*(\S+)\s*>/); + /* break-down a match expression into this: + { + word:'', + tag:'', + regex:'', + + start:false, + end:false, + negative:false, + anything:false, + greedy:false, + optional:false, + + named:'', + choices:[], + } + */ + const titleCase$2 = str => str.charAt(0).toUpperCase() + str.substring(1); + const end = (str) => str.charAt(str.length - 1); + const start = (str) => str.charAt(0); + const stripStart = (str) => str.substring(1); + const stripEnd = (str) => str.substring(0, str.length - 1); + + const stripBoth = function (str) { + str = stripStart(str); + str = stripEnd(str); + return str + }; + // + const parseToken = function (w, opts) { + let obj = {}; + //collect any flags (do it twice) + for (let i = 0; i < 2; i += 1) { + //end-flag + if (end(w) === '$') { + obj.end = true; + w = stripEnd(w); + } + //front-flag + if (start(w) === '^') { + obj.start = true; + w = stripStart(w); + } + //capture group (this one can span multiple-terms) + if (start(w) === '[' || end(w) === ']') { + obj.group = null; + if (start(w) === '[') { + obj.groupStart = true; + } + if (end(w) === ']') { + obj.groupEnd = true; + } + w = w.replace(/^\[/, ''); + w = w.replace(/\]$/, ''); + // Use capture group name + if (start(w) === '<') { + const res = captureName.exec(w); + if (res.length >= 2) { + obj.group = res[1]; + w = w.replace(res[0], ''); + } + } + } + //back-flags + if (end(w) === '+') { + obj.greedy = true; + w = stripEnd(w); + } + if (w !== '*' && end(w) === '*' && w !== '\\*') { + obj.greedy = true; + w = stripEnd(w); + } + if (end(w) === '?') { + obj.optional = true; + w = stripEnd(w); + } + if (start(w) === '!') { + obj.negative = true; + // obj.optional = true + w = stripStart(w); + } + //soft-match + if (start(w) === '~' && end(w) === '~' && w.length > 2) { + w = stripBoth(w); + obj.fuzzy = true; + obj.min = opts.fuzzy || 0.85; + if (/\(/.test(w) === false) { + obj.word = w; + return obj + } + } + + //wrapped-flags + if (start(w) === '(' && end(w) === ')') { + // support (one && two) + if (andSign.test(w)) { + obj.choices = w.split(andSign); + obj.operator = 'and'; + } else { + obj.choices = w.split('|'); + obj.operator = 'or'; + } + //remove '(' and ')' + obj.choices[0] = stripStart(obj.choices[0]); + let last = obj.choices.length - 1; + obj.choices[last] = stripEnd(obj.choices[last]); + // clean up the results + obj.choices = obj.choices.map(s => s.trim()); + obj.choices = obj.choices.filter(s => s); + //recursion alert! + obj.choices = obj.choices.map(str => { + return str.split(/ /g).map(s => parseToken(s, opts)) + }); + w = ''; + } + //regex + if (start(w) === '/' && end(w) === '/') { + w = stripBoth(w); + if (opts.caseSensitive) { + obj.use = 'text'; + } + obj.regex = new RegExp(w); //potential vuln - security/detect-non-literal-regexp + return obj + } + + //machine/sense overloaded + if (start(w) === '{' && end(w) === '}') { + w = stripBoth(w); + if (/\//.test(w)) { + obj.sense = w; + obj.greedy = true; + } else { + obj.machine = w; + } + return obj + } + //chunks + if (start(w) === '<' && end(w) === '>') { + w = stripBoth(w); + obj.chunk = titleCase$2(w); + obj.greedy = true; + return obj + } + if (start(w) === '%' && end(w) === '%') { + w = stripBoth(w); + obj.switch = w; + return obj + } + } + // support foo{1,9} + if (hasMinMax.test(w) === true) { + w = w.replace(hasMinMax, (_a, b, c) => { + if (c === undefined) { + // '{3}' Exactly three times + obj.min = Number(b); + obj.max = Number(b); + } else { + c = c.replace(/, */, ''); + if (b === undefined) { + // '{,9}' implied zero min + obj.min = 0; + obj.max = Number(c); + } else { + // '{2,4}' Two to four times + obj.min = Number(b); + // '{3,}' Three or more times + obj.max = Number(c || 999); + } + } + // use same method as '+' + obj.greedy = true; + // 0 as min means the same as '?' + if (!obj.min) { + obj.optional = true; + } + return '' + }); + } + //do the actual token content + if (start(w) === '#') { + obj.tag = stripStart(w); + obj.tag = titleCase$2(obj.tag); + return obj + } + //dynamic function on a term object + if (start(w) === '@') { + obj.method = stripStart(w); + return obj + } + if (w === '.') { + obj.anything = true; + return obj + } + //support alone-astrix + if (w === '*') { + obj.anything = true; + obj.greedy = true; + obj.optional = true; + return obj + } + if (w) { + //somehow handle encoded-chars? + w = w.replace('\\*', '*'); + w = w.replace('\\.', '.'); + if (opts.caseSensitive) { + obj.use = 'text'; + } else { + w = w.toLowerCase(); + } + 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; + + // name any [unnamed] capture-groups with a number + const nameGroups = function (regs) { + let index = 0; + let inGroup = null; + //'fill in' capture groups between start-end + for (let i = 0; i < regs.length; i++) { + const token = regs[i]; + if (token.groupStart === true) { + inGroup = token.group; + if (inGroup === null) { + inGroup = String(index); + index += 1; + } + } + if (inGroup !== null) { + token.group = inGroup; + } + if (token.groupEnd === true) { + inGroup = null; + } + } + return regs + }; + + // optimize an 'or' lookup, when the (a|b|c) list is simple or multi-word + const doFastOrMode = function (tokens) { + return tokens.map(token => { + if (token.choices !== undefined) { + // make sure it's an OR + if (token.operator !== 'or') { + return token + } + if (token.fuzzy === true) { + return token + } + // are they all straight-up words? then optimize them. + let shouldPack = token.choices.every(block => { + if (block.length !== 1) { + return false + } + let reg = block[0]; + // ~fuzzy~ words need more care + if (reg.fuzzy === true) { + return false + } + // ^ and $ get lost in fastOr + if (reg.start || reg.end) { + return false + } + if (reg.word !== undefined && reg.negative !== true && reg.optional !== true && reg.method !== true) { + return true //reg is simple-enough + } + return false + }); + if (shouldPack === true) { + token.fastOr = new Set(); + token.choices.forEach(block => { + token.fastOr.add(block[0].word); + }); + delete token.choices; + } + } + return token + }) + }; + + // support ~(a|b|c)~ + const fuzzyOr = function (regs) { + return regs.map(reg => { + if (reg.fuzzy && reg.choices) { + // pass fuzzy-data to each OR choice + reg.choices.forEach(r => { + if (r.length === 1 && r[0].word) { + r[0].fuzzy = true; + r[0].min = reg.min; + } + }); + } + return reg + }) + }; + + const postProcess = function (regs) { + // ensure all capture groups names are filled between start and end + regs = nameGroups(regs); + // convert 'choices' format to 'fastOr' format + regs = doFastOrMode(regs); + // support ~(foo|bar)~ + regs = fuzzyOr(regs); + return regs + }; + var postProcess$1 = postProcess; + + /** parse a match-syntax string into json */ + 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); + //clean up anything weird + tokens = postProcess$1(tokens); + // console.log(tokens) + return tokens + }; + var parseMatch = syntax; + + const anyIntersection = function (setA, setB) { + for (let elem of setB) { + if (setA.has(elem)) { + return true + } + } + return false + }; + // check words/tags against our cache + const failFast = function (regs, cache) { + for (let i = 0; i < regs.length; i += 1) { + let reg = regs[i]; + if (reg.optional === true || reg.negative === true || reg.fuzzy === true) { + continue + } + // is the word missing from the cache? + if (reg.word !== undefined && cache.has(reg.word) === false) { + return true + } + // is the tag missing? + if (reg.tag !== undefined && cache.has('#' + reg.tag) === false) { + return true + } + // perform a speedup for fast-or + if (reg.fastOr && anyIntersection(reg.fastOr, cache) === false) { + return false + } + } + return false + }; + var failFast$1 = failFast; + + // fuzzy-match (damerau-levenshtein) + // Based on tad-lispy /node-damerau-levenshtein + // https://github.com/tad-lispy/node-damerau-levenshtein/blob/master/index.js + // count steps (insertions, deletions, substitutions, or transpositions) + const editDistance = function (strA, strB) { + let aLength = strA.length, + bLength = strB.length; + // fail-fast + if (aLength === 0) { + return bLength + } + if (bLength === 0) { + return aLength + } + // If the limit is not defined it will be calculate from this and that args. + let limit = (bLength > aLength ? bLength : aLength) + 1; + if (Math.abs(aLength - bLength) > (limit || 100)) { + return limit || 100 + } + // init the array + let matrix = []; + for (let i = 0; i < limit; i++) { + matrix[i] = [i]; + matrix[i].length = limit; + } + for (let i = 0; i < limit; i++) { + matrix[0][i] = i; + } + // Calculate matrix. + let j, a_index, b_index, cost, min, t; + for (let i = 1; i <= aLength; ++i) { + a_index = strA[i - 1]; + for (j = 1; j <= bLength; ++j) { + // Check the jagged distance total so far + if (i === j && matrix[i][j] > 4) { + return aLength + } + b_index = strB[j - 1]; + cost = a_index === b_index ? 0 : 1; // Step 5 + // Calculate the minimum (much faster than Math.min(...)). + min = matrix[i - 1][j] + 1; // Deletion. + if ((t = matrix[i][j - 1] + 1) < min) min = t; // Insertion. + if ((t = matrix[i - 1][j - 1] + cost) < min) min = t; // Substitution. + // Update matrix. + let shouldUpdate = + i > 1 && j > 1 && a_index === strB[j - 2] && strA[i - 2] === b_index && (t = matrix[i - 2][j - 2] + cost) < min; + if (shouldUpdate) { + matrix[i][j] = t; + } else { + matrix[i][j] = min; + } + } + } + // return number of steps + return matrix[aLength][bLength] + }; + // score similarity by from 0-1 (steps/length) + const fuzzyMatch = function (strA, strB, minLength = 3) { + if (strA === strB) { + return 1 + } + //don't even bother on tiny strings + if (strA.length < minLength || strB.length < minLength) { + return 0 + } + const steps = editDistance(strA, strB); + let length = Math.max(strA.length, strB.length); + let relative = length === 0 ? 0 : steps / length; + let similarity = 1 - relative; + return similarity + }; + var fuzzy = fuzzyMatch; + + // these methods are called with '@hasComma' in the match syntax + // various unicode quotation-mark formats + const startQuote = + /([\u0022\uFF02\u0027\u201C\u2018\u201F\u201B\u201E\u2E42\u201A\u00AB\u2039\u2035\u2036\u2037\u301D\u0060\u301F])/; + + const endQuote = /([\u0022\uFF02\u0027\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4])/; + + const hasHyphen$1 = /^[-–—]$/; + const hasDash$1 = / [-–—] /; + + /** search the term's 'post' punctuation */ + const hasPost = (term, punct) => term.post.indexOf(punct) !== -1; + /** search the term's 'pre' punctuation */ + const hasPre = (term, punct) => term.pre.indexOf(punct) !== -1; + + const methods$d = { + /** does it have a quotation symbol? */ + hasQuote: term => startQuote.test(term.pre) || endQuote.test(term.post), + /** does it have a comma? */ + hasComma: term => hasPost(term, ','), + /** does it end in a period? */ + hasPeriod: term => hasPost(term, '.') === true && hasPost(term, '...') === false, + /** does it end in an exclamation */ + hasExclamation: term => hasPost(term, '!'), + /** does it end with a question mark? */ + hasQuestionMark: term => hasPost(term, '?') || hasPost(term, '¿'), + /** is there a ... at the end? */ + hasEllipses: term => hasPost(term, '..') || hasPost(term, '…') || hasPre(term, '..') || hasPre(term, '…'), + /** is there a semicolon after term word? */ + hasSemicolon: term => hasPost(term, ';'), + /** is there a slash '/' in term word? */ + hasSlash: term => /\//.test(term.text), + /** a hyphen connects two words like-term */ + hasHyphen: term => hasHyphen$1.test(term.post) || hasHyphen$1.test(term.pre), + /** a dash separates words - like that */ + hasDash: term => hasDash$1.test(term.post) || hasDash$1.test(term.pre), + /** is it multiple words combinded */ + hasContraction: term => Boolean(term.implicit), + /** is it an acronym */ + isAcronym: term => term.tags.has('Acronym'), + /** does it have any tags */ + isKnown: term => term.tags.size > 0, + /** uppercase first letter, then a lowercase */ + isTitleCase: term => /^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(term.text), + /** uppercase all letters */ + isUpperCase: term => /^\p{Lu}+$/u.test(term.text), + }; + // aliases + methods$d.hasQuotation = methods$d.hasQuote; + + var termMethods = methods$d; + + //declare it up here + let wrapMatch = function () { }; + /** ignore optional/greedy logic, straight-up term match*/ + const doesMatch$1 = function (term, reg, index, length) { + // support '.' + if (reg.anything === true) { + return true + } + // support '^' (in parentheses) + if (reg.start === true && index !== 0) { + return false + } + // support '$' (in parentheses) + if (reg.end === true && index !== length - 1) { + return false + } + //support a text match + if (reg.word !== undefined) { + // check case-sensitivity, etc + if (reg.use) { + return reg.word === term[reg.use] + } + //match contractions, machine-form + if (term.machine !== null && term.machine === reg.word) { + return true + } + // term aliases for slashes and things + if (term.alias !== undefined && term.alias.hasOwnProperty(reg.word)) { + return true + } + // support ~ fuzzy match + if (reg.fuzzy === true) { + if (reg.word === term.root) { + return true + } + let score = fuzzy(reg.word, term.normal); + if (score >= reg.min) { + return true + } + } + // match slashes and things + if (term.alias && term.alias.some(str => str === reg.word)) { + return true + } + //match either .normal or .text + return reg.word === term.text || reg.word === term.normal + } + //support #Tag + if (reg.tag !== undefined) { + return term.tags.has(reg.tag) === true + } + //support @method + if (reg.method !== undefined) { + if (typeof termMethods[reg.method] === 'function' && termMethods[reg.method](term) === true) { + return true + } + return false + } + //support whitespace/punctuation + if (reg.pre !== undefined) { + return term.pre && term.pre.includes(reg.pre) + } + if (reg.post !== undefined) { + return term.post && term.post.includes(reg.post) + } + //support /reg/ + if (reg.regex !== undefined) { + let str = term.normal; + if (reg.use) { + str = term[reg.use]; + } + return reg.regex.test(str) + } + //support + if (reg.chunk !== undefined) { + return term.chunk === reg.chunk + } + //support %Noun|Verb% + if (reg.switch !== undefined) { + return term.switch === reg.switch + } + //support {machine} + if (reg.machine !== undefined) { + return term.normal === reg.machine || term.machine === reg.machine || term.root === reg.machine + } + //support {word/sense} + if (reg.sense !== undefined) { + return term.sense === reg.sense + } + // support optimized (one|two) + if (reg.fastOr !== undefined) { + 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) + if (reg.choices !== undefined) { + // try to support && operator + if (reg.operator === 'and') { + // must match them all + return reg.choices.every(r => wrapMatch(term, r, index, length)) + } + // or must match one + return reg.choices.some(r => wrapMatch(term, r, index, length)) + } + return false + }; + // wrap result for !negative match logic + wrapMatch = function (t, reg, index, length) { + let result = doesMatch$1(t, reg, index, length); + if (reg.negative === true) { + return !result + } + return result + }; + var matchTerm = wrapMatch; + + // for greedy checking, we no longer care about the reg.start + // value, and leaving it can cause failures for anchored greedy + // matches. ditto for end-greedy matches: we need an earlier non- + // ending match to succceed until we get to the actual end. + const getGreedy = function (state, endReg) { + let reg = Object.assign({}, state.regs[state.r], { start: false, end: false }); + let start = state.t; + for (; state.t < state.terms.length; state.t += 1) { + //stop for next-reg match + if (endReg && matchTerm(state.terms[state.t], endReg, state.start_i + state.t, state.phrase_length)) { + return state.t + } + let count = state.t - start + 1; + // is it max-length now? + if (reg.max !== undefined && count === reg.max) { + return state.t + } + //stop here + if (matchTerm(state.terms[state.t], reg, state.start_i + state.t, state.phrase_length) === false) { + // is it too short? + if (reg.min !== undefined && count < reg.min) { + return null + } + return state.t + } + } + return state.t + }; + + const greedyTo = function (state, nextReg) { + let t = state.t; + //if there's no next one, just go off the end! + if (!nextReg) { + return state.terms.length + } + //otherwise, we're looking for the next one + for (; t < state.terms.length; t += 1) { + if (matchTerm(state.terms[t], nextReg, state.start_i + t, state.phrase_length) === true) { + // console.log(`greedyTo ${state.terms[t].normal}`) + return t + } + } + //guess it doesn't exist, then. + return null + }; + + const isEndGreedy = function (reg, state) { + if (reg.end === true && reg.greedy === true) { + if (state.start_i + state.t < state.phrase_length - 1) { + let tmpReg = Object.assign({}, reg, { end: false }); + if (matchTerm(state.terms[state.t], tmpReg, state.start_i + state.t, state.phrase_length) === true) { + // console.log(`endGreedy ${state.terms[state.t].normal}`) + return true + } + } + } + return false + }; + + const getGroup$2 = function (state, term_index) { + if (state.groups[state.inGroup]) { + return state.groups[state.inGroup] + } + state.groups[state.inGroup] = { + start: term_index, + length: 0, + }; + return state.groups[state.inGroup] + }; + + //support 'unspecific greedy' .* properly + // its logic is 'greedy until', where it's looking for the next token + // '.+ foo' means we check for 'foo', indefinetly + const doAstrix = function (state) { + let { regs } = state; + let reg = regs[state.r]; + + let skipto = greedyTo(state, regs[state.r + 1]); + //maybe we couldn't find it + if (skipto === null || skipto === 0) { + return null + } + // ensure it's long enough + if (reg.min !== undefined && skipto - state.t < reg.min) { + return null + } + // reduce it back, if it's too long + if (reg.max !== undefined && skipto - state.t > reg.max) { + state.t = state.t + reg.max; + return true + } + // set the group result + if (state.hasGroup === true) { + const g = getGroup$2(state, state.t); + g.length = skipto - state.t; + } + state.t = skipto; + // log(`✓ |greedy|`) + return true + }; + var doAstrix$1 = doAstrix; + + const isArray$4 = function (arr) { + return Object.prototype.toString.call(arr) === '[object Array]' + }; + + const doOrBlock$1 = function (state, skipN = 0) { + let block = state.regs[state.r]; + let wasFound = false; + // do each multiword sequence + for (let c = 0; c < block.choices.length; c += 1) { + // try to match this list of tokens + let regs = block.choices[c]; + if (!isArray$4(regs)) { + return false + } + wasFound = regs.every((cr, w_index) => { + let extra = 0; + let t = state.t + w_index + skipN + extra; + if (state.terms[t] === undefined) { + return false + } + let foundBlock = matchTerm(state.terms[t], cr, t + state.start_i, state.phrase_length); + // this can be greedy - '(foo+ bar)' + if (foundBlock === true && cr.greedy === true) { + for (let i = 1; i < state.terms.length; i += 1) { + let term = state.terms[t + i]; + if (term) { + let keepGoing = matchTerm(term, cr, state.start_i + i, state.phrase_length); + if (keepGoing === true) { + extra += 1; + } else { + break + } + } + } + } + skipN += extra; + return foundBlock + }); + if (wasFound) { + skipN += regs.length; + break + } + } + // we found a match - is it greedy though? + if (wasFound && block.greedy === true) { + return doOrBlock$1(state, skipN) // try it again! + } + return skipN + }; + + const doAndBlock$1 = function (state) { + let longest = 0; + // all blocks must match, and we return the greediest match + let reg = state.regs[state.r]; + let allDidMatch = reg.choices.every(block => { + // for multi-word blocks, all must match + let allWords = block.every((cr, w_index) => { + let tryTerm = state.t + w_index; + if (state.terms[tryTerm] === undefined) { + return false + } + return matchTerm(state.terms[tryTerm], cr, tryTerm, state.phrase_length) + }); + if (allWords === true && block.length > longest) { + longest = block.length; + } + return allWords + }); + if (allDidMatch === true) { + // console.log(`doAndBlock ${state.terms[state.t].normal}`) + return longest + } + return false + }; + + const orBlock = function (state) { + const { regs } = state; + let reg = regs[state.r]; + let skipNum = doOrBlock$1(state); + // did we find a match? + if (skipNum) { + // handle 'not' logic + if (reg.negative === true) { + return null // die + } + // tuck in as named-group + if (state.hasGroup === true) { + const g = getGroup$2(state, state.t); + g.length += skipNum; + } + // ensure we're at the end + if (reg.end === true) { + let end = state.phrase_length; + if (state.t + state.start_i + skipNum !== end) { + return null + } + } + state.t += skipNum; + // log(`✓ |found-or|`) + return true + } else if (!reg.optional) { + return null //die + } + return true + }; + var doOrBlock = orBlock; + + // '(foo && #Noun)' - require all matches on the term + const andBlock = function (state) { + const { regs } = state; + let reg = regs[state.r]; + + let skipNum = doAndBlock$1(state); + if (skipNum) { + // handle 'not' logic + if (reg.negative === true) { + return null // die + } + if (state.hasGroup === true) { + const g = getGroup$2(state, state.t); + g.length += skipNum; + } + // ensure we're at the end + if (reg.end === true) { + let end = state.phrase_length - 1; + if (state.t + state.start_i !== end) { + return null + } + } + state.t += skipNum; + // log(`✓ |found-and|`) + return true + } else if (!reg.optional) { + return null //die + } + return true + }; + var doAndBlock = andBlock; + + // '!foo' should match anything that isn't 'foo' + // if it matches, return false + const doNegative = function (state) { + const { regs } = state; + let reg = regs[state.r]; + let tmpReg = Object.assign({}, reg); + tmpReg.negative = false; // try removing it + let foundNeg = matchTerm(state.terms[state.t], tmpReg, state.start_i + state.t, state.phrase_length); + if (foundNeg === true) { + return null //bye! + } + return true + }; + var doNegative$1 = doNegative; + + // 'foo? foo' matches are tricky. + const foundOptional = function (state) { + const { regs } = state; + let reg = regs[state.r]; + let term = state.terms[state.t]; + // does the next reg match it too? + let nextRegMatched = matchTerm(term, regs[state.r + 1], state.start_i + state.t, state.phrase_length); + if (reg.negative || nextRegMatched) { + // but does the next reg match the next term?? + // only skip if it doesn't + let nextTerm = state.terms[state.t + 1]; + if (!nextTerm || !matchTerm(nextTerm, regs[state.r + 1], state.start_i + state.t, state.phrase_length)) { + state.r += 1; + } + } + }; + + var foundOptional$1 = foundOptional; + + // keep 'foo+' or 'foo*' going.. + const greedyMatch = function (state) { + const { regs, phrase_length } = state; + let reg = regs[state.r]; + state.t = getGreedy(state, regs[state.r + 1]); + if (state.t === null) { + return null //greedy was too short + } + // foo{2,4} - has a greed-minimum + if (reg.min && reg.min > state.t) { + return null //greedy was too short + } + // 'foo+$' - if also an end-anchor, ensure we really reached the end + if (reg.end === true && state.start_i + state.t !== phrase_length) { + return null //greedy didn't reach the end + } + return true + }; + var greedyMatch$1 = greedyMatch; + + // for: ['we', 'have'] + // a match for "we have" should work as normal + // but matching "we've" should skip over implict terms + const contractionSkip = function (state) { + let term = state.terms[state.t]; + let reg = state.regs[state.r]; + // did we match the first part of a contraction? + if (term.implicit && state.terms[state.t + 1]) { + let nextTerm = state.terms[state.t + 1]; + // ensure next word is implicit + if (!nextTerm.implicit) { + return + } + // we matched "we've" - skip-over [we, have] + if (reg.word === term.normal) { + state.t += 1; + } + // also skip for @hasContraction + if (reg.method === 'hasContraction') { + state.t += 1; + } + } + }; + var contractionSkip$1 = contractionSkip; + + // '[foo]' should also be logged as a group + const setGroup = function (state, startAt) { + let reg = state.regs[state.r]; + // Get or create capture group + const g = getGroup$2(state, startAt); + // Update group - add greedy or increment length + if (state.t > 1 && reg.greedy) { + g.length += state.t - startAt; + } else { + g.length++; + } + }; + + // when a reg matches a term + const simpleMatch = function (state) { + const { regs } = state; + let reg = regs[state.r]; + let term = state.terms[state.t]; + let startAt = state.t; + // if it's a negative optional match... :0 + if (reg.optional && regs[state.r + 1] && reg.negative) { + return true + } + // okay, it was a match, but if it's optional too, + // we should check the next reg too, to skip it? + if (reg.optional && regs[state.r + 1]) { + foundOptional$1(state); + } + // Contraction skip: + // did we match the first part of a contraction? + if (term.implicit && state.terms[state.t + 1]) { + contractionSkip$1(state); + } + //advance to the next term! + state.t += 1; + //check any ending '$' flags + //if this isn't the last term, refuse the match + if (reg.end === true && state.t !== state.terms.length && reg.greedy !== true) { + return null //die + } + // keep 'foo+' going... + if (reg.greedy === true) { + let alive = greedyMatch$1(state); + if (!alive) { + return null + } + } + // log '[foo]' as a group + if (state.hasGroup === true) { + setGroup(state, startAt); + } + return true + }; + var simpleMatch$1 = simpleMatch; + + // i formally apologize for how complicated this is. + + /** + * try a sequence of match tokens ('regs') + * on a sequence of terms, + * starting at this certain term. + */ + const tryHere = function (terms, regs, start_i, phrase_length) { + if (terms.length === 0 || regs.length === 0) { + return null + } + // all the variables that matter + let state = { + t: 0, + terms: terms, + r: 0, + regs: regs, + groups: {}, + start_i: start_i, + phrase_length: phrase_length, + inGroup: null, + }; + + // we must satisfy every token in 'regs' + // if we get to the end, we have a match. + for (; state.r < regs.length; state.r += 1) { + let reg = regs[state.r]; + // Check if this reg has a named capture group + state.hasGroup = Boolean(reg.group); + // Reuse previous capture group if same + if (state.hasGroup === true) { + state.inGroup = reg.group; + } else { + state.inGroup = null; + } + //have we run-out of terms? + if (!state.terms[state.t]) { + //are all remaining regs optional or negative? + const alive = regs.slice(state.r).some(remain => !remain.optional); + if (alive === false) { + break //done! + } + return null // die + } + // support 'unspecific greedy' .* properly + if (reg.anything === true && reg.greedy === true) { + let alive = doAstrix$1(state); + if (!alive) { + return null + } + continue + } + // slow-OR - multi-word OR (a|b|foo bar) + if (reg.choices !== undefined && reg.operator === 'or') { + let alive = doOrBlock(state); + if (!alive) { + return null + } + continue + } + // slow-AND - multi-word AND (#Noun && foo) blocks + if (reg.choices !== undefined && reg.operator === 'and') { + let alive = doAndBlock(state); + if (!alive) { + return null + } + continue + } + // support '.' as any-single + if (reg.anything === true) { + let alive = simpleMatch$1(state); + if (!alive) { + return null + } + continue + } + // support 'foo*$' until the end + if (isEndGreedy(reg, state) === true) { + let alive = simpleMatch$1(state); + if (!alive) { + return null + } + continue + } + // ok, finally test the term-reg + let hasMatch = matchTerm(state.terms[state.t], reg, state.start_i + state.t, state.phrase_length); + if (hasMatch === true) { + let alive = simpleMatch$1(state); + if (!alive) { + return null + } + continue + } + // ok, it doesn't match - but maybe it wasn't *supposed* to? + if (reg.negative) { + let alive = doNegative$1(state); + if (!alive) { + return null + } + } + //ok who cares, keep going + if (reg.optional === true) { + continue + } + + // finally, we die + return null + } + //return our results, as pointers + let pntr = [null, start_i, state.t + start_i]; + if (pntr[1] === pntr[2]) { + return null //found 0 terms + } + let groups = {}; + Object.keys(state.groups).forEach(k => { + let o = state.groups[k]; + let start = start_i + o.start; + groups[k] = [null, start, start + o.length]; + }); + return { pointer: pntr, groups: groups } + }; + var fromHere = tryHere; + + // support returning a subset of a match + // like 'foo [bar] baz' -> bar + const getGroup = function (res, group) { + let ptrs = []; + let byGroup = {}; + if (res.length === 0) { + return { ptrs, byGroup } + } + if (typeof group === 'number') { + group = String(group); + } + if (group) { + res.forEach(r => { + if (r.groups[group]) { + ptrs.push(r.groups[group]); + } + }); + } else { + res.forEach(r => { + ptrs.push(r.pointer); + Object.keys(r.groups).forEach(k => { + byGroup[k] = byGroup[k] || []; + byGroup[k].push(r.groups[k]); + }); + }); + } + return { ptrs, byGroup } + }; + var getGroup$1 = getGroup; + + // make proper pointers + const addSentence = function (res, n) { + res.pointer[0] = n; + Object.keys(res.groups).forEach(k => { + res.groups[k][0] = n; + }); + return res + }; + + const handleStart = function (terms, regs, n) { + let res = fromHere(terms, regs, 0, terms.length); + if (res) { + res = addSentence(res, n); + return res //getGroup([res], group) + } + return null + }; + + // ok, here we go. + const runMatch$2 = function (docs, todo, cache) { + cache = cache || []; + let { regs, group, justOne } = todo; + let results = []; + if (!regs || regs.length === 0) { + return { ptrs: [], byGroup: {} } + } + + const minLength = regs.filter(r => r.optional !== true && r.negative !== true).length; + docs: for (let n = 0; n < docs.length; n += 1) { + let terms = docs[n]; + // let index = terms[0].index || [] + // can we skip this sentence? + if (cache[n] && failFast$1(regs, cache[n])) { + continue + } + // ^start regs only run once, per phrase + if (regs[0].start === true) { + let foundStart = handleStart(terms, regs, n); + if (foundStart) { + results.push(foundStart); + } + continue + } + //ok, try starting the match now from every term + for (let i = 0; i < terms.length; i += 1) { + let slice = terms.slice(i); + // ensure it's long-enough + if (slice.length < minLength) { + break + } + let res = fromHere(slice, regs, i, terms.length); + // did we find a result? + if (res) { + // res = addSentence(res, index[0]) + res = addSentence(res, n); + results.push(res); + // should we stop here? + if (justOne === true) { + break docs + } + // skip ahead, over these results + let end = res.pointer[2]; + if (Math.abs(end - 1) > i) { + i = Math.abs(end - 1); + } + } + } + } + // ensure any end-results ($) match until the last term + if (regs[regs.length - 1].end === true) { + results = results.filter(res => { + let n = res.pointer[0]; + return docs[n].length === res.pointer[2] + }); + } + // grab the requested group + results = getGroup$1(results, group); + // add ids to pointers + results.ptrs.forEach(ptr => { + let [n, start, end] = ptr; + ptr[3] = docs[n][start].id;//start-id + ptr[4] = docs[n][end - 1].id;//end-id + }); + return results + }; + + var match$1 = runMatch$2; + + const methods$b = { + one: { + termMethods, + parseMatch, + match: match$1, + }, + }; + + var methods$c = methods$b; + + var lib$3 = { + /** pre-parse any match statements */ + parseMatch: function (str, opts) { + const world = this.world(); + let killUnicode = world.methods.one.killUnicode; + if (killUnicode) { + str = killUnicode(str, world); + } + return world.methods.one.parseMatch(str, opts, world) + } + }; + + var match = { + api: api$u, + methods: methods$c, + lib: lib$3, + }; + + const isClass = /^\../; + const isId = /^#./; + + const escapeXml = (str) => { + str = str.replace(/&/g, '&'); + str = str.replace(//g, '>'); + str = str.replace(/"/g, '"'); + str = str.replace(/'/g, '''); + return str + }; + + // interpret .class, #id, tagName + const toTag = function (k) { + let start = ''; + let end = ''; + k = escapeXml(k); + if (isClass.test(k)) { + start = ``; + } + start += '>'; + return { start, end } + }; + + const getIndex = function (doc, obj) { + let starts = {}; + let ends = {}; + Object.keys(obj).forEach(k => { + let res = obj[k]; + let tag = toTag(k); + if (typeof res === 'string') { + res = doc.match(res); + } + res.docs.forEach(terms => { + // don't highlight implicit terms + if (terms.every(t => t.implicit)) { + return + } + let a = terms[0].id; + starts[a] = starts[a] || []; + starts[a].push(tag.start); + let b = terms[terms.length - 1].id; + ends[b] = ends[b] || []; + ends[b].push(tag.end); + }); + }); + return { starts, ends } + }; + + const html = function (obj) { + // index ids to highlight + let { starts, ends } = getIndex(this, obj); + // create the text output + let out = ''; + this.docs.forEach(terms => { + for (let i = 0; i < terms.length; i += 1) { + let t = terms[i]; + // do a span tag + if (starts.hasOwnProperty(t.id)) { + out += starts[t.id].join(''); + } + out += t.pre || '' + t.text || ''; + if (ends.hasOwnProperty(t.id)) { + out += ends[t.id].join(''); + } + out += t.post || ''; + } + }); + return out + }; + var html$1 = { html }; + + const trimEnd = /[,:;)\]*.?~!\u0022\uFF02\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4—-]+$/; + const trimStart = + /^[(['"*~\uFF02\u201C\u2018\u201F\u201B\u201E\u2E42\u201A\u00AB\u2039\u2035\u2036\u2037\u301D\u0060\u301F]+/; + + const punctToKill = /[,:;)('"\u201D\]]/; + const isHyphen = /^[-–—]$/; + const hasSpace = / /; + + const textFromTerms = function (terms, opts, keepSpace = true) { + let txt = ''; + terms.forEach((t) => { + let pre = t.pre || ''; + let post = t.post || ''; + if (opts.punctuation === 'some') { + pre = pre.replace(trimStart, ''); + // replace a hyphen with a space + if (isHyphen.test(post)) { + post = ' '; + } + post = post.replace(punctToKill, ''); + // cleanup exclamations + post = post.replace(/\?!+/, '?'); + post = post.replace(/!+/, '!'); + post = post.replace(/\?+/, '?'); + // kill elipses + post = post.replace(/\.{2,}/, ''); + // kill abbreviation periods + if (t.tags.has('Abbreviation')) { + post = post.replace(/\./, ''); + } + } + if (opts.whitespace === 'some') { + pre = pre.replace(/\s/, ''); //remove pre-whitespace + post = post.replace(/\s+/, ' '); //replace post-whitespace with a space + } + if (!opts.keepPunct) { + pre = pre.replace(trimStart, ''); + if (post === '-') { + post = ' '; + } else { + post = post.replace(trimEnd, ''); + } + } + // grab the correct word format + let word = t[opts.form || 'text'] || t.normal || ''; + if (opts.form === 'implicit') { + word = t.implicit || t.text; + } + if (opts.form === 'root' && t.implicit) { + word = t.root || t.implicit || t.normal; + } + // add an implicit space, for contractions + if ((opts.form === 'machine' || opts.form === 'implicit' || opts.form === 'root') && t.implicit) { + if (!post || !hasSpace.test(post)) { + post += ' '; + } + } + txt += pre + word + post; + }); + if (keepSpace === false) { + txt = txt.trim(); + } + if (opts.lowerCase === true) { + txt = txt.toLowerCase(); + } + return txt + }; + + const textFromDoc = function (docs, opts) { + let text = ''; + if (!docs || !docs[0] || !docs[0][0]) { + return text + } + for (let i = 0; i < docs.length; i += 1) { + // middle + text += textFromTerms(docs[i], opts, true); + } + if (!opts.keepSpace) { + text = text.trim(); + } + if (opts.keepPunct === false) { + // don't remove ':)' etc + if (!docs[0][0].tags.has('Emoticon')) { + text = text.replace(trimStart, ''); + } + let last = docs[docs.length - 1]; + if (!last[last.length - 1].tags.has('Emoticon')) { + text = text.replace(trimEnd, ''); + } + } + if (opts.cleanWhitespace === true) { + text = text.trim(); + } + return text + }; + + const fmts = { + 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', + } + }; + fmts.clean = fmts.normal; + fmts.reduced = fmts.root; + var fmts$1 = fmts; + + const defaults$2 = { + text: true, + terms: true, + }; + + let opts = { case: 'none', unicode: 'some', form: 'machine', punctuation: 'some' }; + + const merge = function (a, b) { + return Object.assign({}, a, b) + }; + + const fns$2 = { + text: (terms) => { + return 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), + + offset: (terms) => { + let len = fns$2.text(terms).length; + return { + index: terms[0].offset.index, + start: terms[0].offset.start, + length: len, + } + }, + terms: (terms) => { + return terms.map(t => { + let term = Object.assign({}, t); + term.tags = Array.from(t.tags); + return term + }) + }, + confidence: (_terms, view, i) => view.eq(i).confidence(), + syllables: (_terms, view, i) => view.eq(i).syllables(), + sentence: (_terms, view, i) => view.eq(i).fullSentence().text(), + dirty: (terms) => terms.some(t => t.dirty === true) + }; + fns$2.sentences = fns$2.sentence; + fns$2.clean = fns$2.normal; + fns$2.reduced = fns$2.root; + + const toJSON$4 = function (view, option) { + option = option || {}; + if (typeof option === 'string') { + option = {}; + } + option = Object.assign({}, defaults$2, option); + // run any necessary upfront steps + if (option.offset) { + view.compute('offset'); + } + return view.docs.map((terms, i) => { + let res = {}; + Object.keys(option).forEach(k => { + if (option[k] && fns$2[k]) { + res[k] = fns$2[k](terms, view, i); + } + }); + return res + }) + }; + + + const methods$a = { + /** return data */ + json: function (n) { + let res = toJSON$4(this, n); + if (typeof n === 'number') { + return res[n] + } + return res + }, + }; + methods$a.data = methods$a.json; + var json = methods$a; + + /* eslint-disable no-console */ + const logClientSide = function (view) { + console.log('%c -=-=- ', 'background-color:#6699cc;'); + view.forEach(m => { + console.groupCollapsed(m.text()); + let terms = m.docs[0]; + let out = terms.map(t => { + let text = t.text || '-'; + if (t.implicit) { + text = '[' + t.implicit + ']'; + } + let tags = '[' + Array.from(t.tags).join(', ') + ']'; + return { text, tags } + }); + console.table(out, ['text', 'tags']); + console.groupEnd(); + }); + }; + var logClientSide$1 = logClientSide; + + // https://stackoverflow.com/questions/9781218/how-to-change-node-jss-console-font-color + const reset = '\x1b[0m'; + + //cheaper than requiring chalk + const cli = { + green: str => '\x1b[32m' + str + reset, + red: str => '\x1b[31m' + str + reset, + blue: str => '\x1b[34m' + str + reset, + magenta: str => '\x1b[35m' + str + reset, + cyan: str => '\x1b[36m' + str + reset, + yellow: str => '\x1b[33m' + str + reset, + black: str => '\x1b[30m' + str + reset, + dim: str => '\x1b[2m' + str + reset, + i: str => '\x1b[3m' + str + reset, + }; + var cli$1 = cli; + + /* eslint-disable no-console */ + + const tagString = function (tags, model) { + if (model.one.tagSet) { + tags = tags.map(tag => { + if (!model.one.tagSet.hasOwnProperty(tag)) { + return tag + } + const c = model.one.tagSet[tag].color || 'blue'; + return cli$1[c](tag) + }); + } + return tags.join(', ') + }; + + const showTags = function (view) { + let { docs, model } = view; + if (docs.length === 0) { + console.log(cli$1.blue('\n ──────')); + } + docs.forEach(terms => { + console.log(cli$1.blue('\n ┌─────────')); + terms.forEach(t => { + let tags = [...(t.tags || [])]; + let text = t.text || '-'; + if (t.sense) { + text = '{' + t.sense + '}'; + } + if (t.implicit) { + text = '[' + t.implicit + ']'; + } + text = cli$1.yellow(text); + let word = "'" + text + "'"; + word = word.padEnd(18); + let str = cli$1.blue(' │ ') + cli$1.i(word) + ' - ' + tagString(tags, model); + console.log(str); + }); + }); + }; + var showTags$1 = showTags; + + /* eslint-disable no-console */ + + const showChunks = function (view) { + let { docs } = view; + console.log(''); + docs.forEach(terms => { + let out = []; + terms.forEach(term => { + if (term.chunk === 'Noun') { + out.push(cli$1.blue(term.implicit || term.normal)); + } else if (term.chunk === 'Verb') { + out.push(cli$1.green(term.implicit || term.normal)); + } else if (term.chunk === 'Adjective') { + out.push(cli$1.yellow(term.implicit || term.normal)); + } else if (term.chunk === 'Pivot') { + out.push(cli$1.red(term.implicit || term.normal)); + } else { + out.push(term.implicit || term.normal); + } + }); + console.log(out.join(' '), '\n'); + }); + }; + var showChunks$1 = showChunks; + + const split$1 = (txt, offset, index) => { + let buff = index * 9; //there are 9 new chars addded to each highlight + let start = offset.start + buff; + let end = start + offset.length; + let pre = txt.substring(0, start); + let mid = txt.substring(start, end); + let post = txt.substring(end, txt.length); + return [pre, mid, post] + }; + + const spliceIn = function (txt, offset, index) { + let parts = split$1(txt, offset, index); + return `${parts[0]}${cli$1.blue(parts[1])}${parts[2]}` + }; + + const showHighlight = function (doc) { + if (!doc.found) { + return + } + let bySentence = {}; + doc.fullPointer.forEach(ptr => { + bySentence[ptr[0]] = bySentence[ptr[0]] || []; + bySentence[ptr[0]].push(ptr); + }); + Object.keys(bySentence).forEach(k => { + let full = doc.update([[Number(k)]]); + let txt = full.text(); + let matches = doc.update(bySentence[k]); + let json = matches.json({ offset: true }); + json.forEach((obj, i) => { + txt = spliceIn(txt, obj.offset, i); + }); + console.log(txt); // eslint-disable-line + }); + }; + var showHighlight$1 = showHighlight; + + /* eslint-disable no-console */ + + function isClientSide() { + return typeof window !== 'undefined' && window.document + } + //output some helpful stuff to the console + const debug = function (opts = {}) { + let view = this; + if (typeof opts === 'string') { + let tmp = {}; + tmp[opts] = true; //allow string input + opts = tmp; + } + if (isClientSide()) { + logClientSide$1(view); + return view + } + if (opts.tags !== false) { + showTags$1(view); + console.log('\n'); + } + // output chunk-view, too + if (opts.chunks === true) { + showChunks$1(view); + console.log('\n'); + } + // highlight match in sentence + if (opts.highlight === true) { + showHighlight$1(view); + console.log('\n'); + } + return view + }; + var debug$1 = debug; + + const toText$3 = function (term) { + let pre = term.pre || ''; + let post = term.post || ''; + return pre + term.text + post + }; + + const findStarts = function (doc, obj) { + let starts = {}; + Object.keys(obj).forEach(reg => { + let m = doc.match(reg); + m.fullPointer.forEach(a => { + starts[a[3]] = { fn: obj[reg], end: a[2] }; + }); + }); + return starts + }; + + const wrap = function (doc, obj) { + // index ids to highlight + let starts = findStarts(doc, obj); + let text = ''; + doc.docs.forEach((terms, n) => { + for (let i = 0; i < terms.length; i += 1) { + let t = terms[i]; + // do a span tag + if (starts.hasOwnProperty(t.id)) { + let { fn, end } = starts[t.id]; + let m = doc.update([[n, i, end]]); + text += fn(m); + i = end - 1; + text += terms[i].post || ''; + } else { + text += toText$3(t); + } + } + }); + return text + }; + var wrap$1 = wrap; + + const isObject$2 = val => { + return Object.prototype.toString.call(val) === '[object Object]' + }; + + // sort by frequency + const topk = function (arr) { + let obj = {}; + arr.forEach(a => { + obj[a] = obj[a] || 0; + obj[a] += 1; + }); + let res = Object.keys(obj).map(k => { + return { normal: k, count: obj[k] } + }); + return res.sort((a, b) => (a.count > b.count ? -1 : 0)) + }; + + /** some named output formats */ + const out = function (method) { + // support custom outputs + if (isObject$2(method)) { + return wrap$1(this, method) + } + // text out formats + if (method === 'text') { + return this.text() + } + if (method === 'normal') { + return this.text('normal') + } + if (method === 'machine' || method === 'reduced') { + return this.text('machine') + } + + // json data formats + if (method === 'json') { + return this.json() + } + if (method === 'offset' || method === 'offsets') { + this.compute('offset'); + return this.json({ offset: true }) + } + if (method === 'array') { + let arr = this.docs.map(terms => { + return terms + .reduce((str, t) => { + return str + t.pre + t.text + t.post + }, '') + .trim() + }); + return arr.filter(str => str) + } + // return terms sorted by frequency + if (method === 'freq' || method === 'frequency' || method === 'topk') { + return topk(this.json({ normal: true }).map(o => o.normal)) + } + + // some handy ad-hoc outputs + if (method === 'terms') { + let list = []; + this.docs.forEach(s => { + let terms = s.terms.map(t => t.text); + terms = terms.filter(t => t); + list = list.concat(terms); + }); + return list + } + if (method === 'tags') { + return this.docs.map(terms => { + return terms.reduce((h, t) => { + h[t.implicit || t.normal] = Array.from(t.tags); + return h + }, {}) + }) + } + if (method === 'debug') { + return this.debug() //allow + } + return this.text() + }; + + const methods$9 = { + /** */ + debug: debug$1, + /** */ + out: out, + }; + + var out$1 = methods$9; + + const isObject$1 = val => { + return Object.prototype.toString.call(val) === '[object Object]' + }; + + var text = { + /** */ + text: function (fmt) { + let opts = { + keepSpace: true, + keepPunct: true, + }; + if (fmt && typeof fmt === 'string' && fmts$1.hasOwnProperty(fmt)) { + opts = Object.assign({}, fmts$1[fmt]); + } else if (fmt && isObject$1(fmt)) { + opts = Object.assign({}, fmt, opts);//todo: fixme + } + if (this.pointer) { + opts.keepSpace = false; + let ptr = this.pointer[0]; + if (ptr && ptr[1]) { + opts.keepPunct = false; + } else { + opts.keepPunct = true; + } + } else { + opts.keepPunct = true; + } + return textFromDoc(this.docs, opts) + }, + }; + + const methods$8 = Object.assign({}, out$1, text, json, html$1); + + const addAPI$1 = function (View) { + Object.assign(View.prototype, methods$8); + }; + var api$t = addAPI$1; + + var output = { + api: api$t, + }; + + // do the pointers intersect? + const doesOverlap = function (a, b) { + if (a[0] !== b[0]) { + return false + } + let [, startA, endA] = a; + let [, startB, endB] = b; + // [a,a,a,-,-,-,] + // [-,-,b,b,b,-,] + if (startA <= startB && endA > startB) { + return true + } + // [-,-,-,a,a,-,] + // [-,-,b,b,b,-,] + if (startB <= startA && endB > startA) { + return true + } + return false + }; + + // get widest min/max + const getExtent = function (ptrs) { + let min = ptrs[0][1]; + let max = ptrs[0][2]; + ptrs.forEach(ptr => { + if (ptr[1] < min) { + min = ptr[1]; + } + if (ptr[2] > max) { + max = ptr[2]; + } + }); + return [ptrs[0][0], min, max] + }; + + // collect pointers by sentence number + const indexN = function (ptrs) { + let byN = {}; + ptrs.forEach(ref => { + byN[ref[0]] = byN[ref[0]] || []; + byN[ref[0]].push(ref); + }); + return byN + }; + + // remove exact duplicates + const uniquePtrs = function (arr) { + let obj = {}; + for (let i = 0; i < arr.length; i += 1) { + obj[arr[i].join(',')] = arr[i]; + } + return Object.values(obj) + }; + + // a before b + // console.log(doesOverlap([0, 0, 4], [0, 2, 5])) + // // b before a + // console.log(doesOverlap([0, 3, 4], [0, 1, 5])) + // // disjoint + // console.log(doesOverlap([0, 0, 3], [0, 4, 5])) + // neighbours + // console.log(doesOverlap([0, 1, 3], [0, 3, 5])) + // console.log(doesOverlap([0, 3, 5], [0, 1, 3])) + + // console.log( + // getExtent([ + // [0, 3, 4], + // [0, 4, 5], + // [0, 1, 2], + // ]) + // ) + + // split a pointer, by match pointer + const pivotBy = function (full, m) { + let [n, start] = full; + let mStart = m[1]; + let mEnd = m[2]; + let res = {}; + // is there space before the match? + if (start < mStart) { + let end = mStart < full[2] ? mStart : full[2]; // find closest end-point + res.before = [n, start, end]; //before segment + } + res.match = m; + // is there space after the match? + if (full[2] > mEnd) { + res.after = [n, mEnd, full[2]]; //after segment + } + return res + }; + + const doesMatch = function (full, m) { + return full[1] <= m[1] && m[2] <= full[2] + }; + + const splitAll = function (full, m) { + let byN = indexN(m); + let res = []; + full.forEach(ptr => { + let [n] = ptr; + let matches = byN[n] || []; + matches = matches.filter(p => doesMatch(ptr, p)); + if (matches.length === 0) { + res.push({ passthrough: ptr }); + return + } + // ensure matches are in-order + matches = matches.sort((a, b) => a[1] - b[1]); + // start splitting our left-to-right + let carry = ptr; + matches.forEach((p, i) => { + let found = pivotBy(carry, p); + // last one + if (!matches[i + 1]) { + res.push(found); + } else { + res.push({ before: found.before, match: found.match }); + if (found.after) { + carry = found.after; + } + } + }); + }); + return res + }; + + var splitAll$1 = splitAll; + + const max$1 = 4; + + // sweep-around looking for our start term uuid + const blindSweep = function (id, doc, n) { + for (let i = 0; i < max$1; i += 1) { + // look up a sentence + if (doc[n - i]) { + let index = doc[n - i].findIndex(term => term.id === id); + if (index !== -1) { + return [n - i, index] + } + } + // look down a sentence + if (doc[n + i]) { + let index = doc[n + i].findIndex(term => term.id === id); + if (index !== -1) { + return [n + i, index] + } + } + } + return null + }; + + const repairEnding = function (ptr, document) { + let [n, start, , , endId] = ptr; + let terms = document[n]; + // look for end-id + let newEnd = terms.findIndex(t => t.id === endId); + if (newEnd === -1) { + // if end-term wasn't found, so go all the way to the end + ptr[2] = document[n].length; + ptr[4] = terms.length ? terms[terms.length - 1].id : null; + } else { + ptr[2] = newEnd; // repair ending pointer + } + return document[n].slice(start, ptr[2] + 1) + }; + + /** return a subset of the document, from a pointer */ + const getDoc$1 = function (ptrs, document) { + let doc = []; + ptrs.forEach((ptr, i) => { + if (!ptr) { + return + } + let [n, start, end, id, endId] = ptr; //parsePointer(ptr) + let terms = document[n] || []; + if (start === undefined) { + start = 0; + } + if (end === undefined) { + end = terms.length; + } + if (id && (!terms[start] || terms[start].id !== id)) { + // console.log(' repairing pointer...') + let wild = blindSweep(id, document, n); + if (wild !== null) { + let len = end - start; + terms = document[wild[0]].slice(wild[1], wild[1] + len); + // actually change the pointer + let startId = terms[0] ? terms[0].id : null; + ptrs[i] = [wild[0], wild[1], wild[1] + len, startId]; + } + } else { + terms = terms.slice(start, end); + } + if (terms.length === 0) { + return + } + if (start === end) { + return + } + // test end-id, if it exists + if (endId && terms[terms.length - 1].id !== endId) { + terms = repairEnding(ptr, document); + } + // otherwise, looks good! + doc.push(terms); + }); + doc = doc.filter(a => a.length > 0); + return doc + }; + var getDoc$2 = getDoc$1; + + // flat list of terms from nested document + const termList = function (docs) { + let arr = []; + for (let i = 0; i < docs.length; i += 1) { + for (let t = 0; t < docs[i].length; t += 1) { + arr.push(docs[i][t]); + } + } + return arr + }; + + var methods$7 = { + one: { + termList, + getDoc: getDoc$2, + pointer: { + indexN, + splitAll: splitAll$1, + } + }, + }; + + // a union is a + b, minus duplicates + const getUnion = function (a, b) { + let both = a.concat(b); + let byN = indexN(both); + let res = []; + both.forEach(ptr => { + let [n] = ptr; + if (byN[n].length === 1) { + // we're alone on this sentence, so we're good + res.push(ptr); + return + } + // there may be overlaps + let hmm = byN[n].filter(m => doesOverlap(ptr, m)); + hmm.push(ptr); + let range = getExtent(hmm); + res.push(range); + }); + res = uniquePtrs(res); + return res + }; + var getUnion$1 = getUnion; + + // two disjoint + // console.log(getUnion([[1, 3, 4]], [[0, 1, 2]])) + // two disjoint + // console.log(getUnion([[0, 3, 4]], [[0, 1, 2]])) + // overlap-plus + // console.log(getUnion([[0, 1, 4]], [[0, 2, 6]])) + // overlap + // console.log(getUnion([[0, 1, 4]], [[0, 2, 3]])) + // neighbours + // console.log(getUnion([[0, 1, 3]], [[0, 3, 5]])) + + const subtract = function (refs, not) { + let res = []; + let found = splitAll$1(refs, not); + found.forEach(o => { + if (o.passthrough) { + res.push(o.passthrough); + } + if (o.before) { + res.push(o.before); + } + if (o.after) { + res.push(o.after); + } + }); + return res + }; + var getDifference = subtract; + + // console.log(subtract([[0, 0, 2]], [[0, 0, 1]])) + // console.log(subtract([[0, 0, 2]], [[0, 1, 2]])) + + // [a,a,a,a,-,-,] + // [-,-,b,b,b,-,] + // [-,-,x,x,-,-,] + const intersection = function (a, b) { + // find the latest-start + let start = a[1] < b[1] ? b[1] : a[1]; + // find the earliest-end + let end = a[2] > b[2] ? b[2] : a[2]; + // does it form a valid pointer? + if (start < end) { + return [a[0], start, end] + } + return null + }; + + const getIntersection = function (a, b) { + let byN = indexN(b); + let res = []; + a.forEach(ptr => { + let hmm = byN[ptr[0]] || []; + hmm = hmm.filter(p => doesOverlap(ptr, p)); + // no sentence-pairs, so no intersection + if (hmm.length === 0) { + return + } + hmm.forEach(h => { + let overlap = intersection(ptr, h); + if (overlap) { + res.push(overlap); + } + }); + }); + return res + }; + var getIntersection$1 = getIntersection; + + // console.log(getIntersection([[0, 1, 3]], [[0, 2, 4]])) + + const isArray$3 = function (arr) { + return Object.prototype.toString.call(arr) === '[object Array]' + }; + + const getDoc = (m, view) => { + if (typeof m === 'string' || isArray$3(m)) { + return view.match(m) + } + if (!m) { + return view.none() + } + // support pre-parsed reg object + return m + }; + + // 'harden' our json pointers, again + const addIds = function (ptrs, docs) { + return ptrs.map(ptr => { + let [n, start] = ptr; + if (docs[n] && docs[n][start]) { + ptr[3] = docs[n][start].id; + } + return ptr + }) + }; + + const methods$6 = {}; + + // all parts, minus duplicates + methods$6.union = function (m) { + m = getDoc(m, this); + let ptrs = getUnion$1(this.fullPointer, m.fullPointer); + ptrs = addIds(ptrs, this.document); + return this.toView(ptrs) + }; + methods$6.and = methods$6.union; + + // only parts they both have + methods$6.intersection = function (m) { + m = getDoc(m, this); + let ptrs = getIntersection$1(this.fullPointer, m.fullPointer); + ptrs = addIds(ptrs, this.document); + return this.toView(ptrs) + }; + + // only parts of a that b does not have + methods$6.not = function (m) { + m = getDoc(m, this); + let ptrs = getDifference(this.fullPointer, m.fullPointer); + ptrs = addIds(ptrs, this.document); + return this.toView(ptrs) + }; + methods$6.difference = methods$6.not; + + // get opposite of a + methods$6.complement = function () { + let doc = this.all(); + let ptrs = getDifference(doc.fullPointer, this.fullPointer); + ptrs = addIds(ptrs, this.document); + return this.toView(ptrs) + }; + + // remove overlaps + methods$6.settle = function () { + let ptrs = this.fullPointer; + ptrs.forEach(ptr => { + ptrs = getUnion$1(ptrs, [ptr]); + }); + ptrs = addIds(ptrs, this.document); + return this.update(ptrs) + }; + + + const addAPI = function (View) { + // add set/intersection/union + Object.assign(View.prototype, methods$6); + }; + var api$s = addAPI; + + var pointers = { + methods: methods$7, + api: api$s, + }; + + var lib$2 = { + // compile a list of matches into a match-net + buildNet: function (matches) { + const methods = this.methods(); + let net = methods.one.buildNet(matches, this.world()); + net.isNet = true; + return net + } + }; + + const api$q = function (View) { + + /** speedy match a sequence of matches */ + View.prototype.sweep = function (net, opts = {}) { + const { world, docs } = this; + const { methods } = world; + let found = methods.one.bulkMatch(docs, net, this.methods, opts); + + // apply any changes + if (opts.tagger !== false) { + methods.one.bulkTagger(found, docs, this.world); + } + // fix the pointers + // collect all found results into a View + found = found.map(o => { + let ptr = o.pointer; + let term = docs[ptr[0]][ptr[1]]; + let len = ptr[2] - ptr[1]; + if (term.index) { + o.pointer = [ + term.index[0], + term.index[1], + ptr[1] + len + ]; + } + return o + }); + let ptrs = found.map(o => o.pointer); + // cleanup results a bit + found = found.map(obj => { + obj.view = this.update([obj.pointer]); + delete obj.regs; + delete obj.needs; + delete obj.pointer; + delete obj._expanded; + return obj + }); + return { + view: this.update(ptrs), + found + } + }; + + }; + var api$r = api$q; + + // extract the clear needs for an individual match token + const getTokenNeeds = function (reg) { + // negatives can't be cached + if (reg.optional === true || reg.negative === true) { + return null + } + if (reg.tag) { + return '#' + reg.tag + } + if (reg.word) { + return reg.word + } + if (reg.switch) { + return `%${reg.switch}%` + } + return null + }; + + const getNeeds = function (regs) { + let needs = []; + regs.forEach(reg => { + 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 = []; + regs.forEach(reg => { + if (reg.operator === 'or' && !reg.optional) { + // 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) { + wants.push(n); + } + }); + }); + } + } + }); + return wants + }; + + const parse$7 = function (matches, world) { + const parseMatch = world.methods.one.parseMatch; + matches.forEach(obj => { + 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); + obj.wants = getWants(obj.regs); + // get rid of tiny sentences + obj.minWords = obj.regs.filter(o => !o.optional).length; + }); + return matches + }; + + var parse$8 = parse$7; + + // do some indexing on the list of matches + const compile = function (matches, world) { + // turn match-syntax into json + matches = parse$8(matches, world); + + // collect by wants and needs + let hooks = {}; + matches.forEach(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 + }); + }); + + // keep all un-cacheable matches (those with no needs) + let always = matches.filter(o => o.needs.length === 0 && o.wants.length === 0); + return { + hooks, + always + } + }; + + var buildNet = compile; + + // for each cached-sentence, find a list of possible matches + 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]); + } + }); + // remove duplicates + let already = {}; + maybe = maybe.filter(m => { + if (already[m.match]) { + return false + } + already[m.match] = true; + return true + }); + return maybe + }) + }; + + var getHooks$1 = getHooks; + + // filter-down list of maybe-matches + const localTrim = function (maybeList, docCache) { + return maybeList.map((list, n) => { + let haves = docCache[n]; + // ensure all stated-needs of the match are met + list = list.filter(obj => { + return obj.needs.every(need => haves.has(need)) + }); + // ensure nothing matches in our 'ifNo' property + list = list.filter(obj => { + if (obj.ifNo !== undefined && obj.ifNo.some(no => docCache[n].has(no)) === true) { + return false + } + return true + }); + // 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 + return obj.wants.find(str => haves.has(str)) + }); + return list + }) + }; + var trimDown = localTrim; + + // finally, + // actually run these match-statements on the terms + const runMatch = function (maybeList, document, methods, opts) { + let results = []; + for (let n = 0; n < maybeList.length; n += 1) { + for (let i = 0; i < maybeList[n].length; i += 1) { + let m = maybeList[n][i]; + // ok, actually do the work. + let res = methods.one.match([document[n]], m); + // found something. + if (res.ptrs.length > 0) { + // let index=document[n][0].index + res.ptrs.forEach(ptr => { + ptr[0] = n; // fix the sentence pointer + let todo = Object.assign({}, m, { pointer: ptr }); + if (m.unTag !== undefined) { + todo.unTag = m.unTag; + } + results.push(todo); + }); + //ok cool, can we stop early? + if (opts.matchOne === true) { + return [results[0]] + } + } + } + } + return results + }; + var runMatch$1 = runMatch; + + const tooSmall = function (maybeList, document) { + return maybeList.map((arr, i) => { + let termCount = document[i].length; + arr = arr.filter(o => { + return termCount >= o.minWords + }); + return arr + }) + }; + + const sweep$1 = function (document, net, methods, opts = {}) { + // find suitable matches to attempt, on each sentence + let docCache = methods.one.cacheDoc(document); + // collect possible matches for this document + if (!net.hooks) { + console.log(net); + } + 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 + if (net.always.length > 0) { + maybeList = maybeList.map(arr => arr.concat(net.always)); + } + // if we don't have enough words + maybeList = tooSmall(maybeList, document); + + // 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 }) + return results + }; + var bulkMatch = sweep$1; + + // is this tag consistent with the tags they already have? + const canBe = function (terms, tag, model) { + let tagSet = model.one.tagSet; + if (!tagSet.hasOwnProperty(tag)) { + return true + } + let not = tagSet[tag].not || []; + for (let i = 0; i < terms.length; i += 1) { + let term = terms[i]; + for (let k = 0; k < not.length; k += 1) { + if (term.tags.has(not[k]) === true) { + return false //found a tag conflict - bail! + } + } + } + return true + }; + var canBe$1 = canBe; + + const tagger = function (list, document, world) { + const { model, methods } = world; + const { getDoc, setTag, unTag } = methods.one; + if (list.length === 0) { + return list + } + // some logging for debugging + const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; + if (env.DEBUG_TAGS) { + console.log(`\n\n \x1b[32m→ ${list.length} post-tagger:\x1b[0m`); //eslint-disable-line + } + return list.map(todo => { + if (!todo.tag && !todo.chunk) { + return + } + let reason = todo.reason || todo.match; + let terms = getDoc([todo.pointer], document)[0]; + // handle 'safe' tag + if (todo.safe === true) { + // check for conflicting tags + if (canBe$1(terms, todo.tag, model) === false) { + return + } + // dont tag half of a hyphenated word + if (terms[terms.length - 1].post === '-') { + return + } + } + if (todo.tag !== undefined) { + 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) { + setTag(terms, 'Plural', world, todo.safe, 'quick-plural'); + } + } + } + if (todo.unTag !== undefined) { + unTag(terms, todo.unTag, world, todo.safe, reason); + } + // allow setting chunks, too + if (todo.chunk) { + terms.forEach(t => t.chunk = todo.chunk); + } + }) + }; + var bulkTagger = tagger; + + var methods$5 = { + buildNet, + bulkMatch, + bulkTagger + }; + + var sweep = { + lib: lib$2, + api: api$r, + methods: { + one: methods$5, + } + }; + + const isMulti = / /; + + const addChunk = function (term, tag) { + if (tag === 'Noun') { + term.chunk = tag; + } + if (tag === 'Verb') { + term.chunk = tag; + } + }; + + const tagTerm = function (term, tag, tagSet, isSafe) { + // does it already have this tag? + if (term.tags.has(tag) === true) { + return null + } + // allow this shorthand in multiple-tag strings + if (tag === '.') { + return null + } + // for known tags, do logical dependencies first + let known = tagSet[tag]; + if (known) { + // first, we remove any conflicting tags + if (known.not && known.not.length > 0) { + for (let o = 0; o < known.not.length; o += 1) { + // if we're in tagSafe, skip this term. + if (isSafe === true && term.tags.has(known.not[o])) { + return null + } + term.tags.delete(known.not[o]); + } + } + // add parent tags + if (known.parents && known.parents.length > 0) { + for (let o = 0; o < known.parents.length; o += 1) { + term.tags.add(known.parents[o]); + addChunk(term, known.parents[o]); + } + } + } + // finally, add our tag + term.tags.add(tag); + // now it's dirty + term.dirty = true; + // add a chunk too, if it's easy + addChunk(term, tag); + return true + }; + + // support '#Noun . #Adjective' syntax + const multiTag = function (terms, tagString, tagSet, isSafe) { + let tags = tagString.split(isMulti); + terms.forEach((term, i) => { + let tag = tags[i]; + if (tag) { + tag = tag.replace(/^#/, ''); + tagTerm(term, tag, tagSet, isSafe); + } + }); + }; + + const isArray$2 = function (arr) { + return Object.prototype.toString.call(arr) === '[object Array]' + }; + + // verbose-mode tagger debuging + 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 = 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(22)} ${i(reason)}`); // eslint-disable-line + }; + + // add a tag to all these terms + const setTag$1 = function (terms, tag, world = {}, isSafe, reason) { + const tagSet = world.model.one.tagSet || {}; + if (!tag) { + return + } + // some logging for debugging + const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; + if (env && env.DEBUG_TAGS) { + log$1(terms, tag, reason); + } + if (isArray$2(tag) === true) { + tag.forEach(tg => setTag$1(terms, tg, world, isSafe)); + return + } + tag = tag.trim(); + // support '#Noun . #Adjective' syntax + if (isMulti.test(tag)) { + multiTag(terms, tag, tagSet, isSafe); + return + } + tag = tag.replace(/^#/, ''); + // let set = false + for (let i = 0; i < terms.length; i += 1) { + tagTerm(terms[i], tag, tagSet, isSafe); + } + }; + var setTag$2 = setTag$1; + + // remove this tag, and its children, from these terms + const unTag = function (terms, tag, tagSet) { + tag = tag.trim().replace(/^#/, ''); + for (let i = 0; i < terms.length; i += 1) { + let term = terms[i]; + // support clearing all tags, with '*' + if (tag === '*') { + term.tags.clear(); + continue + } + // for known tags, do logical dependencies first + let known = tagSet[tag]; + // removing #Verb should also remove #PastTense + if (known && known.children.length > 0) { + for (let o = 0; o < known.children.length; o += 1) { + term.tags.delete(known.children[o]); + } + } + term.tags.delete(tag); + } + }; + var unTag$1 = unTag; + + const e=function(e){return e.children=e.children||[],e._cache=e._cache||{},e.props=e.props||{},e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],e},t=/^ *(#|\/\/)/,n$1=function(t){let n=t.trim().split(/->/),r=[];n.forEach((t=>{r=r.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let n=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return n=n.map((e=>e.trim())).filter((e=>e)),n=n.map((t=>e({id:t}))),n}return [e({id:t})]}(t));})),r=r.filter((e=>e));let i=r[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},i=e=>"[object Array]"===Object.prototype.toString.call(e),c=e=>(e=e||"").trim(),s$1=function(c=[]){return "string"==typeof c?function(r){let i=r.split(/\r?\n/),c=[];i.forEach((e=>{if(!e.trim()||t.test(e))return;let r=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);c.push({indent:r,node:n$1(e)});}));let s=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{n[e.id]=e;}));let r=e({});return t.forEach((t=>{if((t=e(t)).parent)if(n.hasOwnProperty(t.parent)){let e=n[t.parent];delete t.parent,e.children.push(t);}else console.warn(`[Grad] - missing node '${t.parent}'`);else r.children.push(t);})),r}(c):(r(s=c).forEach(e),s);var s;},h=e=>""+e+"",o=e=>""+e+"",l=function(e,t){let n="-> ";t&&(n=o("→ "));let i="";return r(e).forEach(((e,r)=>{let c=e.id||"";if(t&&(c=h(c)),0===r&&!e.id)return;let s=e._cache.parents.length;i+=" ".repeat(s)+n+c+"\n";})),i},a=function(e){let t=r(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},p$1={text:l,txt:l,array:a,flat:a},d=function(e,t){return "nested"===t||"json"===t?e:"debug"===t?(console.log(l(e,!0)),null):p$1.hasOwnProperty(t)?p$1[t](e):e},u=e=>{r(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]));}));},f$1=(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 i(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n]);}})),e),j=/\//;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(t){if(t=c(t),!j.test(t)){let e=this.json.children.find((e=>e.id===t));return new g$1(e)}let n=((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,t)||e({});return new g$1(n)}add(t,n={}){if(i(t))return t.forEach((e=>this.add(c(e),n))),this;t=c(t);let r=e({id:t,props:n});return this.json.children.push(r),new g$1(r)}remove(e){return e=c(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return r(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return (e=>{let t=r(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 r(this.json)}fillDown(){var e;return e=this.json,r(e,((e,t)=>{t.props=f$1(t.props,e.props);})),this}depth(){u(this.json);let e=r(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 u(this.json),d(this.json,e)}debug(){return u(this.json),d(this.json,"debug"),this}}const _=function(e){let t=s$1(e);return new g$1(t)};_.prototype.plugin=function(e){e(this);}; + + // i just made these up + const colors = { + Noun: 'blue', + Verb: 'green', + Negative: 'green', + Date: 'red', + Value: 'red', + Adjective: 'magenta', + Preposition: 'cyan', + Conjunction: 'cyan', + Determiner: 'cyan', + Adverb: 'cyan', + }; + + var colors$1 = colors; + + const getColor = function (node) { + if (colors$1.hasOwnProperty(node.id)) { + return colors$1[node.id] + } + if (colors$1.hasOwnProperty(node.is)) { + return colors$1[node.is] + } + let found = node._cache.parents.find(c => colors$1[c]); + return colors$1[found] + }; + + // convert tags to our final format + const fmt = function (nodes) { + const res = {}; + nodes.forEach(node => { + let { not, also, is, novel } = node.props; + let parents = node._cache.parents; + if (also) { + parents = parents.concat(also); + } + res[node.id] = { + is, + not, + novel, + also, + parents, + children: node._cache.children, + color: getColor(node) + }; + }); + // lastly, add all children of all nots + Object.keys(res).forEach(k => { + let nots = new Set(res[k].not); + res[k].not.forEach(not => { + if (res[not]) { + res[not].children.forEach(tag => nots.add(tag)); + } + }); + res[k].not = Array.from(nots); + }); + return res + }; + + var fmt$1 = fmt; + + const toArr = function (input) { + if (!input) { + return [] + } + if (typeof input === 'string') { + return [input] + } + return input + }; + + const addImplied = function (tags, already) { + Object.keys(tags).forEach(k => { + // support deprecated fmts + if (tags[k].isA) { + tags[k].is = tags[k].isA; + } + if (tags[k].notA) { + tags[k].not = tags[k].notA; + } + // add any implicit 'is' tags + if (tags[k].is && typeof tags[k].is === 'string') { + if (!already.hasOwnProperty(tags[k].is) && !tags.hasOwnProperty(tags[k].is)) { + tags[tags[k].is] = {}; + } + } + // add any implicit 'not' tags + if (tags[k].not && typeof tags[k].not === 'string' && !tags.hasOwnProperty(tags[k].not)) { + if (!already.hasOwnProperty(tags[k].not) && !tags.hasOwnProperty(tags[k].not)) { + tags[tags[k].not] = {}; + } + } + }); + return tags + }; + + + const validate = function (tags, already) { + + tags = addImplied(tags, already); + + // property validation + Object.keys(tags).forEach(k => { + tags[k].children = toArr(tags[k].children); + tags[k].not = toArr(tags[k].not); + }); + // not links are bi-directional + // add any incoming not tags + Object.keys(tags).forEach(k => { + let nots = tags[k].not || []; + nots.forEach(no => { + if (tags[no] && tags[no].not) { + tags[no].not.push(k); + } + }); + }); + return tags + }; + var validate$1 = validate; + + // 'fill-down' parent logic inference + const compute$6 = function (allTags) { + // setup graph-lib format + const flatList = Object.keys(allTags).map(k => { + let o = allTags[k]; + const props = { not: new Set(o.not), also: o.also, is: o.is, novel: o.novel }; + return { id: k, parent: o.is, props, children: [] } + }); + const graph = _(flatList).cache().fillDown(); + return graph.out('array') + }; + + const fromUser = function (tags) { + Object.keys(tags).forEach(k => { + tags[k] = Object.assign({}, tags[k]); + tags[k].novel = true; + }); + return tags + }; + + const addTags$1 = function (tags, already) { + // are these tags internal ones, or user-generated? + if (Object.keys(already).length > 0) { + tags = fromUser(tags); + } + tags = validate$1(tags, already); + + let allTags = Object.assign({}, already, tags); + // do some basic setting-up + // 'fill-down' parent logic + const nodes = compute$6(allTags); + // convert it to our final format + const res = fmt$1(nodes); + return res + }; + var addTags$2 = addTags$1; + + var methods$4 = { + one: { + setTag: setTag$2, + unTag: unTag$1, + addTags: addTags$2 + }, + }; + + /* eslint no-console: 0 */ + const isArray$1 = function (arr) { + return Object.prototype.toString.call(arr) === '[object Array]' + }; + const fns$1 = { + /** add a given tag, to all these terms */ + tag: function (input, reason = '', isSafe) { + if (!this.found || !input) { + return this + } + let terms = this.termList(); + if (terms.length === 0) { + return this + } + const { methods, verbose, world } = this; + // logger + if (verbose === true) { + console.log(' + ', input, reason || ''); + } + if (isArray$1(input)) { + input.forEach(tag => methods.one.setTag(terms, tag, world, isSafe, reason)); + } else { + methods.one.setTag(terms, input, world, isSafe, reason); + } + // uncache + this.uncache(); + return this + }, + + /** add a given tag, only if it is consistent */ + tagSafe: function (input, reason = '') { + return this.tag(input, reason, true) + }, + + /** remove a given tag from all these terms */ + unTag: function (input, reason) { + if (!this.found || !input) { + return this + } + let terms = this.termList(); + if (terms.length === 0) { + return this + } + const { methods, verbose, model } = this; + // logger + if (verbose === true) { + console.log(' - ', input, reason || ''); + } + let tagSet = model.one.tagSet; + if (isArray$1(input)) { + input.forEach(tag => methods.one.unTag(terms, tag, tagSet)); + } else { + methods.one.unTag(terms, input, tagSet); + } + // uncache + this.uncache(); + return this + }, + + /** return only the terms that can be this tag */ + canBe: function (tag) { + let tagSet = this.model.one.tagSet; + // everything can be an unknown tag + if (!tagSet.hasOwnProperty(tag)) { + return this + } + let not = tagSet[tag].not || []; + let nope = []; + this.document.forEach((terms, n) => { + terms.forEach((term, i) => { + let found = not.find(no => term.tags.has(no)); + if (found) { + nope.push([n, i, i + 1]); + } + }); + }); + let noDoc = this.update(nope); + return this.difference(noDoc) + }, + }; + var tag$1 = fns$1; + + const tagAPI = function (View) { + Object.assign(View.prototype, tag$1); + }; + var api$p = tagAPI; + + // wire-up more pos-tags to our model + const addTags = function (tags) { + const { model, methods } = this.world(); + const tagSet = model.one.tagSet; + const fn = methods.one.addTags; + let res = fn(tags, tagSet); + model.one.tagSet = res; + return this + }; + + var lib$1 = { addTags }; + + const boringTags = new Set(['Auxiliary', 'Possessive']); + + const sortByKids = function (tags, tagSet) { + tags = tags.sort((a, b) => { + // (unknown tags are interesting) + if (boringTags.has(a) || !tagSet.hasOwnProperty(b)) { + return 1 + } + if (boringTags.has(b) || !tagSet.hasOwnProperty(a)) { + return -1 + } + let kids = tagSet[a].children || []; + let aKids = kids.length; + kids = tagSet[b].children || []; + let bKids = kids.length; + return aKids - bKids + }); + return tags + }; + + const tagRank = function (view) { + const { document, world } = view; + const tagSet = world.model.one.tagSet; + document.forEach(terms => { + terms.forEach(term => { + let tags = Array.from(term.tags); + term.tagRank = sortByKids(tags, tagSet); + }); + }); + }; + var tagRank$1 = tagRank; + + var tag = { + model: { + one: { tagSet: {} } + }, + compute: { + tagRank: tagRank$1 + }, + methods: methods$4, + api: api$p, + lib: lib$1 + }; + + const initSplit = /(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g; //!TODO: speedup this regex + const newLine = /((?:\r?\n|\r)+)/; // Match different new-line formats + // Start with a regex: + const basicSplit = function (text) { + let all = []; + //first, split by newline + let lines = text.split(newLine); + for (let i = 0; i < lines.length; i++) { + //split by period, question-mark, and exclamation-mark + let arr = lines[i].split(initSplit); + for (let o = 0; o < arr.length; o++) { + all.push(arr[o]); + } + } + return all + }; + var basicSplit$1 = basicSplit; + + const isAcronym$2 = /[ .][A-Z]\.? *$/i; + const hasEllipse = /(?:\u2026|\.{2,}) *$/; + const hasLetter$1 = /\p{L}/u; + + /** 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 = function (text, model) { + let abbrevs = model.one.abbreviations || new Set(); + 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 + } + // 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) { + //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); + } + //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$1(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] = ''; + } + } + //if we never got a sentence, return the given text + if (sentences.length === 0) { + return [text] + } + //move whitespace to the ends of sentences, when possible + //['hello',' world'] -> ['hello ','world'] + for (let i = 1; i < sentences.length; i += 1) { + let ws = sentences[i].match(startWhitespace); + if (ws !== null) { + sentences[i - 1] += ws[0]; + sentences[i] = sentences[i].replace(startWhitespace, ''); + } + } + return sentences + }; + var sentence = splitSentences; + + const hasHyphen = function (str, model) { + let parts = str.split(/[-–—]/); + if (parts.length <= 1) { + return false + } + const { prefixes, suffixes } = model.one; + + //dont split 're-do' + if (prefixes.hasOwnProperty(parts[0])) { + return false + } + //dont split 'flower-like' + parts[1] = parts[1].trim().replace(/[.?!]$/, ''); + if (suffixes.hasOwnProperty(parts[1])) { + return false + } + //letter-number 'aug-20' + let reg = /^([a-z\u00C0-\u00FF`"'/]+)[-–—]([a-z0-9\u00C0-\u00FF].*)/i; + if (reg.test(str) === true) { + return true + } + //number-letter '20-aug' + let reg2 = /^([0-9]{1,4})[-–—]([a-z\u00C0-\u00FF`"'/-]+$)/i; + if (reg2.test(str) === true) { + return true + } + return false + }; + + const splitHyphens = function (word) { + let arr = []; + //support multiple-hyphenated-terms + const hyphens = word.split(/[-–—]/); + let whichDash = '-'; + let found = word.match(/[-–—]/); + if (found && found[0]) { + whichDash = found; + } + for (let o = 0; o < hyphens.length; o++) { + if (o === hyphens.length - 1) { + arr.push(hyphens[o]); + } else { + arr.push(hyphens[o] + whichDash); + } + } + return arr + }; + + // combine '2 - 5' like '2-5' is + // 2-4: 2, 4 + const combineRanges = function (arr) { + const startRange = /^[0-9]{1,4}(:[0-9][0-9])?([a-z]{1,2})? ?[-–—] ?$/; + const endRange = /^[0-9]{1,4}([a-z]{1,2})? ?$/; + for (let i = 0; i < arr.length - 1; i += 1) { + if (arr[i + 1] && startRange.test(arr[i]) && endRange.test(arr[i + 1])) { + arr[i] = arr[i] + arr[i + 1]; + arr[i + 1] = null; + } + } + return arr + }; + var combineRanges$1 = combineRanges; + + const isSlash = /\p{L} ?\/ ?\p{L}+$/u; + + // 'he / she' should be one word + const combineSlashes = function (arr) { + for (let i = 1; i < arr.length - 1; i++) { + if (isSlash.test(arr[i])) { + arr[i - 1] += arr[i] + arr[i + 1]; + arr[i] = null; + arr[i + 1] = null; + } + } + return arr + }; + var combineSlashes$1 = combineSlashes; + + const wordlike = /\S/; + const isBoundary = /^[!?.]+$/; + const naiiveSplit = /(\S+)/; + + let notWord = ['.', '?', '!', ':', ';', '-', '–', '—', '--', '...', '(', ')', '[', ']', '"', "'", '`']; + notWord = notWord.reduce((h, c) => { + h[c] = true; + return h + }, {}); + + const isArray = function (arr) { + return Object.prototype.toString.call(arr) === '[object Array]' + }; + + //turn a string into an array of strings (naiive for now, lumped later) + const splitWords = function (str, model) { + let result = []; + let arr = []; + //start with a naiive split + str = str || ''; + if (typeof str === 'number') { + str = String(str); + } + if (isArray(str)) { + return str + } + const words = str.split(naiiveSplit); + for (let i = 0; i < words.length; i++) { + //split 'one-two' + if (hasHyphen(words[i], model) === true) { + arr = arr.concat(splitHyphens(words[i])); + continue + } + arr.push(words[i]); + } + //greedy merge whitespace+arr to the right + let carry = ''; + for (let i = 0; i < arr.length; i++) { + let word = arr[i]; + //if it's more than a whitespace + if (wordlike.test(word) === true && notWord.hasOwnProperty(word) === false && isBoundary.test(word) === false) { + //put whitespace on end of previous term, if possible + if (result.length > 0) { + result[result.length - 1] += carry; + result.push(word); + } else { + //otherwise, but whitespace before + result.push(carry + word); + } + carry = ''; + } else { + carry += word; + } + } + //handle last one + if (carry) { + if (result.length === 0) { + result[0] = ''; + } + result[result.length - 1] += carry; //put it on the end + } + // combine 'one / two' + result = combineSlashes$1(result); + result = combineRanges$1(result); + // remove empty results + result = result.filter(s => s); + return result + }; + var term = 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]+/; + const endings = + /[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/; + const hasApostrophe$1 = /['’]/; + const hasAcronym = /^[a-z]\.([a-z]\.)+/i; + const minusNumber = /^[-+.][0-9]/; + const shortYear = /^'[0-9]{2}/; + + const normalizePunctuation = function (str) { + let original = str; + let pre = ''; + let post = ''; + // number cleanups + str = str.replace(startings, found => { + pre = found; + // support '-40' + if ((pre === '-' || pre === '+' || pre === '.') && minusNumber.test(str)) { + pre = ''; + return found + } + // support years like '97 + if (pre === `'` && shortYear.test(str)) { + pre = ''; + return found + } + return '' + }); + str = str.replace(endings, found => { + post = found; + // keep s-apostrophe - "flanders'" or "chillin'" + if (hasApostrophe$1.test(found) && /[sn]['’]$/.test(original) && hasApostrophe$1.test(pre) === false) { + post = post.replace(hasApostrophe$1, ''); + return `'` + } + //keep end-period in acronym + if (hasAcronym.test(str) === true) { + post = post.replace(/\./, ''); + return '.' + } + return '' + }); + //we went too far.. + if (str === '') { + // do a very mild parse, and hope for the best. + original = original.replace(/ *$/, after => { + post = after || ''; + return '' + }); + str = original; + pre = ''; + } + return { str, pre, post } + }; + var tokenize$1 = normalizePunctuation; + + const parseTerm = txt => { + // cleanup any punctuation as whitespace + let { str, pre, post } = tokenize$1(txt); + const parsed = { + text: str, + pre: pre, + post: post, + tags: new Set(), + }; + return parsed + }; + var whitespace = parseTerm; + + /** some basic operations on a string to reduce noise */ + const clean = function (str) { + str = str || ''; + str = str.toLowerCase(); + str = str.trim(); + let original = str; + //punctuation + str = str.replace(/[,;.!?]+$/, ''); + //coerce Unicode ellipses + str = str.replace(/\u2026/g, '...'); + //en-dash + str = str.replace(/\u2013/g, '-'); + //strip leading & trailing grammatical punctuation + if (/^[:;]/.test(str) === false) { + str = str.replace(/\.{3,}$/g, ''); + str = str.replace(/[",.!:;?)]+$/g, ''); + str = str.replace(/^['"(]+/g, ''); + } + // remove zero-width characters + str = str.replace(/[\u200B-\u200D\uFEFF]/g, ''); + //do this again.. + str = str.trim(); + //oh shucks, + if (str === '') { + str = original; + } + //no-commas in numbers + str = str.replace(/([0-9]),([0-9])/g, '$1$2'); + return str + }; + var cleanup = clean; + + // do acronyms need to be ASCII? ... kind of? + const periodAcronym$1 = /([A-Z]\.)+[A-Z]?,?$/; + const oneLetterAcronym$1 = /^[A-Z]\.,?$/; + const noPeriodAcronym$1 = /[A-Z]{2,}('s|,)?$/; + const lowerCaseAcronym$1 = /([a-z]\.)+[a-z]\.?$/; + + const isAcronym$1 = function (str) { + //like N.D.A + if (periodAcronym$1.test(str) === true) { + return true + } + //like c.e.o + if (lowerCaseAcronym$1.test(str) === true) { + return true + } + //like 'F.' + if (oneLetterAcronym$1.test(str) === true) { + return true + } + //like NDA + if (noPeriodAcronym$1.test(str) === true) { + return true + } + return false + }; + + const doAcronym = function (str) { + if (isAcronym$1(str)) { + str = str.replace(/\./g, ''); + } + return str + }; + var doAcronyms = doAcronym; + + const normalize$1 = function (term, world) { + const killUnicode = world.methods.one.killUnicode; + // console.log(world.methods.one) + let str = term.text || ''; + str = cleanup(str); + //(very) rough ASCII transliteration - bjŏrk -> bjork + str = killUnicode(str, world); + str = doAcronyms(str); + term.normal = str; + }; + 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 { 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) => { + normal(t, world); + }); + return terms + }); + return input + }; + + var methods$3 = { + one: { + killUnicode: killUnicode$1, + tokenize: { + splitSentences: sentence, + splitTerms: term, + splitWhitespace: whitespace, + fromString, + }, + }, + }; + + const aliases$1 = { + '&': 'and', + '@': 'at', + '%': 'percent', + 'plz': 'please', + 'bein': 'being', + }; + var aliases$2 = aliases$1; + + var misc$8 = [ + 'approx', + 'apt', + 'bc', + 'cyn', + 'eg', + 'esp', + 'est', + 'etc', + 'ex', + 'exp', + 'prob', //probably + 'pron', // Pronunciation + 'gal', //gallon + 'min', + 'pseud', + 'fig', //figure + 'jd', + 'lat', //latitude + 'lng', //longitude + 'vol', //volume + 'fm', //not am + 'def', //definition + 'misc', + 'plz', //please + 'ea', //each + 'ps', + 'sec', //second + 'pt', + 'pref', //preface + 'pl', //plural + 'pp', //pages + 'qt', //quarter + 'fr', //french + 'sq', + 'nee', //given name at birth + 'ss', //ship, or sections + 'tel', + 'temp', + 'vet', + 'ver', //version + 'fem', //feminine + 'masc', //masculine + 'eng', //engineering/english + 'adj', //adjective + 'vb', //verb + 'rb', //adverb + 'inf', //infinitive + 'situ', // in situ + 'vivo', + 'vitro', + 'wr', //world record + ]; + + var honorifics$1 = [ + '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', + //miss + //misses + ]; + + var months = ['jan', 'feb', 'mar', 'apr', 'jun', 'jul', 'aug', 'sep', 'sept', 'oct', 'nov', 'dec']; + + var nouns$2 = [ + 'ad', + 'al', + 'arc', + 'ba', + 'bl', + 'ca', + 'cca', + 'col', + 'corp', + 'ft', + 'fy', + 'ie', + 'lit', + 'ma', + 'md', + 'pd', + 'tce', + ]; + + var organizations = ['dept', 'univ', 'assn', 'bros', 'inc', 'ltd', 'co']; + + var places$2 = [ + 'rd', + 'st', + 'dist', + 'mt', + 'ave', + 'blvd', + 'cl', + // 'ct', + 'cres', + 'hwy', + //states + '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', + ]; + + // units that are abbreviations too + var units = [ + 'dl', + 'ml', + 'gal', + 'ft', //ambiguous + 'qt', + 'pt', + 'tbl', + 'tsp', + 'tbsp', + 'km', + 'dm', //decimeter + 'cm', + 'mm', + 'mi', + 'td', + 'hr', //hour + 'hrs', //hour + 'kg', + 'hg', + 'dg', //decigram + 'cg', //centigram + 'mg', //milligram + 'µg', //microgram + 'lb', //pound + 'oz', //ounce + 'sq ft', + 'hz', //hertz + 'mps', //meters per second + 'mph', + 'kmph', //kilometers per hour + 'kb', //kilobyte + 'mb', //megabyte + 'gb', //ambig + 'tb', //terabyte + 'lx', //lux + 'lm', //lumen + 'pa', //ambig + 'fl oz', // + + 'yb', + ]; + + // add our abbreviation list to our lexicon + let list$2 = [ + [misc$8], + [units, 'Unit'], + [nouns$2, 'Noun'], + [honorifics$1, 'Honorific'], + [months, 'Month'], + [organizations, 'Organization'], + [places$2, 'Place'], + ]; + // create key-val for sentence-tokenizer + let abbreviations = {}; + // add them to a future lexicon + let lexicon$1 = {}; + + list$2.forEach(a => { + a[0].forEach(w => { + // sentence abbrevs + abbreviations[w] = true; + // future-lexicon + lexicon$1[w] = 'Abbreviation'; + if (a[1] !== undefined) { + lexicon$1[w] = [lexicon$1[w], a[1]]; + } + }); + }); + + // dashed prefixes that are not independent words + // 'mid-century', 'pre-history' + var prefixes$1 = [ + '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', //out-lived + // 'counter', + // 'mid', + // 'out', + // 'non', + // 'over', + // 'post', + // 'semi', + // 'super', //'super-cool' + // 'ultra', //'ulta-cool' + // 'under', + // 'whole', + ].reduce((h, str) => { + h[str] = true; + return h + }, {}); + + // dashed suffixes that are not independent words + // 'flower-like', 'president-elect' + var suffixes$5 = { + 'like': true, + 'ish': true, + 'less': true, + 'able': true, + 'elect': true, + 'type': true, + 'designate': true, + // 'fold':true, + }; + + //a hugely-ignorant, and widely subjective transliteration of latin, cryllic, greek unicode characters to english ascii. + //approximate visual (not semantic or phonetic) relationship between unicode and ascii characters + //http://en.wikipedia.org/wiki/List_of_Unicode_characters + //https://docs.google.com/spreadsheet/ccc?key=0Ah46z755j7cVdFRDM1A2YVpwa1ZYWlpJM2pQZ003M0E + let compact = { + '!': '¡', + '?': '¿Ɂ', + '"': '“”"❝❞', + "'": '‘‛❛❜’', + '-': '—–', + 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: 'ŹźŻżŽžƵƶȤȥɀΖ', + }; + //decompress data into two hashes + let unicode = {}; + Object.keys(compact).forEach(function (k) { + compact[k].split('').forEach(function (s) { + unicode[s] = k; + }); + }); + var unicode$1 = unicode; + + var model$4 = { + one: { + aliases: aliases$2, + abbreviations, + prefixes: prefixes$1, + suffixes: suffixes$5, + lexicon: lexicon$1, //give this one forward + unicode: unicode$1, + }, + }; + + const hasSlash = /\//; + const hasDomain = /[a-z]\.[a-z]/i; + const isMath = /[0-9]/; + // const hasSlash = /[a-z\u00C0-\u00FF] ?\/ ?[a-z\u00C0-\u00FF]/ + // const hasApostrophe = /['’]s$/ + + const addAliases = function (term, world) { + let str = term.normal || term.text; + const aliases = world.model.one.aliases; + // lookup known aliases like '&' + if (aliases.hasOwnProperty(str)) { + term.alias = term.alias || []; + term.alias.push(aliases[str]); + } + // support slashes as aliases + if (hasSlash.test(str) && !hasDomain.test(str) && !isMath.test(str)) { + let arr = str.split(hasSlash); + // don't split urls and things + if (arr.length <= 2) { + arr.forEach(word => { + word = word.trim(); + if (word !== '') { + term.alias = term.alias || []; + term.alias.push(word); + } + }); + } + } + // aliases for apostrophe-s + // if (hasApostrophe.test(str)) { + // let main = str.replace(hasApostrophe, '').trim() + // term.alias = term.alias || [] + // term.alias.push(main) + // } + return term + }; + var alias = addAliases; + + const hasDash = /^\p{Letter}+-\p{Letter}+$/u; + // 'machine' is a normalized form that looses human-readability + const doMachine = function (term) { + let str = term.implicit || term.normal || term.text; + // remove apostrophes + str = str.replace(/['’]s$/, ''); + str = str.replace(/s['’]$/, 's'); + //lookin'->looking (make it easier for conjugation) + str = str.replace(/([aeiou][ktrp])in'$/, '$1ing'); + //turn re-enactment to reenactment + if (hasDash.test(str)) { + str = str.replace(/-/g, ''); + } + //#tags, @mentions + str = str.replace(/^[#@]/, ''); + if (str !== term.normal) { + term.machine = str; + } + }; + var machine = doMachine; + + // sort words by frequency + const freq = function (view) { + let docs = view.docs; + let counts = {}; + for (let i = 0; i < docs.length; i += 1) { + for (let t = 0; t < docs[i].length; t += 1) { + let term = docs[i][t]; + let word = term.machine || term.normal; + counts[word] = counts[word] || 0; + counts[word] += 1; + } + } + // add counts on each term + for (let i = 0; i < docs.length; i += 1) { + for (let t = 0; t < docs[i].length; t += 1) { + let term = docs[i][t]; + let word = term.machine || term.normal; + term.freq = counts[word]; + } + } + }; + var freq$1 = freq; + + // get all character startings in doc + const offset = function (view) { + let elapsed = 0; + let index = 0; + let docs = view.document; //start from the actual-top + for (let i = 0; i < docs.length; i += 1) { + for (let t = 0; t < docs[i].length; t += 1) { + let term = docs[i][t]; + term.offset = { + index: index, + start: elapsed + term.pre.length, + length: term.text.length, + }; + elapsed += term.pre.length + term.text.length + term.post.length; + index += 1; + } + } + }; + + + var offset$1 = offset; + + // cheat- add the document's pointer to the terms + const index = function (view) { + // console.log('reindex') + let document = view.document; + for (let n = 0; n < document.length; n += 1) { + for (let i = 0; i < document[n].length; i += 1) { + document[n][i].index = [n, i]; + } + } + // let ptrs = b.fullPointer + // console.log(ptrs) + // for (let i = 0; i < docs.length; i += 1) { + // const [n, start] = ptrs[i] + // for (let t = 0; t < docs[i].length; t += 1) { + // let term = docs[i][t] + // term.index = [n, start + t] + // } + // } + }; + + var index$1 = index; + + const wordCount = function (view) { + let n = 0; + let docs = view.docs; + for (let i = 0; i < docs.length; i += 1) { + for (let t = 0; t < docs[i].length; t += 1) { + if (docs[i][t].normal === '') { + continue //skip implicit words + } + n += 1; + docs[i][t].wordCount = n; + } + } + }; + + var wordCount$1 = wordCount; + + // cheat-method for a quick loop + const termLoop$1 = function (view, fn) { + let docs = view.docs; + for (let i = 0; i < docs.length; i += 1) { + for (let t = 0; t < docs[i].length; t += 1) { + fn(docs[i][t], view.world); + } + } + }; + + const methods$2 = { + alias: (view) => termLoop$1(view, alias), + machine: (view) => termLoop$1(view, machine), + normal: (view) => termLoop$1(view, normal), + freq: freq$1, + offset: offset$1, + index: index$1, + wordCount: wordCount$1, + }; + var compute$5 = methods$2; + + var tokenize = { + compute: compute$5, + methods: methods$3, + model: model$4, + hooks: ['alias', 'machine', 'index', 'id'], + }; + + // const plugin = function (world) { + // let { methods, model, parsers } = world + // Object.assign({}, methods, _methods) + // Object.assign(model, _model) + // methods.one.tokenize.fromString = tokenize + // parsers.push('normal') + // parsers.push('alias') + // parsers.push('machine') + // // extend View class + // // addMethods(View) + // } + // export default plugin + + // lookup last word in the type-ahead prefixes + const typeahead$1 = function (view) { + const prefixes = view.model.one.typeahead; + const docs = view.docs; + if (docs.length === 0 || Object.keys(prefixes).length === 0) { + return + } + let lastPhrase = docs[docs.length - 1] || []; + let lastTerm = lastPhrase[lastPhrase.length - 1]; + // if we've already put whitespace, end. + if (lastTerm.post) { + return + } + // if we found something + if (prefixes.hasOwnProperty(lastTerm.normal)) { + let found = prefixes[lastTerm.normal]; + // add full-word as an implicit result + lastTerm.implicit = found; + lastTerm.machine = found; + lastTerm.typeahead = true; + // tag it, as our assumed term + if (view.compute.preTagger) { + view.last().unTag('*').compute(['lexicon', 'preTagger']); + } + } + }; + + var compute$4 = { typeahead: typeahead$1 }; + + // assume any discovered prefixes + const autoFill = function () { + const docs = this.docs; + if (docs.length === 0) { + return this + } + let lastPhrase = docs[docs.length - 1] || []; + let term = lastPhrase[lastPhrase.length - 1]; + if (term.typeahead === true && term.machine) { + term.text = term.machine; + term.normal = term.machine; + } + return this + }; + + const api$n = function (View) { + View.prototype.autoFill = autoFill; + }; + var api$o = api$n; + + // generate all the possible prefixes up-front + const getPrefixes = function (arr, opts, world) { + let index = {}; + let collisions = []; + let existing = world.prefixes || {}; + arr.forEach((str) => { + str = str.toLowerCase().trim(); + let max = str.length; + if (opts.max && max > opts.max) { + max = opts.max; + } + for (let size = opts.min; size < max; size += 1) { + let prefix = str.substring(0, size); + // ensure prefix is not a word + if (opts.safe && world.model.one.lexicon.hasOwnProperty(prefix)) { + continue + } + // does it already exist? + if (existing.hasOwnProperty(prefix) === true) { + collisions.push(prefix); + continue + } + if (index.hasOwnProperty(prefix) === true) { + collisions.push(prefix); + continue + } + index[prefix] = str; + } + }); + // merge with existing prefixes + index = Object.assign({}, existing, index); + // remove ambiguous-prefixes + collisions.forEach((str) => { + delete index[str]; + }); + return index + }; + + var allPrefixes = getPrefixes; + + const isObject = val => { + return Object.prototype.toString.call(val) === '[object Object]' + }; + + const defaults$1 = { + safe: true, + min: 3, + }; + + const prepare = function (words = [], opts = {}) { + let model = this.model(); + opts = Object.assign({}, defaults$1, opts); + if (isObject(words)) { + Object.assign(model.one.lexicon, words); + words = Object.keys(words); + } + let prefixes = allPrefixes(words, opts, this.world()); + // manually combine these with any existing prefixes + Object.keys(prefixes).forEach(str => { + // explode any overlaps + if (model.one.typeahead.hasOwnProperty(str)) { + delete model.one.typeahead[str]; + return + } + model.one.typeahead[str] = prefixes[str]; + }); + return this + }; + + var lib = { + typeahead: prepare + }; + + const model$3 = { + one: { + typeahead: {} //set a blank key-val + } + }; + var typeahead = { + model: model$3, + api: api$o, + lib, + compute: compute$4, + hooks: ['typeahead'] + }; + + // order here matters + nlp$1.extend(change); //0kb + nlp$1.extend(output); //0kb + nlp$1.extend(match); //10kb + nlp$1.extend(pointers); //2kb + nlp$1.extend(tag); //2kb + nlp$1.plugin(contractions); //~6kb + nlp$1.extend(tokenize); //7kb + nlp$1.plugin(cache$1); //~1kb + nlp$1.extend(lookup); //7kb + nlp$1.extend(typeahead); //1kb + nlp$1.extend(lexicon$2); //1kb + nlp$1.extend(sweep); //1kb + + //nouns with irregular plural/singular forms + //used in nouns.toPlural(), and also in the lexicon. + + var irregularPlurals = { + // -a + addendum: 'addenda', + corpus: 'corpora', + criterion: 'criteria', + curriculum: 'curricula', + genus: 'genera', + memorandum: 'memoranda', + opus: 'opera', + ovum: 'ova', + phenomenon: 'phenomena', + referendum: 'referenda', + + // -ae + alga: 'algae', + alumna: 'alumnae', + antenna: 'antennae', + formula: 'formulae', + larva: 'larvae', + nebula: 'nebulae', + vertebra: 'vertebrae', + + // -is + analysis: 'analyses', + axis: 'axes', + diagnosis: 'diagnoses', + parenthesis: 'parentheses', + prognosis: 'prognoses', + synopsis: 'synopses', + thesis: 'theses', + neurosis: 'neuroses', + // -x + appendix: 'appendices', + index: 'indices', + matrix: 'matrices', + ox: 'oxen', + sex: 'sexes', + + // -i + alumnus: 'alumni', + bacillus: 'bacilli', + cactus: 'cacti', + fungus: 'fungi', + hippopotamus: 'hippopotami', + libretto: 'libretti', + modulus: 'moduli', + nucleus: 'nuclei', + octopus: 'octopi', + radius: 'radii', + stimulus: 'stimuli', + syllabus: 'syllabi', + + // -ie + cookie: 'cookies', + calorie: 'calories', + auntie: 'aunties', + movie: 'movies', + pie: 'pies', + rookie: 'rookies', + tie: 'ties', + zombie: 'zombies', + + // -f + leaf: 'leaves', + loaf: 'loaves', + thief: 'thieves', + + // ee- + foot: 'feet', + goose: 'geese', + tooth: 'teeth', + + // -eaux + beau: 'beaux', + chateau: 'chateaux', + tableau: 'tableaux', + + // -ses + 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', + + }; + + // generated in ./lib/lexicon + var lexData = { + "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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 BASE = 36; + const seq = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + + const cache = seq.split('').reduce(function (h, c, i) { + h[c] = i; + return h + }, {}); + + // 0, 1, 2, ..., A, B, C, ..., 00, 01, ... AA, AB, AC, ..., AAA, AAB, ... + const toAlphaCode = function (n) { + if (seq[n] !== undefined) { + return seq[n] + } + let places = 1; + let range = BASE; + let s = ''; + for (; n >= range; n -= range, places++, range *= BASE) {} + while (places--) { + const d = n % BASE; + s = String.fromCharCode((d < 10 ? 48 : 55) + d) + s; + n = (n - d) / BASE; + } + return s + }; + + const fromAlphaCode = function (s) { + if (cache[s] !== undefined) { + return cache[s] + } + let n = 0; + let places = 1; + let range = BASE; + let pow = 1; + for (; places < s.length; n += range, places++, range *= BASE) {} + for (let i = s.length - 1; i >= 0; i--, pow *= BASE) { + let d = s.charCodeAt(i) - 48; + if (d > 10) { + d -= 7; + } + n += d * pow; + } + return n + }; + + var encoding = { + toAlphaCode, + fromAlphaCode + }; + + const symbols = function (t) { + //... process these lines + const reSymbol = new RegExp('([0-9A-Z]+):([0-9A-Z]+)'); + for (let i = 0; i < t.nodes.length; i++) { + const m = reSymbol.exec(t.nodes[i]); + if (!m) { + t.symCount = i; + break + } + t.syms[encoding.fromAlphaCode(m[1])] = encoding.fromAlphaCode(m[2]); + } + //remove from main node list + t.nodes = t.nodes.slice(t.symCount, t.nodes.length); + }; + var parseSymbols = symbols; + + // References are either absolute (symbol) or relative (1 - based) + const indexFromRef = function (trie, ref, index) { + const dnode = encoding.fromAlphaCode(ref); + if (dnode < trie.symCount) { + return trie.syms[dnode] + } + return index + dnode + 1 - trie.symCount + }; + + const toArray$3 = function (trie) { + const all = []; + const crawl = (index, pref) => { + let node = trie.nodes[index]; + if (node[0] === '!') { + all.push(pref); + node = node.slice(1); //ok, we tried. remove it. + } + const matches = node.split(/([A-Z0-9,]+)/g); + for (let i = 0; i < matches.length; i += 2) { + const str = matches[i]; + const ref = matches[i + 1]; + if (!str) { + continue + } + const have = pref + str; + //branch's end + if (ref === ',' || ref === undefined) { + all.push(have); + continue + } + const newIndex = indexFromRef(trie, ref, index); + crawl(newIndex, have); + } + }; + crawl(0, ''); + return all + }; + + //PackedTrie - Trie traversal of the Trie packed-string representation. + const unpack$2 = function (str) { + const trie = { + nodes: str.split(';'), + syms: [], + symCount: 0 + }; + //process symbols, if they have them + if (str.match(':')) { + parseSymbols(trie); + } + return toArray$3(trie) + }; + + var traverse = unpack$2; + + const unpack = function (str) { + if (!str) { + return {} + } + //turn the weird string into a key-value object again + const obj = str.split('|').reduce((h, s) => { + const arr = s.split('¦'); + h[arr[0]] = arr[1]; + return h + }, {}); + const all = {}; + Object.keys(obj).forEach(function (cat) { + const arr = traverse(obj[cat]); + //special case, for botched-boolean + if (cat === 'true') { + cat = true; + } + for (let i = 0; i < arr.length; i++) { + const k = arr[i]; + if (all.hasOwnProperty(k) === true) { + if (Array.isArray(all[k]) === false) { + all[k] = [all[k], cat]; + } else { + all[k].push(cat); + } + } else { + all[k] = cat; + } + } + }); + return all + }; + + var unpack$1 = unpack; + + //words that can't be compressed, for whatever reason + let misc$6 = { + // numbers + '20th century fox': 'Organization', + '7 eleven': 'Organization', + 'motel 6': 'Organization', + g8: 'Organization', + vh1: 'Organization', + + // ampersands + 'at&t': 'Organization', + 'black & decker': 'Organization', + 'h & m': 'Organization', + 'johnson & johnson': 'Organization', + 'procter & gamble': 'Organization', + "ben & jerry's": 'Organization', + '&': 'Conjunction', + + //pronouns + i: ['Pronoun', 'Singular'], + he: ['Pronoun', 'Singular'], + she: ['Pronoun', 'Singular'], + it: ['Pronoun', 'Singular'], + they: ['Pronoun', 'Plural'], + we: ['Pronoun', 'Plural'], + was: ['Copula', 'PastTense'], + is: ['Copula', 'PresentTense'], + are: ['Copula', 'PresentTense'], + am: ['Copula', 'PresentTense'], + were: ['Copula', 'PastTense'], + her: ['Possessive', 'Pronoun'], + his: ['Possessive', 'Pronoun'], + hers: ['Possessive', 'Pronoun'], + their: ['Possessive', 'Pronoun'], + themselves: ['Possessive', 'Pronoun'], + your: ['Possessive', 'Pronoun'], + our: ['Possessive', 'Pronoun'], + my: ['Possessive', 'Pronoun'], + its: ['Possessive', 'Pronoun'], + + // misc + vs: ['Conjunction', 'Abbreviation'], + if: ['Condition', 'Preposition'], + closer: 'Comparative', + closest: 'Superlative', + much: 'Adverb', + may: 'Modal', + + + // 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', + + }; + var misc$7 = misc$6; + + //just some of the most common emoticons + //faster than + //http://stackoverflow.com/questions/28077049/regex-matching-emoticons + var emoticons = [ + ':(', + ':)', + ':P', + ':p', + ':O', + ';(', + ';)', + ';P', + ';p', + ';O', + ':3', + ':|', + ':/', + ':\\', + ':$', + ':*', + ':@', + ':-(', + ':-)', + ':-P', + ':-p', + ':-O', + ':-3', + ':-|', + ':-/', + ':-\\', + ':-$', + ':-*', + ':-@', + ':^(', + ':^)', + ':^P', + ':^p', + ':^O', + ':^3', + ':^|', + ':^/', + ':^\\', + ':^$', + ':^*', + ':^@', + '):', + '(:', + '$:', + '*:', + ')-:', + '(-:', + '$-:', + '*-:', + ')^:', + '(^:', + '$^:', + '*^:', + '<3', + ' { + let wordsObj = unpack$1(lexData[tag]); + // POS tag, or something fancier? + if (!hasSwitch.test(tag)) { + // set them as simple word key-value lookup + Object.keys(wordsObj).forEach(w => { + lexicon[w] = tag; + }); + return + } + // add them as seperate key-val object + Object.keys(wordsObj).forEach(w => { + switches[w] = tag; + // pluralize Noun|Verb switches + if (tag === 'Noun|Verb') { + let plural = nounToPlural(w, tmpModel$1); + switches[plural] = 'Plural|Verb'; + } + }); + }); + // add ':)' + emoticons.forEach(str => lexicon[str] = 'Emoticon'); + + // misc cleanup + delete lexicon['']; + delete lexicon[null]; + delete lexicon[' ']; + + const jj = 'Adjective'; + + var adj$1 = { + beforeTags: { + Determiner: jj, //the detailed + // Copula: jj, //is detailed + Possessive: jj, //spencer's detailed + }, + + afterTags: { + // Noun: jj, //detailed plan, overwhelming evidence + Adjective: jj, //intoxicated little + }, + + beforeWords: { + seem: jj, //seem prepared + seemed: jj, + seems: jj, + feel: jj, //feel prepared + feels: jj, + felt: jj, + appear: jj, + appears: jj, + appeared: jj, + also: jj, + over: jj, //over cooked + under: jj, + too: jj, //too insulting + it: jj, //find it insulting + but: jj, //nothing but frustrating + still: jj, //still scared + // adverbs that are adjective-ish + really: jj, //really damaged + quite: jj, + well: jj, + very: jj, + deeply: jj, + // always: jj, + // never: jj, + profoundly: jj, + extremely: jj, + so: jj, + badly: jj, + mostly: jj, + totally: jj, + awfully: jj, + rather: jj, + nothing: jj, //nothing secret, + something: jj,//something wrong + anything: jj, + }, + afterWords: { + too: jj, //insulting too + also: jj, //insulting too + or: jj, //insulting or + }, + }; + + const g = 'Gerund'; + + // Adj|Gerund + // Noun|Gerund + + var gerund = { + beforeTags: { + // Verb: g, // loves shocking + Adverb: g, //quickly shocking + Preposition: g, //by insulting + Conjunction: g, //to insulting + }, + afterTags: { + Adverb: g, //shocking quickly + Possessive: g, //shocking spencer's + Person: g, //telling spencer + Pronoun: g, //shocking him + Determiner: g, //shocking the + Copula: g, //shocking is + Preposition: g, //dashing by, swimming in + Conjunction: g, //insulting to + Comparative: g, //growing shorter + }, + beforeWords: { + been: g, + keep: g,//keep going + continue: g,// + stop: g,// + am: g,//am watching + be: g,//be timing + me: g,//got me thinking + // action-words + began: g, + start: g, + starts: g, + started: g, + stops: g, + stopped: g, + help: g, + helps: g, + avoid: g, + avoids: g, + love: g,//love painting + loves: g, + loved: g, + hate: g, + hates: g, + hated: g, + // was:g,//was working + // is:g, + // be:g, + }, + afterWords: { + you: g, //telling you + me: g, // + her: g, // + him: g, // + them: g, // + their: g, // fighting their + it: g, //dumping it + this: g, //running this + there: g, // swimming there + on: g, // landing on + about: g, // talking about + for: g, // paying for + }, + }; + + // rallying the troops + // her rallying cry + 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 + }), + + afterTags: Object.assign({}, adj$1.afterTags, gerund.afterTags, { + Singular: 'Adjective'//shocking ignorance + }), + + beforeWords: Object.assign({}, adj$1.beforeWords, gerund.beforeWords, { + is: 'Adjective', + was: 'Adjective', + suggest: 'Gerund', + recommend: 'Gerund', + }), + + afterWords: Object.assign({}, adj$1.afterWords, gerund.afterWords, { + to: 'Gerund', + not: 'Gerund',//trying not to car + the: 'Gerund' //sweeping the country + }), + }; + // console.log(clue) + var adjGerund$1 = clue$6; + + const n = 'Singular'; + var noun$1 = { + beforeTags: { + Determiner: n, //the date + Possessive: n, //his date + Acronym: n,//u.s. state + // ProperNoun:n, + Noun: n, //nasa funding + Adjective: n, //whole bottles + // Verb:true, //save storm victims + PresentTense: n, //loves hiking + Gerund: n, //uplifting victims + PastTense: n, //saved storm victims + Infinitive: n, //profess love + Date: n,//9pm show + }, + afterTags: { + Value: n, //date nine -? + Modal: n, //date would + Copula: n, //fear is + PresentTense: n, //babysitting sucks + PastTense: n, //babysitting sucked + // Noun:n, //talking therapy, planning process + Demonym: n//american touch + }, + // ownTags: { ProperNoun: n }, + beforeWords: { + the: n,//the brands + with: n,//with cakes + without: n,// + // was:n, //was time -- was working + // is:n, // + of: n, //of power + for: n, //for rats + any: n, //any rats + all: n, //all tips + on: n, //on time + // thing-ish verbs + cut: n,//cut spending + cuts: n,//cut spending + save: n,// + saved: n,// + saves: n,// + make: n,// + makes: n,// + made: n,// + minus: n,//minus laughing + plus: n,// + than: n,//more than age + another: n,// + versus: n,// + neither: n,// + // strong adjectives + favorite: n,// + best: n,// + daily: n,// + weekly: n,// + linear: n,// + binary: n,// + mobile: n,// + lexical: n,// + technical: n,// + computer: n,// + scientific: n,// + formal: n + }, + afterWords: { + of: n, //date of birth (preposition) + system: n, + aid: n, + method: n, + utility: n, + tool: n, + reform: n, + therapy: n, + philosophy: n, + room: n, + authority: n, + says: n, + said: n, + wants: n, + wanted: n, + }, + }; + + // the commercial market + // watching the commercial + + const misc$5 = { + beforeTags: { + Determiner: undefined, //the premier university + Cardinal: 'Noun'//1950 convertable + } + }; + const clue$5 = { + beforeTags: Object.assign({}, adj$1.beforeTags, noun$1.beforeTags, misc$5.beforeTags), + afterTags: Object.assign({}, adj$1.afterTags, noun$1.afterTags), + beforeWords: Object.assign({}, adj$1.beforeWords, noun$1.beforeWords, { + // are representative + are: 'Adjective', is: 'Adjective', was: 'Adjective', be: 'Adjective', + }), + afterWords: Object.assign({}, adj$1.afterWords, noun$1.afterWords), + }; + var adjNoun = clue$5; + + // the boiled egg + // boiled the water + + const past$1 = { + beforeTags: { + Adverb: 'PastTense', //quickly detailed + Pronoun: 'PastTense', //he detailed + ProperNoun: 'PastTense', //toronto closed + Auxiliary: 'PastTense', + Noun: 'PastTense', //eye closed -- i guess. + }, + afterTags: { + Possessive: 'PastTense', //hooked him + Pronoun: 'PastTense', //hooked me + Determiner: 'PastTense', //hooked the + Adverb: 'PastTense', //cooked perfectly + Comparative: 'PastTense',//closed higher + Date: 'PastTense',// alleged thursday + }, + beforeWords: { + be: 'PastTense',//be hooked + get: 'PastTense',//get charged + had: 'PastTense', + has: 'PastTense', + have: 'PastTense', + been: 'PastTense', + it: 'PastTense',//it intoxicated him + as: 'PastTense',//as requested + for: 'Adjective',//for discounted items + }, + afterWords: { + by: 'PastTense', //damaged by + back: 'PastTense', //charged back + out: 'PastTense', //charged out + in: 'PastTense', //crowded in + up: 'PastTense', //heated up + down: 'PastTense', //hammered down + for: 'PastTense', //settled for + the: 'PastTense', //settled the + with: 'PastTense', //obsessed with + as: 'PastTense', //known as + on: 'PastTense', //focused on + }, + }; + + var adjPast = { + beforeTags: Object.assign({}, adj$1.beforeTags, past$1.beforeTags), + afterTags: Object.assign({}, adj$1.afterTags, past$1.afterTags), + beforeWords: Object.assign({}, adj$1.beforeWords, past$1.beforeWords), + afterWords: Object.assign({}, adj$1.afterWords, past$1.afterWords), + }; + + const v = 'Infinitive'; + + var verb = { + beforeTags: { + Modal: v, //would date + Adverb: v, //quickly date + Negative: v, //not date + Plural: v, //characters drink + // ProperNoun: vb,//google thought + }, + afterTags: { + Determiner: v, //flash the + Adverb: v, //date quickly + Possessive: v, //date his + // Noun:true, //date spencer + Preposition: v, //date around, dump onto, grumble about + // Conjunction: v, // dip to, dip through + }, + beforeWords: { + i: v, //i date + we: v, //we date + you: v, //you date + they: v, //they date + to: v, //to date + please: v, //please check + will: v, //will check + have: v, + had: v, + would: v, + could: v, + should: v, + do: v, + did: v, + does: v, + can: v, + must: v, + us: v, + me: v, + // them: v, + he: v, + she: v, + it: v, + being: v, + }, + afterWords: { + the: v, //echo the + me: v, //date me + you: v, //date you + him: v, //loves him + her: v, // + them: v, // + it: v, //hope it + a: v, //covers a + an: v, //covers an + // from: v, //ranges from + up: v,//serves up + down: v,//serves up + by: v, + // in: v, //bob in + out: v, + // on: v, + off: v, + when: v,//starts when + // for:true, //settled for + all: v,//shiver all night + // conjunctions + to: v,//dip to + because: v,// + although: v,// + before: v,// + how: v,// + otherwise: v,// + though: v,// + yet: v,// + }, + }; + + // 'would mean' vs 'is mean' + const misc$4 = { + afterTags: { + Noun: 'Adjective',//ruling party + Conjunction: undefined //clean and excellent + } + }; + const clue$4 = { + beforeTags: Object.assign({}, adj$1.beforeTags, verb.beforeTags, { + // always clean + Adverb: undefined, Negative: undefined + }), + afterTags: Object.assign({}, adj$1.afterTags, verb.afterTags, misc$4.afterTags), + beforeWords: Object.assign({}, adj$1.beforeWords, verb.beforeWords, { + // have seperate contracts + have: undefined, had: undefined, not: undefined, + //went wrong, got wrong + went: 'Adjective', goes: 'Adjective', got: 'Adjective', + // be sure + be: 'Adjective' + }), + afterWords: Object.assign({}, adj$1.afterWords, verb.afterWords, { + to: undefined//slick to the touch + }), + }; + // console.log(clue.beforeWords) + // console.log(clue) + var adjPresent = clue$4; + + // 'operating the crane', or 'operating room' + const misc$3 = { + beforeTags: { + Copula: 'Gerund', PastTense: 'Gerund', PresentTense: 'Gerund', Infinitive: 'Gerund' + }, + afterTags: {}, + beforeWords: { + are: 'Gerund', were: 'Gerund', be: 'Gerund', no: 'Gerund', without: 'Gerund', + //are you playing + you: 'Gerund', we: 'Gerund', they: 'Gerund', he: 'Gerund', she: 'Gerund', + //stop us playing + us: 'Gerund', them: 'Gerund' + }, + afterWords: { + // offering the + the: 'Gerund', this: 'Gerund', that: 'Gerund', + //got me thinking + me: 'Gerund', us: 'Gerund', them: 'Gerund', + }, + }; + const clue$3 = { + beforeTags: Object.assign({}, gerund.beforeTags, noun$1.beforeTags, misc$3.beforeTags), + afterTags: Object.assign({}, gerund.afterTags, noun$1.afterTags, misc$3.afterTags), + beforeWords: Object.assign({}, gerund.beforeWords, noun$1.beforeWords, misc$3.beforeWords), + afterWords: Object.assign({}, gerund.afterWords, noun$1.afterWords, misc$3.afterWords), + }; + var nounGerund = clue$3; + + // 'boot the ball' - 'the red boot' + // 'boots the ball' - 'the red boots' + const clue$2 = { + beforeTags: Object.assign({}, verb.beforeTags, noun$1.beforeTags, { + // Noun: undefined + Adjective: 'Singular',//great name + }), + afterTags: Object.assign({}, verb.afterTags, noun$1.afterTags, { + ProperNoun: 'Infinitive', Gerund: 'Infinitive', Adjective: 'Infinitive', + Copula: 'Singular', + }), + beforeWords: Object.assign({}, verb.beforeWords, noun$1.beforeWords, { + // is time + is: 'Singular', was: 'Singular', + //balance of power + of: 'Singular' + }), + afterWords: Object.assign({}, verb.afterWords, noun$1.afterWords, { + // for: 'Infinitive',//work for + instead: 'Infinitive', + // that: 'Singular',//subject that was + // for: 'Infinitive',//work for + about: 'Infinitive',//talk about + to: null, + by: null, + in: null + }), + }; + // console.log(clue.afterWords.of) + var nounVerb = clue$2; + + const p = 'Person'; + + var person$1 = { + beforeTags: { + Honorific: p, + Person: p, + Preposition: p, //with sue + }, + afterTags: { + Person: p, + ProperNoun: p, + Verb: p, //bob could + // Modal:true, //bob could + // Copula:true, //bob is + // PresentTense:true, //bob seems + }, + ownTags: { + ProperNoun: p, //capital letter + }, + beforeWords: { + hi: p, + hey: p, + yo: p, + dear: p, + hello: p, + }, + afterWords: { + // person-usually verbs + said: p, + says: p, + told: p, + tells: p, + feels: p, + felt: p, + seems: p, + thinks: p, + thought: p, + spends: p, + spendt: p, + plays: p, + played: p, + sing: p, + sang: p, + learn: p, + learned: p, + wants: p, + wanted: p + // and:true, //sue and jeff + }, + }; + + // 'april o'neil' - 'april 1st' + + const m$1 = 'Month'; + const month = { + beforeTags: { + Date: m$1, + Value: m$1, + }, + afterTags: { + Date: m$1, + Value: m$1, + }, + beforeWords: { + by: m$1, + in: m$1, + on: m$1, + during: m$1, + after: m$1, + before: m$1, + between: m$1, + until: m$1, + til: m$1, + sometime: m$1, + of: m$1, //5th of april + this: m$1, //this april + next: m$1, + last: m$1, + previous: m$1, + following: m$1, + }, + afterWords: { + sometime: m$1, + in: m$1, + of: m$1, + until: m$1, + the: m$1, //june the 4th + }, + }; + var personDate = { + beforeTags: Object.assign({}, person$1.beforeTags, month.beforeTags), + afterTags: Object.assign({}, person$1.afterTags, month.afterTags), + beforeWords: Object.assign({}, person$1.beforeWords, month.beforeWords), + afterWords: Object.assign({}, person$1.afterWords, month.afterWords), + }; + + // 'babling brook' vs 'brook sheilds' + + const clue$1 = { + beforeTags: Object.assign({}, noun$1.beforeTags, person$1.beforeTags), + afterTags: Object.assign({}, noun$1.afterTags, person$1.afterTags), + beforeWords: Object.assign({}, noun$1.beforeWords, person$1.beforeWords, { i: 'Infinitive', we: 'Infinitive' }), + afterWords: Object.assign({}, noun$1.afterWords, person$1.afterWords), + }; + var personNoun = clue$1; + + // 'rob the store' - 'rob lowe' + const clues$2 = { + 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; + + // 'paris hilton' vs 'paris france' + const place = { + beforeTags: { + Place: 'Place' + }, + afterTags: { + Place: 'Place', + Abbreviation: 'Place' + }, + beforeWords: { + in: 'Place', + by: 'Place', + near: 'Place', + from: 'Place', + to: 'Place', + }, + afterWords: { + in: 'Place', + by: 'Place', + near: 'Place', + from: 'Place', + to: 'Place', + government: 'Place', + council: 'Place', + region: 'Place', + city: 'Place', + }, + }; + + const clue = { + beforeTags: Object.assign({}, place.beforeTags, person$1.beforeTags), + afterTags: Object.assign({}, place.afterTags, person$1.afterTags), + beforeWords: Object.assign({}, place.beforeWords, person$1.beforeWords), + afterWords: Object.assign({}, place.afterWords, person$1.afterWords), + }; + var personPlace = clue; + + const clues = { + 'Adj|Gerund': adjGerund$1, + 'Adj|Noun': adjNoun, + 'Adj|Past': adjPast, + 'Adj|Present': adjPresent, + 'Noun|Verb': nounVerb, + 'Noun|Gerund': nounGerund, + 'Person|Noun': personNoun, + 'Person|Date': personDate, + 'Person|Verb': personVerb, + 'Person|Place': personPlace, + }; + + const copy = (obj, more) => { + let res = Object.keys(obj).reduce((h, k) => { + h[k] = obj[k] === 'Infinitive' ? 'PresentTense' : 'Plural'; + return h + }, {}); + return Object.assign(res, more) + }; + + // make a copy of this one + clues['Plural|Verb'] = { + beforeWords: copy(clues['Noun|Verb'].beforeWords, { + + }), + afterWords: copy(clues['Noun|Verb'].afterWords, { + his: 'PresentTense', her: 'PresentTense', its: 'PresentTense', + in: null, to: null, + }), + beforeTags: copy(clues['Noun|Verb'].beforeTags, { + Conjunction: 'PresentTense', //and changes + Noun: undefined, //the century demands + ProperNoun: 'PresentTense'//john plays + }), + afterTags: copy(clues['Noun|Verb'].afterTags, { + Gerund: 'Plural',//ice caps disappearing + Noun: 'PresentTense', //changes gears + Value: 'PresentTense' //changes seven gears + }), + }; + // add some custom plural clues + var clues$1 = clues; + + //just a foolish lookup of known suffixes + const Adj$2 = 'Adjective'; + const Inf$1 = 'Infinitive'; + const Pres$1 = 'PresentTense'; + const Sing$1 = 'Singular'; + const Past$1 = 'PastTense'; + const Avb = 'Adverb'; + const Plrl = 'Plural'; + const Actor$1 = 'Actor'; + const Vb = 'Verb'; + const Noun$2 = 'Noun'; + const Last$1 = 'LastName'; + const Modal = 'Modal'; + const Place = 'Place'; + const Prt = 'Participle'; + + var suffixPatterns = [ + null, + null, + { + //2-letter + ea: Sing$1, + ia: Noun$2, + ic: Adj$2, + ly: Avb, + "'n": Vb, + "'t": Vb, + }, + { + //3-letter + oed: Past$1, + ued: Past$1, + xed: Past$1, + ' so': Avb, + "'ll": Modal, + "'re": 'Copula', + azy: Adj$2, + eer: Noun$2, + end: Vb, + ped: Past$1, + ffy: Adj$2, + ify: Inf$1, + ing: 'Gerund', + ize: Inf$1, + ibe: Inf$1, + lar: Adj$2, + mum: Adj$2, + nes: Pres$1, + nny: Adj$2, + // oid: Adj, + ous: Adj$2, + que: Adj$2, + rol: Sing$1, + sis: Sing$1, + ogy: Sing$1, + oid: Sing$1, + ian: Sing$1, + zes: Pres$1, + eld: Past$1, + ken: Prt,//awoken + ven: Prt,//woven + ten: Prt,//brighten + ect: Inf$1, + ict: Inf$1, + // ide: Inf, + ign: Inf$1, + ful: Adj$2, + bal: Adj$2, + }, + { + //4-letter + amed: Past$1, + aped: Past$1, + ched: Past$1, + lked: Past$1, + rked: Past$1, + reed: Past$1, + nded: Past$1, + mned: Adj$2, + cted: Past$1, + dged: Past$1, + ield: Sing$1, + akis: Last$1, + cede: Inf$1, + chuk: Last$1, + czyk: Last$1, + ects: Pres$1, + ends: Vb, + enko: Last$1, + ette: Sing$1, + wner: Sing$1,//owner + fies: Pres$1, + fore: Avb, + gate: Inf$1, + gone: Adj$2, + ices: Plrl, + ints: Plrl, + ruct: Inf$1, + ines: Plrl, + ions: Plrl, + less: Adj$2, + llen: Adj$2, + made: Adj$2, + nsen: Last$1, + oses: Pres$1, + ould: Modal, + some: Adj$2, + sson: Last$1, + // tage: Inf, + tion: Sing$1, + tage: Noun$2, + ique: Sing$1, + tive: Adj$2, + tors: Noun$2, + vice: Sing$1, + lier: Sing$1, + fier: Sing$1, + wned: Past$1, + gent: Sing$1, + tist: Sing$1, + pist: Sing$1, + rist: Sing$1, + mist: Sing$1, + yist: Sing$1, + vist: Sing$1, + lite: Sing$1, + site: Sing$1, + rite: Sing$1, + mite: Sing$1, + bite: Sing$1, + mate: Sing$1, + date: Sing$1, + ndal: Sing$1, + vent: Sing$1, + uist: Sing$1, + gist: Sing$1, + note: Sing$1, + cide: Sing$1,//homicide + wide: Adj$2,//nationwide + // side: Adj,//alongside + vide: Inf$1,//provide + ract: Inf$1, + duce: Inf$1, + pose: Inf$1, + eive: Inf$1, + lyze: Inf$1, + lyse: Inf$1, + iant: Adj$2, + nary: Adj$2, + }, + { + //5-letter + elist: Sing$1, + holic: Sing$1, + phite: Sing$1, + tized: Past$1, + urned: Past$1, + eased: Past$1, + ances: Plrl, + bound: Adj$2, + ettes: Plrl, + fully: Avb, + ishes: Pres$1, + ities: Plrl, + marek: Last$1, + nssen: Last$1, + ology: Noun$2, + osome: Sing$1, + tment: Sing$1, + ports: Plrl, + rough: Adj$2, + tches: Pres$1, + tieth: 'Ordinal', + tures: Plrl, + wards: Avb, + where: Avb, + archy: Noun$2, + pathy: Noun$2, + opoly: Noun$2, + embly: Noun$2, + phate: Noun$2, + ndent: Sing$1, + scent: Sing$1, + onist: Sing$1, + anist: Sing$1, + alist: Sing$1, + olist: Sing$1, + icist: Sing$1, + ounce: Inf$1, + iable: Adj$2, + borne: Adj$2, + gnant: Adj$2, + inant: Adj$2, + igent: Adj$2, + atory: Adj$2, + // ctory: Adj, + rient: Sing$1, + dient: Sing$1, + }, + { + //6-letter + auskas: Last$1, + parent: Sing$1, + cedent: Sing$1, + ionary: Sing$1, + cklist: Sing$1, + keeper: Actor$1, + logist: Actor$1, + teenth: 'Value', + }, + { + //7-letter + opoulos: Last$1, + borough: Place, + sdottir: Last$1, //swedish female + }, + ]; + + //prefixes give very-little away, in general. + // more-often for scientific terms, etc. + const Adj$1 = 'Adjective'; + const Noun$1 = 'Noun'; + const Verb$1 = 'Verb'; + + var prefixPatterns = [ + null, + null, + { + // 2-letter + }, + { + // 3-letter + neo: Noun$1, + bio: Noun$1, + // pre: Noun, + 'de-': Verb$1, + 're-': Verb$1, + 'un-': Verb$1, + }, + { + // 4-letter + anti: Noun$1, + auto: Noun$1, + faux: Adj$1, + hexa: Noun$1, + kilo: Noun$1, + mono: Noun$1, + nano: Noun$1, + octa: Noun$1, + poly: Noun$1, + semi: Adj$1, + tele: Noun$1, + 'pro-': Adj$1, + 'mis-': Verb$1, + 'dis-': Verb$1, + 'pre-': Adj$1, //hmm + }, + { + // 5-letter + anglo: Noun$1, + centi: Noun$1, + ethno: Noun$1, + ferro: Noun$1, + grand: Noun$1, + hepta: Noun$1, + hydro: Noun$1, + intro: Noun$1, + macro: Noun$1, + micro: Noun$1, + milli: Noun$1, + nitro: Noun$1, + penta: Noun$1, + quasi: Adj$1, + radio: Noun$1, + tetra: Noun$1, + 'omni-': Adj$1, + 'post-': Adj$1, + }, + { + // 6-letter + pseudo: Adj$1, + 'extra-': Adj$1, + 'hyper-': Adj$1, + 'inter-': Adj$1, + 'intra-': Adj$1, + 'deca-': Adj$1, + // 'trans-': Noun, + }, + { + // 7-letter + electro: Noun$1, + }, + ]; + + //regex suffix patterns and their most common parts of speech, + //built using wordnet, by spencer kelly. + //this mapping shrinks-down the uglified build + const Adj = 'Adjective'; + const Inf = 'Infinitive'; + const Pres = 'PresentTense'; + const Sing = 'Singular'; + const Past = 'PastTense'; + const Adverb = 'Adverb'; + const Exp = 'Expression'; + const Actor = 'Actor'; + const Verb = 'Verb'; + const Noun = 'Noun'; + const Last = 'LastName'; + + var endsWith = { + a: [ + [/.[aeiou]na$/, Noun, 'tuna'], + [/.[oau][wvl]ska$/, Last], + [/.[^aeiou]ica$/, Sing, 'harmonica'], + [/^([hyj]a+)+$/, Exp, 'haha'], //hahah + ], + c: [[/.[^aeiou]ic$/, Adj]], + d: [ + //==-ed== + //double-consonant + [/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/, Past, 'popped'], + //double-vowel + [/.[aeo]{2}[bdgmnprvz]ed$/, Past, 'rammed'], + //-hed + [/.[aeiou][sg]hed$/, Past, 'gushed'], + //-rd + [/.[aeiou]red$/, Past, 'hired'], + [/.[aeiou]r?ried$/, Past, 'hurried'], + // ard + [/[^aeiou]ard$/, Sing, 'steward'], + // id + [/[aeiou][^aeiou]id$/, Adj, ''], + [/.[vrl]id$/, Adj, 'livid'], + + // ===== -ed ====== + //-led + [/..led$/, Past, 'hurled'], + //-sed + [/.[iao]sed$/, Past, ''], + [/[aeiou]n?[cs]ed$/, Past, ''], + //-med + [/[aeiou][rl]?[mnf]ed$/, Past, ''], + //-ked + [/[aeiou][ns]?c?ked$/, Past, 'bunked'], + //-gned + [/[aeiou]gned$/, Past], + //-ged + [/[aeiou][nl]?ged$/, Past], + //-ted + [/.[tdbwxyz]ed$/, Past], + [/[^aeiou][aeiou][tvx]ed$/, Past], + //-ied + [/.[cdflmnprstv]ied$/, Past, 'emptied'], + ], + e: [ + [/.[lnr]ize$/, Inf, 'antagonize'], + [/.[^aeiou]ise$/, Inf, 'antagonise'], + [/.[aeiou]te$/, Inf, 'bite'], + [/.[^aeiou][ai]ble$/, Adj, 'fixable'], + [/.[^aeiou]eable$/, Adj, 'maleable'], + [/.[ts]ive$/, Adj, 'festive'], + [/[a-z]-like$/, Adj, 'woman-like'], + ], + h: [ + [/.[^aeiouf]ish$/, Adj, 'cornish'], + [/.v[iy]ch$/, Last, '..ovich'], + [/^ug?h+$/, Exp, 'ughh'], + [/^uh[ -]?oh$/, Exp, 'uhoh'], + [/[a-z]-ish$/, Adj, 'cartoon-ish'], + ], + i: [[/.[oau][wvl]ski$/, Last, 'polish-male']], + k: [ + [/^(k){2}$/, Exp, 'kkkk'], //kkkk + ], + l: [ + [/.[gl]ial$/, Adj, 'familial'], + [/.[^aeiou]ful$/, Adj, 'fitful'], + [/.[nrtumcd]al$/, Adj, 'natal'], + [/.[^aeiou][ei]al$/, Adj, 'familial'], + ], + m: [ + [/.[^aeiou]ium$/, Sing, 'magnesium'], + [/[^aeiou]ism$/, Sing, 'schism'], + [/^[hu]m+$/, Exp, 'hmm'], + [/^\d+ ?[ap]m$/, 'Date', '3am'], + ], + n: [ + [/.[lsrnpb]ian$/, Adj, 'republican'], + [/[^aeiou]ician$/, Actor, 'musician'], + [/[aeiou][ktrp]in'$/, 'Gerund', "cookin'"], // 'cookin', 'hootin' + ], + o: [ + [/^no+$/, Exp, 'noooo'], + [/^(yo)+$/, Exp, 'yoo'], + [/^wo{2,}[pt]?$/, Exp, 'woop'], //woo + ], + r: [ + [/.[bdfklmst]ler$/, 'Noun'], + [/[aeiou][pns]er$/, Sing], + [/[^i]fer$/, Inf], + [/.[^aeiou][ao]pher$/, Actor], + [/.[lk]er$/, 'Noun'], + [/.ier$/, 'Comparative'], + ], + t: [ + [/.[di]est$/, 'Superlative'], + [/.[icldtgrv]ent$/, Adj], + [/[aeiou].*ist$/, Adj], + [/^[a-z]et$/, Verb], + ], + s: [ + [/.[^aeiou]ises$/, Pres], + [/.[rln]ates$/, Pres], + [/.[^z]ens$/, Verb], + [/.[lstrn]us$/, Sing], + [/.[aeiou]sks$/, Pres], + [/.[aeiou]kes$/, Pres], + [/[aeiou][^aeiou]is$/, Sing], + [/[a-z]'s$/, Noun], + [/^yes+$/, Exp], //yessss + ], + v: [ + [/.[^aeiou][ai][kln]ov$/, Last], //east-europe + ], + y: [ + [/.[cts]hy$/, Adj], + [/.[st]ty$/, Adj], + [/.[tnl]ary$/, Adj], + [/.[oe]ry$/, Sing], + [/[rdntkbhs]ly$/, Adverb], + [/.(gg|bb|zz)ly$/, Adj], + [/...lly$/, Adverb], + [/.[gk]y$/, Adj], + [/[bszmp]{2}y$/, Adj], + [/.[ai]my$/, Adj], + [/[ea]{2}zy$/, Adj], + [/.[^aeiou]ity$/, Sing], + ], + }; + + const vb = 'Verb'; + const nn = 'Noun'; + + var neighbours$2 = { + // looking at the previous word's tags: + leftTags: [ + ['Adjective', nn], + ['Possessive', nn], + ['Determiner', nn], + ['Adverb', vb], + ['Pronoun', vb], + ['Value', nn], + ['Ordinal', nn], + ['Modal', vb], + ['Superlative', nn], + ['Demonym', nn], + ['Honorific', 'Person'], //dr. Smith + ], + // looking at the previous word: + leftWords: [ + ['i', vb], + ['first', nn], + ['it', vb], + ['there', vb], + ['not', vb], + ['because', nn], + ['if', nn], + ['but', nn], + ['who', vb], + ['this', nn], + ['his', nn], + ['when', nn], + ['you', vb], + ['very', 'Adjective'], + ['old', nn], + ['never', vb], + ['before', nn], + ['a', 'Singular'], + ['the', nn], + ['been', vb], + ], + + // looking at the next word's tags: + rightTags: [ + ['Copula', nn], + ['PastTense', nn], + ['Conjunction', nn], + ['Modal', nn], + ], + // looking at the next word: + rightWords: [ + ['there', vb], + ['me', vb], + ['man', 'Adjective'], + ['only', vb], + ['him', vb], + ['it', vb],//relaunch it + ['were', nn], + ['took', nn], + ['himself', vb], + ['went', nn], + ['who', nn], + ['jr', 'Person'], + ], + }; + + // generated in ./lib/pairs + var data = { + "Comparative": { + "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" + }, + "Gerund": { + "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" + }, + "Participle": { + "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" + }, + "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", + "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" + }, + "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|", + "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" + }, + "Superlative": { + "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 prefix$3 = /^.([0-9]+)/; + + // handle compressed form of key-value pair + const getKeyVal = function (word, model) { + let val = model.exceptions[word]; + let m = val.match(prefix$3); + if (m === null) { + // return not compressed form + return model.exceptions[word] + } + // uncompress it + let num = Number(m[1]) || 0; + let pre = word.substr(0, num); + return pre + val.replace(prefix$3, '') + }; + + // get suffix-rules according to last char of word + const getRules = function (word, rules = {}) { + let char = word[word.length - 1]; + let list = rules[char] || []; + // do we have a generic suffix? + if (rules['']) { + list = list.concat(rules['']); + } + return list + }; + + const convert = function (word, model, debug) { + // check list of irregulars + if (model.exceptions.hasOwnProperty(word)) { + if (debug) { + console.log("exception, ", word, model.exceptions[word]); + } + return getKeyVal(word, model) + } + // if model is reversed, try rev rules + let rules = model.rules; + if (model.reversed) { + rules = model.rev; + } + // try suffix rules + rules = getRules(word, rules); + for (let i = 0; i < rules.length; i += 1) { + let suffix = rules[i][0]; + if (word.endsWith(suffix)) { + if (debug) { + console.log("rule, ", rules[i]); + } + let reg = new RegExp(suffix + '$'); + return word.replace(reg, rules[i][1]) + } + } + if (debug) { + console.log(' x - ' + word); + } + // return the original word unchanged + return word + }; + var convert$1 = convert; + + // index rules by last-char + const indexRules = function (rules) { + let byChar = {}; + rules.forEach((a) => { + let suff = a[0] || ''; + let char = suff[suff.length - 1] || ''; + byChar[char] = byChar[char] || []; + byChar[char].push(a); + }); + return byChar + }; + + const prefix$2 = /^([0-9]+)/; + + const expand$2 = function (key = '', val = '') { + val = String(val); + let m = val.match(prefix$2); + if (m === null) { + return [key, val] + } + let num = Number(m[1]) || 0; + let pre = key.substring(0, num); + let full = pre + val.replace(prefix$2, ''); + return [key, full] + }; + + const toArray$2 = function (txt) { + const pipe = /\|/; + return txt.split(/,/).map(str => { + let a = str.split(pipe); + return expand$2(a[0], a[1]) + }) + }; + + const uncompress = function (model = {}) { + model = Object.assign({}, model); + + // compress fwd rules + model.rules = toArray$2(model.rules); + model.rules = indexRules(model.rules); + + // compress reverse rules + if (model.rev) { + model.rev = toArray$2(model.rev); + model.rev = indexRules(model.rev); + } + + // compress exceptions + model.exceptions = toArray$2(model.exceptions); + model.exceptions = model.exceptions.reduce((h, a) => { + h[a[0]] = a[1]; + return h + }, {}); + return model + }; + var uncompress$1 = uncompress; + + // console.log(expand('fixture', '6ing')) + // console.log(toArray('heard|4')) + + const reverseObj = function (obj) { + return Object.entries(obj).reduce((h, a) => { + h[a[1]] = a[0]; + return h + }, {}) + }; + + const reverse = function (model) { + let { rules, exceptions, rev } = model; + exceptions = reverseObj(exceptions); + return { + reversed: !Boolean(model.reversed),//toggle this + rules, + exceptions, + rev + } + }; + var reverse$1 = reverse; + + // import { reverse, uncompress } from '/Users/spencer/mountain/suffix-thumb' + // const uncompress = function () { } + // const reverse = function () { } + const fromPast = uncompress$1(data.PastTense); + const fromPresent = uncompress$1(data.PresentTense); + const fromGerund = uncompress$1(data.Gerund); + const fromParticiple = uncompress$1(data.Participle); + + const toPast$4 = reverse$1(fromPast); + const toPresent$4 = reverse$1(fromPresent); + const toGerund$3 = reverse$1(fromGerund); + const toParticiple = reverse$1(fromParticiple); + + const toComparative = uncompress$1(data.Comparative); + const toSuperlative = uncompress$1(data.Superlative); + const fromComparative = reverse$1(toComparative); + const fromSuperlative = reverse$1(toSuperlative); + + var models = { + fromPast, + fromPresent, + fromGerund, + fromParticiple, + toPast: toPast$4, + toPresent: toPresent$4, + toGerund: toGerund$3, + toParticiple, + // adjectives + toComparative, + toSuperlative, + fromComparative, + fromSuperlative + }; + // console.log(convert('collide', toPast)) + + var regexNormal = [ + //web tags + [/^[\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'], + + // timezones + [/^[PMCE]ST$/, 'Timezone', 'EST'], + + //names + [/^ma?c'.*/, 'LastName', "mc'neil"], + [/^o'[drlkn].*/, 'LastName', "o'connor"], + [/^ma?cd[aeiou]/, 'LastName', 'mcdonald'], + + //slang things + [/^(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/h + [/^(m|k|cm|km)\/(s|h|hr)$/, 'Unit', '5 k/m'], + // μg/g + [/^(ug|ng|mg)\/(l|m3|ft3)$/, 'Unit', 'ug/L'], + ]; + + var regexText = [ + // #coolguy + [/^#[\p{Number}_]*\p{Letter}/u, 'HashTag'],// can't be all numbers + + // @spencermountain + [/^@\w{2,}$/, 'AtMention'], + + // period-ones acronyms - f.b.i. + [/^([A-Z]\.){2}[A-Z]?/i, ['Acronym', 'Noun'], 'F.B.I'], //ascii-only + + // ending-apostrophes + [/.{3}[lkmnp]in['‘’‛‵′`´]$/, 'Gerund', "chillin'"], + [/.{4}s['‘’‛‵′`´]$/, 'Possessive', "flanders'"], + + //from https://www.regextester.com/106421 + // [/^([\u00a9\u00ae\u2319-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/, 'Emoji', 'emoji-range'] + // unicode character range + [/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u, 'Emoji', 'emoji-class'] + ]; + + var 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'], + // times + [/^[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'], //can remove? + + // iso-dates + [/^[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'], + + // timezones + [/^utc ?[+-]?[0-9]+$/, 'Timezone', 'utc-9'], + [/^(gmt|utc)[+-][0-9]{1,2}$/i, 'Timezone', 'gmt-3'], + + //phone numbers + [/^[0-9]{3}-[0-9]{4}$/, 'PhoneNumber', '421-0029'], + [/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/, 'PhoneNumber', '1-800-'], + + + //money + //like $5.30 + [ + /^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u, + ['Money', 'Value'], + '$5.30', + ], + //like 5.30$ + [ + /^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u, + ['Money', 'Value'], + '5.30£', + ], + //like + [/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i, ['Money', 'Value'], '$400usd'], + + //numbers + // 50 | -50 | 3.23 | 5,999.0 | 10+ + [/^[-+]?[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'], + // .73th + [/^\.[0-9]+\+?$/, ['Cardinal', 'NumericValue'], '.73th'], + //percent + [/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/, ['Percent', 'Cardinal', 'NumericValue'], '-4%'], + [/^\.[0-9]+%$/, ['Percent', 'Cardinal', 'NumericValue'], '.3%'], + //fraction + [/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/, ['Fraction', 'NumericValue'], '2/3rds'], + //range + [/^[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 + [/^[0-9.]+([a-z]{1,4})$/, 'Value', '9km'], + ]; + + //nouns that also signal the title of an unknown organization + //todo remove/normalize plural forms + var orgWords$1 = [ + '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', + // 'standard', + 'subcommittee', + 'syndicat', + 'systems', + 'telecommunications', + 'telegraph', + 'television', + 'times', + 'tribunal', + 'tv', + 'union', + 'university', + 'utilities', + 'workers', + ].reduce((h, str) => { + h[str] = true; + return h + }, {}); + + var rules$1 = [ + [/([^v])ies$/i, '$1y'], + [/(ise)s$/i, '$1'],//promises + [/(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'],//causes + [/(ease)s$/i, '$1'],//diseases + [/(ious)es$/i, '$1'],//geniouses + [/(ouse)s$/i, '$1'],//houses + [/(ose)s$/i, '$1'],//roses + + [/(..[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, ''], + ]; + + const invertObj = function (obj) { + return Object.keys(obj).reduce((h, k) => { + h[obj[k]] = k; + return h + }, {}) + }; + + const toSingular$2 = function (str, model) { + const { irregularPlurals } = model.two; + let invert = invertObj(irregularPlurals); //(not very efficient) + // check irregulars list + if (invert.hasOwnProperty(str)) { + return invert[str] + } + // go through our regexes + for (let i = 0; i < rules$1.length; i++) { + if (rules$1[i][0].test(str) === true) { + // console.log(rules[i]) + str = str.replace(rules$1[i][0], rules$1[i][1]); + return str + } + } + return str + }; + var nounToSingular = toSingular$2; + + let guessVerb = { + Gerund: ['ing'], + Actor: ['erer'], + Infinitive: [ + 'ate', + 'ize', + 'tion', + 'rify', + 'then', + 'ress', + 'ify', + 'age', + 'nce', + 'ect', + 'ise', + 'ine', + 'ish', + 'ace', + 'ash', + 'ure', + 'tch', + 'end', + 'ack', + 'and', + 'ute', + 'ade', + 'ock', + 'ite', + 'ase', + 'ose', + 'use', + 'ive', + 'int', + 'nge', + 'lay', + 'est', + 'ain', + 'ant', + 'ent', + 'eed', + 'er', + 'le', + 'unk', + 'ung', + 'upt', + 'en', + ], + PastTense: ['ept', 'ed', 'lt', 'nt', 'ew', 'ld'], + PresentTense: [ + 'rks', + 'cks', + 'nks', + 'ngs', + 'mps', + 'tes', + 'zes', + 'ers', + 'les', + 'acks', + 'ends', + 'ands', + 'ocks', + 'lays', + 'eads', + 'lls', + 'els', + 'ils', + 'ows', + 'nds', + 'ays', + 'ams', + 'ars', + 'ops', + 'ffs', + 'als', + 'urs', + 'lds', + 'ews', + 'ips', + 'es', + 'ts', + 'ns', + ], + Participle: ['ken', 'wn'] + }; + //flip it into a lookup object + guessVerb = Object.keys(guessVerb).reduce((h, k) => { + guessVerb[k].forEach(a => (h[a] = k)); + return h + }, {}); + var guess = guessVerb; + + /** it helps to know what we're conjugating from */ + const getTense$1 = function (str) { + let three = str.substring(str.length - 3); + if (guess.hasOwnProperty(three) === true) { + return guess[three] + } + let two = str.substring(str.length - 2); + if (guess.hasOwnProperty(two) === true) { + return guess[two] + } + let one = str.substring(str.length - 1); + if (one === 's') { + return 'PresentTense' + } + return null + }; + var getTense$2 = getTense$1; + + const toParts = function (str, model) { + let prefix = ''; + let prefixes = {}; + if (model.one && model.one.prefixes) { + prefixes = model.one.prefixes; + } + // pull-apart phrasal verb 'fall over' + let [verb, particle] = str.split(/ /); + // support 'over cleaned' + if (particle && prefixes[verb] === true) { + prefix = verb; + verb = particle; + particle = ''; + } + return { + prefix, verb, particle + } + }; + + + // dunno about these.. + const copulaMap = { + are: 'be', + were: 'be', + been: 'be', + is: 'be', + am: 'be', + was: 'be', + be: 'be', + being: 'be', + }; + + const toInfinitive$6 = function (str, model, tense) { + const { fromPast, fromPresent, fromGerund, fromParticiple } = model.two.models; + // if (str.length < 3) { + // return str + // } + let { prefix, verb, particle } = toParts(str, model); + let inf = ''; + if (!tense) { + tense = getTense$2(str); + } + if (copulaMap.hasOwnProperty(str)) { + inf = copulaMap[str]; + } else if (tense === 'Participle') { + inf = convert$1(verb, fromParticiple); + } else if (tense === 'PastTense') { + inf = convert$1(verb, fromPast); + } else if (tense === 'PresentTense') { + inf = convert$1(verb, fromPresent); + } else if (tense === 'Gerund') { + inf = convert$1(verb, fromGerund); + } else { + return str + } + + // stitch phrasal back on + if (particle) { + inf += ' ' + particle; + } + // stitch prefix back on + if (prefix) { + inf = prefix + ' ' + inf; + } + return inf + }; + var toInfinitive$7 = toInfinitive$6; + + // console.log(toInfinitive('snarled', { one: {} })) + // console.log(convert('snarled', fromPast)) + + // import { toPast, toPresent, toGerund, toParticiple } from '../../../../model/models/index.js' + + // pull-apart phrasal verb 'fall over' + const parse$6 = (inf) => { + if (/ /.test(inf)) { + return inf.split(/ /) + } + return [inf, ''] + }; + + //we run this on every verb in the lexicon, so please keep it fast + //we assume the input word is a proper infinitive + const conjugate = function (inf, model) { + const { toPast, toPresent, toGerund, toParticiple } = model.two.models; + // ad-hoc Copula response + if (inf === 'be') { + return { + Infinitive: inf, + Gerund: 'being', + PastTense: 'was', + PresentTense: 'is', + } + } + let [str, particle] = parse$6(inf); + let found = { + Infinitive: inf, + PastTense: convert$1(str, toPast), + PresentTense: convert$1(str, toPresent), + Gerund: convert$1(str, toGerund), + FutureTense: 'will ' + inf + }; + // add past-participle if it's interesting + // drive -> driven (not drove) + let pastPrt = convert$1(str, toParticiple); + if (pastPrt !== inf && pastPrt !== found.PastTense) { + found.Participle = pastPrt; + } + // put phrasal-verbs back together again + if (particle) { + Object.keys(found).forEach(k => { + found[k] += ' ' + particle; + }); + } + return found + }; + + var conjugate$1 = conjugate; + + // console.log(toPresent.rules.y) + // console.log(convert('buy', toPresent)) + + //sweep-through all suffixes + const suffixLoop$1 = function (str = '', suffixes = []) { + const len = str.length; + let max = len <= 6 ? len - 1 : 6; + for (let i = max; i >= 1; i -= 1) { + let suffix = str.substring(len - i, str.length); + if (suffixes[suffix.length].hasOwnProperty(suffix) === true) { + let pre = str.slice(0, len - i); + let post = suffixes[suffix.length][suffix]; + return pre + post + } + } + return null + }; + var doRules = suffixLoop$1; + + const s = 'ically'; + const ical = new Set([ + 'analyt' + s, //analytical + 'chem' + s,// chemical + 'class' + s, //classical + 'clin' + s, // clinical + 'crit' + s,// critical + 'ecolog' + s,// ecological + 'electr' + s,// electrical + 'empir' + s, // empirical + 'frant' + s, // frantical + 'grammat' + s,// grammatical + 'ident' + s, // identical + 'ideolog' + s, // ideological + 'log' + s, // logical + 'mag' + s, //magical + 'mathemat' + s,// mathematical + 'mechan' + s,// mechanical + 'med' + s,// medical + 'method' + s, // methodical + 'method' + s,// methodical + 'mus' + s, // musical + 'phys' + s, // physical + 'phys' + s,// physical + 'polit' + s,// political + 'pract' + s,// practical + 'rad' + s, //radical + 'satir' + s, // satirical + 'statist' + s, // statistical + 'techn' + s,// technical + 'technolog' + s, // technological + 'theoret' + s,// theoretical + 'typ' + s,// typical + 'vert' + s,// vertical + 'whims' + s,// whimsical + ]); + + const suffixes$3 = [ + 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', + } + ]; + + const noAdj = 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' + ]); + + // exceptions to rules + const exceptions$3 = { + wholly: 'whole', + fully: 'full', + truly: 'true', + gently: 'gentle', + singly: 'single', + customarily: 'customary', + idly: 'idle', + publically: 'public', + quickly: 'fast', + + well: 'good',// -? + }; + + + const toAdjective = function (str) { + if (!str.endsWith('ly')) { + return null + } + // 'electronic' vs 'electronical' + if (ical.has(str)) { + return str.replace(/ically/, 'ical') + } + if (noAdj.has(str)) { + return null + } + if (exceptions$3.hasOwnProperty(str)) { + return exceptions$3[str] + } + return doRules(str, suffixes$3) || str + }; + var advToAdjective = toAdjective; + + // console.log(toAdjective('emphatically')) + // console.log(toAdjective('usually')) + // console.log(toAdjective('mechanically')) + // console.log(toAdjective('vertically')) + + const suffixes$2 = [ + null, + { + y: 'ily' + }, + { + ly: 'ly',//unchanged + ic: 'ically' + }, + { + ial: 'ially', + ual: 'ually', + tle: 'tly', + ble: 'bly', + ple: 'ply', + ary: 'arily', + }, + {}, + {}, + {}, + ]; + + const exceptions$2 = { + cool: 'cooly', + whole: 'wholly', + full: 'fully', + good: 'well', + idle: 'idly', + public: 'publicly', + single: 'singly', + special: 'especially', + }; + + // a lot of adjectives *don't really* have a adverb + // 'roomy' -> 'roomily' + // but here, conjugate what it would be, if it made sense to + const toAdverb = function (str) { + if (exceptions$2.hasOwnProperty(str)) { + return exceptions$2[str] + } + let res = doRules(str, suffixes$2); + if (res) { + return res + } + return str + 'ly' + }; + var adjToAdverb = toAdverb; + // console.log(toAdverb('unsightly')) + + const suffixes$1 = [ + 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',//democratic + 'sing': 'se', + 'iful': 'y',//beautify, merciful + 'ible': 'ibility'//credible + }, + { + 'erate': 'eration' + + }, + { + 'ionate': 'ion' + }, + ]; + + const exceptions$1 = { + 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' + }; + + const dontDo = new Set([ + 'terrible', + 'annoying', + ]); + + // a lot of adjectives *don't really* have a noun-form + // 'broken' -> 'brokeness'? + // 'surreal' -> 'surrealness'? + // but here, conjugate what it would be, if it made sense to + const toNoun = function (str) { + if (exceptions$1.hasOwnProperty(str)) { + return exceptions$1[str] + } + if (dontDo.has(str)) { + return null + } + let res = doRules(str, suffixes$1); + if (res) { + return res + } + return str + 'ness' + }; + var adjToNoun = toNoun; + // console.log(toNoun('clever')) + + const adjToSuperlative = function (adj, model) { + const mod = model.two.models.toSuperlative; + return convert$1(adj, mod) + }; + const adjToComparative = function (adj, model) { + const mod = model.two.models.toComparative; + return convert$1(adj, mod) + }; + const adjFromComparative = function (adj, model) { + const mod = model.two.models.fromComparative; + return convert$1(adj, mod) + }; + const adjFromSuperlative = function (adj, model) { + const mod = model.two.models.fromSuperlative; + return convert$1(adj, mod) + }; + + var transform = { + nounToPlural, nounToSingular, + verbToInfinitive: toInfinitive$7, getTense: getTense$2, + verbConjugate: conjugate$1, + + adjToSuperlative, adjToComparative, adjFromSuperlative, adjFromComparative, + + advToAdjective, adjToAdverb, adjToNoun + }; + + // transformations to make on our lexicon + var fancyThings = { + // add plural forms of singular nouns + Singular: (word, lex, methods, model) => { + let already = model.one.lexicon; + let plural = methods.two.transform.nounToPlural(word, model); + if (!already[plural]) { + lex[plural] = lex[plural] || 'Plural'; + } + }, + + // superlative/ comparative forms for adjectives + Comparable: (word, lex, methods, model) => { + let already = model.one.lexicon; + // fast -> fastest + let sup = methods.two.transform.adjToSuperlative(word, model); + if (!already[sup]) { + lex[sup] = lex[sup] || 'Superlative'; + } + // fast -> faster + let comp = methods.two.transform.adjToComparative(word, model); + if (!already[comp]) { + lex[comp] = lex[comp] || 'Comparative'; + } + // overwrite + lex[word] = 'Adjective'; + }, + + // 'german' -> 'germans' + Demonym: (word, lex, methods, model) => { + let plural = methods.two.transform.nounToPlural(word, model); + lex[plural] = lex[plural] || ['Demonym', 'Plural']; + }, + + // conjugate all forms of these verbs + Infinitive: (word, lex, methods, model) => { + let already = model.one.lexicon; + let all = methods.two.transform.verbConjugate(word, model); + Object.entries(all).forEach(a => { + if (!already[a[1]] && !lex[a[1]]) { + lex[a[1]] = a[0]; + } + }); + }, + + // 'walk up' should conjugate, too + PhrasalVerb: (word, lex, methods, model) => { + let already = model.one.lexicon; + lex[word] = ['PhrasalVerb', 'Infinitive']; + let _multi = model.one._multiCache; + let [inf, rest] = word.split(' '); + // add root verb + if (!already[inf]) { + lex[inf] = lex[inf] || 'Infinitive'; + } + // conjugate it + let all = methods.two.transform.verbConjugate(inf, model); + Object.entries(all).forEach(a => { + // not 'walker up', or 'had taken up' + if (a[0] === 'Actor' || a[1] === '') { + return + } + // add the root verb, alone + if (!lex[a[1]] && !already[a[1]]) { + lex[a[1]] = a[0]; + } + _multi[a[1]] = true; + let str = a[1] + ' ' + rest; + lex[str] = lex[str] || [a[0], 'PhrasalVerb']; + }); + }, + + // expand 'million' + Multiple: (word, lex) => { + lex[word] = ['Multiple', 'Cardinal']; + // 'millionth' + lex[word + 'th'] = ['Multiple', 'Ordinal']; + // 'millionths' + lex[word + 'ths'] = ['Multiple', 'Fraction']; + }, + // expand number-words + Cardinal: (word, lex) => { + lex[word] = ['TextValue', 'Cardinal']; + }, + + // 'millionth' + Ordinal: (word, lex) => { + lex[word] = ['TextValue', 'Ordinal']; + lex[word + 's'] = ['TextValue', 'Fraction']; + }, + }; + + // derive clever things from our lexicon key-value pairs + // this method runs as the pre-tagger plugin gets loaded + const expand$1 = function (words, world) { + const { methods, model } = world; + 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(); + // cache multi-word terms + let split = word.split(/ /); + if (split.length > 1) { + _multi[split[0]] = true; + } + // do any clever-business, by it's tag + if (fancyThings.hasOwnProperty(tag) === true) { + fancyThings[tag](word, lex, methods, model); + } + lex[word] = lex[word] || tag; + }); + // cleanup + delete lex['']; + delete lex[null]; + delete lex[' ']; + return { lex, _multi } + }; + var expandLexicon$2 = expand$1; + + // 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: + 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 + } + // toronto, canada - tuesday, march + if (term.tags.has('Place') || term.tags.has('Date')) { + return false + } + if (terms[i - 1]) { + if (terms[i - 1].tags.has('Date') || maybeDate.has(terms[i - 1].normal)) { + 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 + }; + + // kind-of a dirty sentence chunker + const quickSplit = function (document) { + const splitHere = /[,:;]/; + let arr = []; + document.forEach(terms => { + let start = 0; + terms.forEach((term, i) => { + // does it have a comma/semicolon ? + if (splitHere.test(term.post) && splitOn(terms, i + 1)) { + arr.push(terms.slice(start, i + 1)); + start = i + 1; + } + }); + if (start < terms.length) { + arr.push(terms.slice(start, terms.length)); + } + }); + return arr + }; + + var quickSplit$1 = quickSplit; + + var methods$1 = { + two: { + quickSplit: quickSplit$1, + expandLexicon: expandLexicon$2, + transform, + }, + }; + + // import irregularVerbs from './conjugations.js' + // harvest list of irregulars for any juicy word-data + const expandIrregulars = function (model) { + const { irregularPlurals } = model.two; + const { lexicon } = model.one; + Object.entries(irregularPlurals).forEach(a => { + lexicon[a[0]] = lexicon[a[0]] || 'Singular'; + lexicon[a[1]] = lexicon[a[1]] || 'Plural'; + }); + return model + }; + var expandIrregulars$1 = expandIrregulars; + + const getWords = function (model, left, right) { + return Object.entries(model.exceptions).reduce((h, a) => { + if (left) { + h[a[0]] = left; + } + h[a[1]] = right; + return h + }, {}) + }; + + + const expandModels = function (model) { + let { lexicon } = model.one; + const { toPast, toPresent, toGerund, toSuperlative, toComparative } = model.two.models; + let res = {}; + let words = {}; + // past-tense + words = getWords(toPast, 'Infinitive', 'PastTense'); + Object.assign(res, words); + // present-tense + words = getWords(toPresent, 'Infinitive', 'Verb'); + Object.assign(res, words); + // gerund-form + words = getWords(toGerund, 'Infinitive', 'Gerund'); + Object.assign(res, words); + // superlative + words = getWords(toSuperlative, 'Adjective', 'Superlative'); + Object.assign(res, words); + // comparative + words = getWords(toComparative, 'Adjective', 'Comparative'); + Object.assign(res, words); + + model.one.lexicon = Object.assign(res, lexicon); + + return model + }; + var expandModels$1 = expandModels; + + let tmpModel = { + two: { models } + }; + + // defaults for switches + const switchDefaults = { + // 'amusing' + 'Adj|Gerund': 'Adjective', //+conjugations + // 'standard' + 'Adj|Noun': 'Adjective', + // 'boiled' + 'Adj|Past': 'Adjective', //+conjugations + // 'smooth' + 'Adj|Present': 'Adjective',//+conjugations + // 'box' + 'Noun|Verb': 'Singular', //+conjugations (no-present) + //'singing' + 'Noun|Gerund': 'Gerund', //+conjugations + // 'hope' + 'Person|Noun': 'Noun', + // 'April' + 'Person|Date': 'Month', + // 'rob' + 'Person|Verb': 'Person',//+conjugations + // 'victoria' + 'Person|Place': 'Person', + // 'boxes' + 'Plural|Verb': 'Plural', //(these are already derivative) + }; + + const expandLexicon = function (words, model) { + // do clever tricks to grow the words + const world = { model, methods: methods$1 }; + let { lex, _multi } = methods$1.two.expandLexicon(words, world); + // store multiple-word terms in a cache + Object.assign(model.one.lexicon, lex); + Object.assign(model.one._multiCache, _multi); + return model + }; + + // these words have no singular/plural conjugation + const addUncountables = function (words, model) { + Object.keys(words).forEach(k => { + if (words[k] === 'Uncountable') { + model.two.uncountable[k] = true; + words[k] = 'Uncountable'; + } + }); + return model + }; + + const expandVerb = function (str, words, doPresent) { + let obj = conjugate$1(str, tmpModel); + words[obj.PastTense] = words[obj.PastTense] || 'PastTense'; + words[obj.Gerund] = words[obj.Gerund] || 'Gerund'; + if (doPresent === true) { + // is this plural noun, or present-tense? + words[obj.PresentTense] = words[obj.PresentTense] || 'PresentTense'; + } + }; + + const expandAdjective = function (str, words, model) { + let sup = adjToSuperlative(str, model); + words[sup] = words[sup] || 'Superlative'; + let comp = adjToComparative(str, model); + words[comp] = words[comp] || 'Comparative'; + }; + + // harvest ambiguous words for any conjugations + const expandVariable = function (switchWords, model) { + let words = {}; + const lex = model.one.lexicon; + //add first tag as an assumption for each variable word + Object.keys(switchWords).forEach(w => { + const name = switchWords[w]; + words[w] = switchDefaults[name]; + // conjugate some verbs + if (name === 'Noun|Verb' || name === 'Person|Verb') { + expandVerb(w, lex, false); + } + if (name === 'Adj|Present') { + expandVerb(w, lex, true); + expandAdjective(w, lex, model); + } + if (name === 'Adj|Gerund' || name === 'Noun|Gerund') { + let inf = toInfinitive$7(w, tmpModel, 'Gerund'); + if (!lex[inf]) { + words[inf] = 'Infinitive'; //expand it later + } + } + if (name === 'Adj|Past') { + let inf = toInfinitive$7(w, tmpModel, 'PastTense'); + if (!lex[inf]) { + words[inf] = 'Infinitive'; //expand it later + } + } + }); + // add conjugations + model = expandLexicon(words, model); + return model + }; + + const expand = function (model) { + model = expandLexicon(model.one.lexicon, model); + model = addUncountables(model.one.lexicon, model); + model = expandVariable(model.two.switches, model); + model = expandModels$1(model); + model = expandIrregulars$1(model); + return model + }; + var expandLexicon$1 = expand; + + let model$1 = { + one: { + _multiCache: {}, + lexicon, + }, + two: { + irregularPlurals, + models, + + suffixPatterns, + prefixPatterns, + endsWith, + neighbours: neighbours$2, + + regexNormal, + regexText, + regexNumbers, + + switches, + clues: clues$1, + + uncountable: {}, + + orgWords: orgWords$1, + }, + + }; + model$1 = expandLexicon$1(model$1); + var model$2 = model$1; + + // console.log(model.one.lexicon.see) + + const prefix$1 = /^(under|over|mis|re|un|dis|semi)-?/; + + const tagSwitch = function (terms, i, model) { + const switches = model.two.switches; + let term = terms[i]; + if (switches.hasOwnProperty(term.normal)) { + term.switch = switches[term.normal]; + return + } + // support 'restrike' -> 'strike' + if (prefix$1.test(term.normal)) { + let stem = term.normal.replace(prefix$1, ''); + if (stem.length > 3 && switches.hasOwnProperty(stem)) { + term.switch = switches[stem]; + } + } + }; + var tagSwitch$1 = tagSwitch; + + // verbose-mode tagger debuging + const log = (term, 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 + ']'; + 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(22)} ${i(reason)}`); // eslint-disable-line + }; + + // a faster version than the user-facing one in ./methods + const setTag = function (term, tag, reason) { + if (!tag || tag.length === 0) { + return + } + // some logging for debugging + const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; + if (env && env.DEBUG_TAGS) { + log(term, tag, reason); + } + term.tags = term.tags || new Set(); + if (typeof tag === 'string') { + term.tags.add(tag); + } else { + tag.forEach(tg => term.tags.add(tg)); + } + }; + + var fastTag = setTag; + + //similar to plural/singularize rules, but not the same + const isPlural$4 = { + e: [ + 'mice', + 'louse', + 'antennae', + 'formulae', + 'nebulae', + 'vertebrae', + 'vitae', + ], + i: [ + 'tia', + 'octopi', + 'viri', + 'radii', + 'nuclei', + 'fungi', + 'cacti', + 'stimuli', + ], + n: [ + 'men', + ] + }; + // plural words as exceptions to suffix-rules + const exceptions = new Set([ + 'formulas', + 'koalas', + 'israelis', + 'menus', + ]); + + const notPlural$1 = [ + 'bus', + 'mas',//christmas + 'was', + 'las', + 'ias',//alias + 'xas', + 'vas', + 'cis',//probocis + 'lis', + 'nis',//tennis + 'ois', + 'ris', + 'sis',//thesis + 'tis',//mantis, testis + 'xis', + 'aus', + 'cus', + 'eus',//nucleus + 'fus',//doofus + 'gus',//fungus + 'ius',//radius + 'lus',//stimulus + 'nus', + 'ous', + 'pus',//octopus + 'rus',//virus + 'sus',//census + 'tus',//status,cactus + 'xus', + '\'s', + 'ss', + ]; + + const looksPlural = function (str) { + // not long enough to be plural + if (!str || str.length <= 3) { + return false + } + // 'menus' etc + if (exceptions.has(str)) { + return true + } + let end = str[str.length - 1]; + // look at 'firemen' + if (isPlural$4.hasOwnProperty(end)) { + return isPlural$4[end].find(suff => str.endsWith(suff)) + } + if (end !== 's') { + return false + } + // look for 'virus' + if (notPlural$1.find(suff => str.endsWith(suff))) { + return false + } + // ends with an s, seems plural i guess. + return true + }; + var looksPlural$1 = looksPlural; + + // tags that are neither plural or singular + const uncountable = [ + 'Acronym', + 'Abbreviation', + 'ProperNoun', + 'Uncountable', + 'Possessive', + 'Pronoun', + 'Activity', + 'Honorific', + ]; + // try to guess if each noun is a plural/singular + const setPluralSingular = function (term) { + if (!term.tags.has('Noun') || term.tags.has('Plural') || term.tags.has('Singular') || term.tags.has('Date')) { + return + } + if (uncountable.find(tag => term.tags.has(tag))) { + return + } + if (looksPlural$1(term.normal)) { + fastTag(term, 'Plural', '3-plural-guess'); + } else { + fastTag(term, 'Singular', '3-singular-guess'); + } + }; + + // try to guess the tense of a naked verb + const setTense = function (term) { + let tags = term.tags; + if (tags.has('Verb') && tags.size === 1) { + let guess = getTense$2(term.normal); + if (guess) { + fastTag(term, guess, '3-verb-tense-guess'); + } + } + }; + + //add deduced parent tags to our terms + const fillTags = function (terms, i, model) { + let term = terms[i]; + //there is probably just one tag, but we'll allow more + let tags = Array.from(term.tags); + 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]}`); + } + } + // turn 'Noun' into Plural/Singular + setPluralSingular(term); + // turn 'Verb' into Present/PastTense + setTense(term); + }; + var fillTags$1 = fillTags; + + const titleCase$1 = /^\p{Lu}[\p{Ll}'’]/u; + const hasNumber = /[0-9]/; + + const notProper = ['Date', 'Month', 'WeekDay', 'Unit']; + + // https://stackoverflow.com/a/267405/168877 + const romanNumeral = /^[IVXLCDM]{2,}$/; + const romanNumValid = /^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/; + const nope = { + li: true, + dc: true, + md: true, + dm: true, + ml: true, + }; + + + // if it's a unknown titlecase word, it's a propernoun + const checkCase = function (terms, i, model) { + let term = terms[i]; + // assume terms are already indexed + term.index = term.index || [0, 0]; + let index = term.index[1]; + let str = term.text || ''; //need case info + // titlecase and not first word of sentence + if (index !== 0 && titleCase$1.test(str) === true && hasNumber.test(str) === false) { + if (notProper.find(tag => term.tags.has(tag))) { + return null + } + fillTags$1(terms, i, model); + if (!term.tags.has('Noun')) { + term.tags.clear(); + } + fastTag(term, 'ProperNoun', '2-titlecase'); + return true + } + //roman numberals - XVII + if (str.length >= 2 && romanNumeral.test(str) && romanNumValid.test(str) && !nope[term.normal]) { + fastTag(term, 'RomanNumeral', '2-xvii'); + return true + } + + return null + }; + var checkCase$1 = checkCase; + + //sweep-through all suffixes + const suffixLoop = function (str = '', suffixes = []) { + const len = str.length; + let max = 7; + if (len <= max) { + max = len - 1; + } + for (let i = max; i > 1; i -= 1) { + let suffix = str.substring(len - i, len); + if (suffixes[suffix.length].hasOwnProperty(suffix) === true) { + // console.log(suffix) + let tag = suffixes[suffix.length][suffix]; + return tag + } + } + return null + }; + + // decide tag from the ending of the word + const tagBySuffix = function (terms, i, model) { + let term = terms[i]; + if (term.tags.size === 0) { + let tag = suffixLoop(term.normal, model.two.suffixPatterns); + if (tag !== null) { + fastTag(term, tag, '2-suffix'); + term.confidence = 0.7; + return true + } + // try implicit form of word, too + if (term.implicit) { + tag = suffixLoop(term.implicit, model.two.suffixPatterns); + if (tag !== null) { + fastTag(term, tag, '2-implicit-suffix'); + term.confidence = 0.7; + return true + } + } + // Infinitive suffix + 's' can be PresentTense + // if (term.normal[term.normal.length - 1] === 's') { + // let str = term.normal.replace(/s$/, '') + // if (suffixLoop(str, model.two.suffixPatterns) === 'Infinitive') { + // console.log(str) + // fastTag(term, 'PresentTense', '2-implied-present') + // term.confidence = 0.5 + // return true + // } + // } + } + return null + }; + var checkSuffix = tagBySuffix; + + const hasApostrophe = /['‘’‛‵′`´]/; + + // normal regexes + const doRegs = function (str, regs) { + for (let i = 0; i < regs.length; i += 1) { + if (regs[i][0].test(str) === true) { + return regs[i] + } + } + return null + }; + // suffix-regexes, indexed by last-character + const doEndsWith = function (str = '', byEnd) { + let char = str[str.length - 1]; + if (byEnd.hasOwnProperty(char) === true) { + let regs = byEnd[char] || []; + for (let r = 0; r < regs.length; r += 1) { + if (regs[r][0].test(str) === true) { + return regs[r] + } + } + } + return null + }; + + const checkRegex = function (terms, i, model, world) { + const setTag = world.methods.one.setTag; + let { regexText, regexNormal, regexNumbers, endsWith } = model.two; + let term = terms[i]; + let normal = term.machine || term.normal; + let text = term.text; + // keep dangling apostrophe? + if (hasApostrophe.test(term.post) && !hasApostrophe.test(term.pre)) { + text += term.post.trim(); + } + let arr = doRegs(text, regexText) || doRegs(normal, regexNormal); + // hide a bunch of number regexes behind this one + if (!arr && /[0-9]/.test(normal)) { + arr = doRegs(normal, regexNumbers); + } + // only run endsWith if we're desperate + if (!arr && term.tags.size === 0) { + arr = doEndsWith(normal, endsWith); + } + if (arr) { + setTag([term], arr[1], world, null, `2-regex-'${arr[2] || arr[0]}'`); + term.confidence = 0.6; + return true + } + return null + }; + var checkRegex$1 = checkRegex; + + // const prefixes = /^(anti|re|un|non|extra|inter|intra|over)([a-z-]{3})/ + + //sweep-through all prefixes + const prefixLoop = function (str = '', prefixes = []) { + const len = str.length; + let max = 7; + if (max > len - 3) { + max = len - 3; + } + for (let i = max; i > 2; i -= 1) { + let prefix = str.substring(0, i); + if (prefixes[prefix.length].hasOwnProperty(prefix) === true) { + let tag = prefixes[prefix.length][prefix]; + return tag + } + } + return null + }; + + // give 'overwork' the same tag as 'work' + const checkPrefix = function (terms, i, model) { + let term = terms[i]; + if (term.tags.size === 0) { + let tag = prefixLoop(term.normal, model.two.prefixPatterns); + if (tag !== null) { + // console.log(term.normal, '->', tag) + fastTag(term, tag, '2-prefix'); + term.confidence = 0.5; + return true + } + } + return null + }; + var checkPrefix$1 = checkPrefix; + + const min = 1400; + const max = 2100; + + 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 + } + 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') || term.tags.has('Year')) { + return true + } + // 1999 Film Festival + if (term.tags.has('ProperNoun')) { + return true + } + return false + }; + + const seemsOkay = function (term) { + if (!term) { + return false + } + 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]; + if (term.tags.has('NumericValue') && term.tags.has('Cardinal') && term.normal.length === 4) { + let num = Number(term.normal); + // number between 1400 and 2100 + if (num && !isNaN(num)) { + if (num > min && num < max) { + 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 >= 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') + } + } + } + } + } + } + return null + }; + + var checkYear = tagYear; + + const oneLetterAcronym = /^[A-Z]('s|,)?$/; + const isUpperCase = /^[A-Z-]+$/; + const periodAcronym = /([A-Z]\.)+[A-Z]?,?$/; + const noPeriodAcronym = /[A-Z]{2,}('s|,)?$/; + const lowerCaseAcronym = /([a-z]\.)+[a-z]\.?$/; + + const oneLetterWord = { + I: true, + A: true, + }; + // just uppercase acronyms, no periods - 'UNOCHA' + const isNoPeriodAcronym = function (term, model) { + let str = term.text; + // ensure it's all upper-case + if (isUpperCase.test(str) === false) { + return false + } + // long capitalized words are not usually either + if (str.length > 5) { + return false + } + // 'I' is not a acronym + if (oneLetterWord.hasOwnProperty(str)) { + return false + } + // known-words, like 'PIZZA' is not an acronym. + if (model.one.lexicon.hasOwnProperty(term.normal)) { + return false + } + //like N.D.A + if (periodAcronym.test(str) === true) { + return true + } + //like c.e.o + if (lowerCaseAcronym.test(str) === true) { + return true + } + //like 'F.' + if (oneLetterAcronym.test(str) === true) { + return true + } + //like NDA + if (noPeriodAcronym.test(str) === true) { + return true + } + return false + }; + + const isAcronym = function (terms, i, model) { + let term = terms[i]; + //these are not acronyms + if (term.tags.has('RomanNumeral') || term.tags.has('Acronym')) { + return null + } + //non-period ones are harder + if (isNoPeriodAcronym(term, model)) { + term.tags.clear(); + fastTag(term, ['Acronym', 'Noun'], '3-no-period-acronym'); + return true + } + // one-letter acronyms + if (!oneLetterWord.hasOwnProperty(term.text) && oneLetterAcronym.test(term.text)) { + term.tags.clear(); + fastTag(term, ['Acronym', 'Noun'], '3-one-letter-acronym'); + return true + } + //if it's a very-short organization? + if (term.tags.has('Organization') && term.text.length <= 3) { + fastTag(term, 'Acronym', '3-org-acronym'); + return true + } + // upper-case org, like UNESCO + if (term.tags.has('Organization') && isUpperCase.test(term.text) && term.text.length <= 6) { + fastTag(term, 'Acronym', '3-titlecase-acronym'); + return true + } + return null + }; + var checkAcronym = isAcronym; + + const lookAtWord = function (term, words) { + if (!term) { + return null + } + // look at prev word <- + let found = words.find(a => term.normal === a[0]); + if (found) { + return found[1] + } + return null + }; + + const lookAtTag = function (term, tags) { + if (!term) { + return null + } + let found = tags.find(a => term.tags.has(a[0])); + if (found) { + return found[1] + } + return null + }; + + // look at neighbours for hints on unknown words + const neighbours = function (terms, i, model) { + const { leftTags, leftWords, rightWords, rightTags } = model.two.neighbours; + let term = terms[i]; + if (term.tags.size === 0) { + let tag = null; + // look left <- + tag = tag || lookAtWord(terms[i - 1], leftWords); + // look right -> + tag = tag || lookAtWord(terms[i + 1], rightWords); + // look left <- + tag = tag || lookAtTag(terms[i - 1], leftTags); + // look right -> + tag = tag || lookAtTag(terms[i + 1], rightTags); + if (tag) { + fastTag(term, tag, '3-[neighbour]'); + fillTags$1(terms, i, model); + terms[i].confidence = 0.2; + return true + } + } + return null + }; + var neighbours$1 = neighbours; + + const isTitleCase = (str) => /^\p{Lu}[\p{Ll}'’]/u.test(str); + + const isOrg = function (term, i) { + if (!term) { + return false + } + if (term.tags.has('FirstName') || term.tags.has('Place')) { + return false + } + if (term.tags.has('ProperNoun') || term.tags.has('Organization') || term.tags.has('Acronym')) { + return true + } + // allow anything titlecased to be an org + if (isTitleCase(term.text)) { + // only tag a titlecased first-word, if it checks-out + if (i === 0) { + return term.tags.has('Singular') + } + return true + } + return false + }; + + const tagOrgs = function (terms, i, world) { + const orgWords = world.model.two.orgWords; + const setTag = world.methods.one.setTag; + let term = terms[i]; + let str = term.machine || term.normal; + if (orgWords[str] === true && isOrg(terms[i - 1])) { + setTag([terms[i]], 'Organization', world, null, '3-[org-word]'); + // loop backwards, tag organization-like things + for (let t = i; t >= 0; t -= 1) { + if (isOrg(terms[t], t)) { + setTag([terms[t]], 'Organization', world, null, '3-[org-word]'); + } else { + break + } + } + } + return null + }; + var orgWords = tagOrgs; + + const nounFallback = function (terms, i, model) { + if (terms[i].tags.size === 0) { + fastTag(terms[i], 'Noun', '3-[fallback]'); + // try to give it singluar/plural tags, too + fillTags$1(terms, i, model); + terms[i].confidence = 0.1; + } + }; + var nounFallback$1 = nounFallback; + + const isCapital = (terms, i) => { + if (terms[i].tags.has('ProperNoun')) {// 'Comfort Inn' + return 'Noun' + } + return null + }; + const isAloneVerb = (terms, i, tag) => { + if (i === 0 && !terms[1]) {// 'Help' + return tag + } + return null + }; + + const adhoc = { + 'Adj|Gerund': (terms, i) => { + return isCapital(terms, i) + }, + 'Adj|Noun': (terms, i) => { + return isCapital(terms, i) + }, + 'Adj|Past': (terms, i) => { + return isCapital(terms, i) + }, + 'Adj|Present': (terms, i) => { + return isCapital(terms, i) + }, + 'Noun|Gerund': (terms, i) => { + return isCapital(terms, i) + }, + 'Noun|Verb': (terms, i) => { + return isCapital(terms, i) || isAloneVerb(terms, i, 'Infinitive') + }, + 'Plural|Verb': (terms, i) => { + return isCapital(terms, i) || isAloneVerb(terms, i, 'PresentTense') + }, + 'Person|Noun': (terms, i) => { + return isCapital(terms, i) + }, + 'Person|Verb': (terms, i) => { + return i !== 0 && isCapital(terms, i) + }, + }; + var adhoc$1 = adhoc; + + const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; // eslint-disable-line + const prefix = /^(under|over|mis|re|un|dis|semi)-?/; + + const checkWord = (term, obj) => { + if (!term || !obj) { + return null + } + let str = term.normal || term.implicit; + const found = obj[str]; + if (found && env.DEBUG_TAGS) { + console.log(`\n \x1b[2m\x1b[3m ↓ - '${str}' \x1b[0m`);//eslint-disable-line + } + return found + }; + + const checkTag = (term, obj = {}, tagSet) => { + if (!term || !obj) { + return null + } + // rough sort, so 'Noun' is after ProperNoun, etc + let tags = Array.from(term.tags).sort((a, b) => { + let numA = tagSet[a] ? tagSet[a].parents.length : 0; + let numB = tagSet[b] ? tagSet[b].parents.length : 0; + return numA > numB ? -1 : 1 + }); + 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 + } + found = obj[found]; + return found + }; + + const pickTag = function (terms, i, clues, model) { + if (!clues) { + return null + } + const tagSet = model.one.tagSet; + // look -> right word, first + let tag = checkWord(terms[i + 1], clues.afterWords); + // look <- left word, second + tag = tag || checkWord(terms[i - 1], clues.beforeWords); + // look <- left tag + tag = tag || checkTag(terms[i - 1], clues.beforeTags, tagSet); + // look -> right tag + tag = tag || checkTag(terms[i + 1], clues.afterTags, tagSet); + // console.log(clues) + return tag + }; + + // words like 'bob' that can change between two tags + const doSwitches = function (terms, i, world) { + const model = world.model; + const setTag = world.methods.one.setTag; + const { switches, clues } = model.two; + const term = terms[i]; + let str = term.normal || term.implicit || ''; + // support prefixes for switching words + if (prefix.test(str) && !switches[str]) { + str = str.replace(prefix, ''); // could use some guards, here + } + if (term.switch) { + let form = term.switch; + // skip propernouns, acronyms, etc + if (term.tags.has('Acronym') || term.tags.has('PhrasalVerb')) { + return + } + let tag = pickTag(terms, i, clues[form], model); + // lean-harder on some variable forms + if (adhoc$1[form]) { + tag = adhoc$1[form](terms, i) || tag; + } + // did we find anything? + if (tag) { + // setTag(term, tag, model) + setTag([term], tag, world, null, `3-[variable] (${form})`); + } else if (env.DEBUG_TAGS) { + console.log(`\n -> X - '${str}' : ${form} `);//eslint-disable-line + } + } + }; + var variables = doSwitches; + + // 'out lived' is a verb-phrase + // 'over booked' is too + // 'macro-nutrient', too + const doPrefix = function (terms, i, model) { + let nextTerm = terms[i + 1]; + if (!nextTerm) { + return + } + let { prefixes } = model.one; + let term = terms[i]; + + // word like 'over' + if (prefixes[term.normal] === true) { + // 'over cooked' + if (nextTerm.tags.has('Verb')) { + fastTag(term, 'Verb', '3-[prefix]'); + fastTag(term, 'Prefix', '3-[prefix]'); + } + // 'pseudo clean' + if (nextTerm.tags.has('Adjective')) { + fastTag(term, 'Adjective', '3-[prefix]'); + fastTag(term, 'Prefix', '3-[prefix]'); + } + } + + }; + var checkHyphen = doPrefix; + + const second = { + tagSwitch: tagSwitch$1, + checkSuffix, + checkRegex: checkRegex$1, + checkCase: checkCase$1, + checkPrefix: checkPrefix$1, + checkHyphen, + checkYear, + }; + + const third = { + checkAcronym, + neighbours: neighbours$1, + orgWords, + nounFallback: nounFallback$1, + variables, + }; + + // + // these methods don't care about word-neighbours + const secondPass = function (terms, model, world) { + for (let i = 0; i < terms.length; i += 1) { + // mark Noun|Verb on term metadata + second.tagSwitch(terms, i, model); + // is it titlecased? + second.checkCase(terms, i, model); + // look at word ending + second.checkSuffix(terms, i, model); + // try look-like rules + second.checkRegex(terms, i, model, world); + // check for recognized prefix, like 'micro-' + second.checkPrefix(terms, i, model); + // turn '1993' into a year + second.checkYear(terms, i, model); + } + }; + + const thirdPass = function (terms, model, world) { + for (let i = 0; i < terms.length; i += 1) { + // let these tags get layered + let found = third.checkAcronym(terms, i, model); + // deduce parent tags + fillTags$1(terms, i, model); + // look left+right for hints + found = found || third.neighbours(terms, i, model); + // ¯\_(ツ)_/¯ - found nothing + found = found || third.nounFallback(terms, i, model); + } + for (let i = 0; i < terms.length; i += 1) { + // Johnson LLC + third.orgWords(terms, i, world); + // support 'out-lived' + second.checkHyphen(terms, i, model); + // verb-noun disambiguation, etc + third.variables(terms, i, world); + } + }; + + const preTagger = function (view) { + const { methods, model, world } = view; + // assign known-words + // view.compute('lexicon') + // roughly split sentences up by clause + let document = methods.two.quickSplit(view.docs); + // start with all terms + for (let n = 0; n < document.length; n += 1) { + let terms = document[n]; + // firstPass(terms, model) + // guess by the letters + secondPass(terms, model, world); + // guess by the neighbours + thirdPass(terms, model, world); + } + // leave a nice cache for the next people + view.compute('cache'); + return document + }; + + var preTagger$1 = preTagger; + + const toRoot$1 = { + // 'spencer's' -> 'spencer' + 'Possessive': (term) => { + let str = term.machine || term.normal || term.text; + str = str.replace(/'s$/, ''); + return str + }, + // 'drinks' -> 'drink' + 'Plural': (term, world) => { + let str = term.machine || term.normal || term.text; + return world.methods.two.transform.nounToSingular(str, world.model) + }, + // '' + 'Copula': () => { + return 'is' + }, + // 'walked' -> 'walk' + 'PastTense': (term, world) => { + let str = term.machine || term.normal || term.text; + return world.methods.two.transform.verbToInfinitive(str, world.model, 'PastTense') + }, + // 'walking' -> 'walk' + 'Gerund': (term, world) => { + let str = term.machine || term.normal || term.text; + return world.methods.two.transform.verbToInfinitive(str, world.model, 'Gerund') + }, + // 'walks' -> 'walk' + 'PresentTense': (term, world) => { + let str = term.machine || term.normal || term.text; + if (term.tags.has('Infinitive')) { + return str + } + return world.methods.two.transform.verbToInfinitive(str, world.model, 'PresentTense') + }, + // 'quieter' -> 'quiet' + 'Comparative': (term, world) => { + let str = term.machine || term.normal || term.text; + return world.methods.two.transform.adjFromComparative(str, world.model) + }, + // 'quietest' -> 'quiet' + 'Superlative': (term, world) => { + let str = term.machine || term.normal || term.text; + return world.methods.two.transform.adjFromSuperlative(str, world.model) + }, + // 'suddenly' -> 'sudden' + 'Adverb': (term, world) => { + const toAdj = world.methods.two.transform.advToAdjective; + let str = term.machine || term.normal || term.text; + return toAdj(str) + }, + }; + + const getRoot$2 = function (view) { + const world = view.world; + const keys = Object.keys(toRoot$1); + view.docs.forEach(terms => { + for (let i = 0; i < terms.length; i += 1) { + const term = terms[i]; + for (let k = 0; k < keys.length; k += 1) { + if (term.tags.has(keys[k])) { + const fn = toRoot$1[keys[k]]; + let root = fn(term, world); + if (term.normal !== root) { + term.root = root; + } + break + } + } + } + }); + }; + var root = getRoot$2; + + // rough connection between compromise tagset and Penn Treebank + // https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html + + const mapping$1 = { + // adverbs + // 'Comparative': 'RBR', + // 'Superlative': 'RBS', + 'Adverb': 'RB', + + // adjectives + 'Comparative': 'JJR', + 'Superlative': 'JJS', + 'Adjective': 'JJ', + 'TO': 'Conjunction', + + // verbs + 'Modal': 'MD', + 'Auxiliary': 'MD', + 'Gerund': 'VBG', //throwing + 'PastTense': 'VBD', //threw + 'Participle': 'VBN', //thrown + 'PresentTense': 'VBZ', //throws + 'Infinitive': 'VB', //throw + 'Particle': 'RP', //phrasal particle + 'Verb': 'VB', // throw + + // pronouns + 'Pronoun': 'PRP', + + // misc + 'Cardinal': 'CD', + 'Conjunction': 'CC', + 'Determiner': 'DT', + 'Preposition': 'IN', + // 'Determiner': 'WDT', + // 'Expression': 'FW', + 'QuestionWord': 'WP', + 'Expression': 'UH', + + //nouns + 'Possessive': 'POS', + 'ProperNoun': 'NNP', + 'Person': 'NNP', + 'Place': 'NNP', + 'Organization': 'NNP', + 'Singular': 'NNP', + 'Plural': 'NNS', + 'Noun': 'NN', + + // 'Noun':'EX', //'there' + // 'Adverb':'WRB', + // 'Noun':'PDT', //predeterminer + // 'Noun':'SYM', //symbol + // 'Noun':'NFP', // + + // WDT Wh-determiner + // WP Wh-pronoun + // WP$ Possessive wh-pronoun + // WRB Wh-adverb + }; + + const toPenn = function (term) { + // try some ad-hoc ones + if (term.tags.has('ProperNoun') && term.tags.has('Plural')) { + return 'NNPS' + } + if (term.tags.has('Possessive') && term.tags.has('Pronoun')) { + return 'PRP$' + } + if (term.normal === 'there') { + return 'EX' + } + if (term.normal === 'to') { + return 'TO' + } + // run through an ordered list of tags + let arr = term.tagRank || []; + for (let i = 0; i < arr.length; i += 1) { + if (mapping$1.hasOwnProperty(arr[i])) { + return mapping$1[arr[i]] + } + } + return null + }; + + const pennTag = function (view) { + view.compute('tagRank'); + view.docs.forEach(terms => { + terms.forEach(term => { + term.penn = toPenn(term); + }); + }); + }; + var penn = pennTag; + + var compute$3 = { preTagger: preTagger$1, root, penn }; + + const entity = ['Person', 'Place', 'Organization']; + + var nouns$1 = { + Noun: { + not: ['Verb', 'Adjective', 'Adverb', 'Value', 'Determiner'], + }, + Singular: { + is: 'Noun', + not: ['Plural', 'Uncountable'], + }, + // 'Canada' + ProperNoun: { + is: 'Noun', + }, + Person: { + is: 'Singular', + also: ['ProperNoun'], + not: ['Place', 'Organization', 'Date'], + }, + FirstName: { + is: 'Person', + }, + MaleName: { + is: 'FirstName', + not: ['FemaleName', 'LastName'], + }, + FemaleName: { + is: 'FirstName', + not: ['MaleName', 'LastName'], + }, + LastName: { + is: 'Person', + not: ['FirstName'], + }, + // 'dr.' + Honorific: { + is: 'Noun', + not: ['FirstName', 'LastName', 'Value'], + }, + Place: { + is: 'Singular', + not: ['Person', 'Organization'], + }, + Country: { + is: 'Place', + also: ['ProperNoun'], + not: ['City'], + }, + City: { + is: 'Place', + also: ['ProperNoun'], + not: ['Country'], + }, + // 'california' + Region: { + is: 'Place', + also: ['ProperNoun'], + }, + Address: { + // is: 'Place', + }, + Organization: { + is: 'ProperNoun', + not: ['Person', 'Place'], + }, + SportsTeam: { + is: 'Organization', + }, + School: { + is: 'Organization', + }, + Company: { + is: 'Organization', + }, + Plural: { + is: 'Noun', + not: ['Singular', 'Uncountable'], + }, + // 'gravity' + Uncountable: { + is: 'Noun', + }, + // 'it' + Pronoun: { + is: 'Noun', + not: entity, + }, + // 'swimmer' + Actor: { + is: 'Noun', + not: entity, + }, + // walking + Activity: { + is: 'Noun', + not: ['Person', 'Place'], + }, + // kilometres + Unit: { + is: 'Noun', + not: entity, + }, + // canadian + Demonym: { + is: 'Noun', + also: ['ProperNoun'], + not: entity, + }, + // [spencer's] hat + Possessive: { + is: 'Noun', + }, + // 'yourself' + Reflexive: { + is: 'Pronoun', + }, + }; + + var verbs$2 = { + Verb: { + not: ['Noun', 'Adjective', 'Adverb', 'Value', 'Expression'], + }, + // 'he [walks]' + PresentTense: { + is: 'Verb', + not: ['PastTense'], + }, + // 'will [walk]' + Infinitive: { + is: 'PresentTense', + not: ['Gerund'], + }, + // '[walk] now!' + Imperative: { + is: 'Infinitive', + }, + // walking + Gerund: { + is: 'PresentTense', + not: ['Copula'], + }, + // walked + PastTense: { + is: 'Verb', + not: ['PresentTense', 'Gerund'], + }, + // is/was + Copula: { + is: 'Verb', + }, + // '[could] walk' + Modal: { + is: 'Verb', + not: ['Infinitive'], + }, + // 'awaken' + Participle: { + is: 'PastTense', + }, + // '[will have had] walked' + Auxiliary: { + is: 'Verb', + not: ['PastTense', 'PresentTense', 'Gerund', 'Conjunction'], + }, + // 'walk out' + PhrasalVerb: { + is: 'Verb', + }, + // 'walk [out]' + Particle: { + is: 'PhrasalVerb', + not: ['PastTense', 'PresentTense', 'Copula', 'Gerund'], + }, + }; + + var values = { + Value: { + not: ['Verb', 'Adjective', 'Adverb'], + }, + Ordinal: { + is: 'Value', + not: ['Cardinal'], + }, + Cardinal: { + is: 'Value', + not: ['Ordinal'], + }, + Fraction: { + is: 'Value', + not: ['Noun'], + }, + Multiple: { + is: 'TextValue', + }, + RomanNumeral: { + is: 'Cardinal', + not: ['TextValue'], + }, + TextValue: { + is: 'Value', + not: ['NumericValue'], + }, + NumericValue: { + is: 'Value', + not: ['TextValue'], + }, + Money: { + is: 'Cardinal', + }, + Percent: { + is: 'Value', + }, + }; + + var dates$1 = { + Date: { + not: ['Verb', 'Adverb', 'Adjective'], + }, + Month: { + is: 'Singular', + also: ['Date'], + not: ['Year', 'WeekDay', 'Time'], + }, + WeekDay: { + is: 'Noun', + also: ['Date'], + }, + Year: { + is: 'Date', + not: ['RomanNumeral'], + }, + FinancialQuarter: { + is: 'Date', + not: 'Fraction', + }, + // 'easter' + Holiday: { + is: 'Date', + also: ['Noun'], + }, + // 'summer' + Season: { + is: 'Date', + }, + Timezone: { + is: 'Noun', + also: ['Date'], + not: ['ProperNoun'], + }, + Time: { + is: 'Date', + not: ['AtMention'], + }, + // 'months' + Duration: { + is: 'Date', + also: ['Noun'], + }, + }; + + const anything = ['Noun', 'Verb', 'Adjective', 'Adverb', 'Value', 'QuestionWord']; + + var misc$2 = { + Adjective: { + not: ['Noun', 'Verb', 'Adverb', 'Value'], + }, + Comparable: { + is: 'Adjective', + }, + Comparative: { + is: 'Adjective', + }, + Superlative: { + is: 'Adjective', + not: ['Comparative'], + }, + NumberRange: {}, + Adverb: { + not: ['Noun', 'Verb', 'Adjective', 'Value'], + }, + + Determiner: { + not: ['Noun', 'Verb', 'Adjective', 'Adverb', 'QuestionWord', 'Conjunction'], //allow 'a' to be a Determiner/Value + }, + Conjunction: { + not: anything, + }, + Preposition: { + not: ['Noun', 'Verb', 'Adjective', 'Adverb', 'QuestionWord', 'Determiner'], + }, + QuestionWord: { + not: ['Determiner'], + }, + Currency: { + is: 'Noun', + }, + Expression: { + not: ['Noun', 'Adjective', 'Verb', 'Adverb'], + }, + Abbreviation: {}, + Url: { + not: ['HashTag', 'PhoneNumber', 'Verb', 'Adjective', 'Value', 'AtMention', 'Email'], + }, + PhoneNumber: { + not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention', 'Email'], + }, + HashTag: {}, + AtMention: { + is: 'Noun', + not: ['HashTag', 'Email'], + }, + Emoji: { + not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention'], + }, + Emoticon: { + not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention'], + }, + Email: { + not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention'], + }, + Acronym: { + not: ['Plural', 'RomanNumeral'], + }, + Negative: { + not: ['Noun', 'Adjective', 'Value', 'Expression'], + }, + Condition: { + not: ['Verb', 'Adjective', 'Noun', 'Value'], + } + }; + + let allTags = Object.assign({}, nouns$1, verbs$2, values, dates$1, misc$2); + // const tagSet = compute(allTags) + var tags = allTags; + + var preTag = { + compute: compute$3, + methods: methods$1, + model: model$2, + tags, + hooks: ['preTagger'], + }; + + const postPunct = /[,)"';:\-–—.…]/; + + const setContraction = function (m, suffix) { + if (!m.found) { + return + } + let terms = m.termList(); + //avoid any problematic punctuation + for (let i = 0; i < terms.length - 1; i++) { + const t = terms[i]; + if (postPunct.test(t.post)) { + return + } + } + // set first word as full text + terms[0].implicit = terms[0].normal; + terms[0].text += suffix; + terms[0].normal += suffix; + // clean-up the others + terms.slice(1).forEach(t => { + t.implicit = t.normal; + t.text = ''; + t.normal = ''; + }); + for (let i = 0; i < terms.length - 1; i++) { + terms[i].post = terms[i].post.replace(/ /, ''); + } + }; + + /** turn 'i am' into i'm */ + const contract = function () { + let doc = this.not('@hasContraction'); + // we are -> we're + let m = doc.match('(we|they|you) are'); + setContraction(m, `'re`); + // they will -> they'll + m = doc.match('(he|she|they|it|we|you) will'); + setContraction(m, `'ll`); + // she is -> she's + m = doc.match('(he|she|they|it|we) is'); + setContraction(m, `'s`); + // spencer is -> spencer's + m = doc.match('#Person is'); + setContraction(m, `'s`); + // spencer would -> spencer'd + m = doc.match('#Person would'); + setContraction(m, `'d`); + // would not -> wouldn't + m = doc.match('(is|was|had|would|should|could|do|does|have|has|can) not'); + setContraction(m, `n't`); + // i have -> i've + m = doc.match('(i|we|they) have'); + setContraction(m, `'ve`); + // would have -> would've + m = doc.match('(would|should|could) have'); + setContraction(m, `'ve`); + // i am -> i'm + m = doc.match('i am'); + setContraction(m, `'m`); + // going to -> gonna + m = doc.match('going to'); + return this + }; + var contract$1 = contract; + + const titleCase = /^\p{Lu}[\p{Ll}'’]/u; //upercase, then lowercase + + const toTitleCase = function (str = '') { + str = str.replace(/^ *[a-z\u00C0-\u00FF]/, x => x.toUpperCase()); //TODO: support unicode + return str + }; + + const api$l = function (View) { + /** */ + class Contractions extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Contraction'; + } + /** i've -> 'i have' */ + expand() { + this.docs.forEach(terms => { + let isTitleCase = titleCase.test(terms[0].text); + terms.forEach((t, i) => { + t.text = t.implicit; + delete t.implicit; + //add whitespace + if (i < terms.length - 1 && t.post === '') { + t.post += ' '; + } + // flag it as dirty + t.dirty = true; + }); + // make the first word title-case? + if (isTitleCase) { + terms[0].text = toTitleCase(terms[0].text); + } + }); + this.compute('normal'); //re-set normalized text + return this + } + } + // add fn to View + View.prototype.contractions = function () { + let m = this.match('@hasContraction+'); + return new Contractions(this.document, m.pointer) + }; + View.prototype.contract = contract$1; + }; + + var api$m = api$l; + + // put n new words where 1 word was + const insertContraction = function (document, point, words) { + let [n, w] = point; + if (!words || words.length === 0) { + return + } + 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]) { + // move whitespace over + words[0].pre = document[n][w].pre; + words[words.length - 1].post = document[n][w].post; + // add the text/normal to the first term + words[0].text = document[n][w].text; + words[0].normal = document[n][w].normal; // move tags too? + } + // do the splice + document[n].splice(w, 1, ...words); + }; + var splice = insertContraction; + + const hasContraction$1 = /'/; + + const isHas = (terms, i) => { + //look for a past-tense verb + let after = terms.slice(i + 1, i + 3); + return after.some(t => t.tags.has('PastTense')) + }; + + // 's -> [possessive, 'has', or 'is'] + const apostropheS$1 = function (terms, i) { + // possessive, is/has + let before = terms[i].normal.split(hasContraction$1)[0]; + // spencer's got -> 'has' + if (isHas(terms, i)) { + return [before, 'has'] + } + // let's + if (before === 'let') { + return [before, 'us'] + } + // allow slang "there's" -> there are + if (before === 'there') { + let nextTerm = terms[i + 1]; + if (nextTerm && nextTerm.tags.has('Plural')) { + return [before, 'are'] + } + } + return [before, 'is'] + }; + var apostropheS$2 = apostropheS$1; + + const hasContraction = /'/; + //look for a past-tense verb + const hasPastTense = (terms, i) => { + let after = terms.slice(i + 1, i + 3); + return after.some(t => t.tags.has('PastTense')) + }; + // he'd walked -> had + // how'd -> did + // he'd go -> would + const _apostropheD = function (terms, i) { + let before = terms[i].normal.split(hasContraction)[0]; + // what'd, how'd + if (before === 'how' || before === 'what') { + return [before, 'did'] + } + if (hasPastTense(terms, i) === true) { + return [before, 'had'] + } + // had/would/did + return [before, 'would'] + }; + var apostropheD = _apostropheD; + + const lastNoun$1 = function (terms, i) { + for (let n = i - 1; n >= 0; n -= 1) { + if ( + terms[n].tags.has('Noun') || + terms[n].tags.has('Pronoun') || + terms[n].tags.has('Plural') || + terms[n].tags.has('Singular') + ) { + return terms[n] + } + } + return null + }; + + //ain't -> are/is not + const apostropheT = function (terms, i) { + if (terms[i].normal === "ain't" || terms[i].normal === 'aint') { + // we aint -> are not, she aint -> is not + let noun = lastNoun$1(terms, i); + if (noun) { + // plural/singular pronouns + if (noun.normal === 'we' || noun.normal === 'they') { + return ['are', 'not'] + } + // plural/singular tags + if (noun.tags && noun.tags.has('Plural')) { + return ['are', 'not'] + } + } + return ['is', 'not'] + } + let before = terms[i].normal.replace(/n't/, ''); + return [before, 'not'] + }; + + var apostropheT$1 = apostropheT; + + const banList = { + that: true, + there: true, + let: true, + here: true, + everywhere: true, + }; + + const beforePossessive = { + in: true,//in sunday's + by: true,//by sunday's + for: true,//for sunday's + }; + + const isPossessive = (terms, i) => { + let term = terms[i]; + // these can't be possessive + if (banList.hasOwnProperty(term.machine || term.normal)) { + return false + } + // if we already know it + if (term.tags.has('Possessive')) { + return true + } + //a pronoun can't be possessive - "he's house" + if (term.tags.has('Pronoun') || term.tags.has('QuestionWord')) { + return false + } + //if end of sentence, it is possessive - "was spencer's" + let nextTerm = terms[i + 1]; + if (!nextTerm) { + return true + } + //a gerund suggests 'is walking' + if (nextTerm.tags.has('Verb')) { + //fix 'jamie's bite' + if (nextTerm.tags.has('Infinitive')) { + return true + } + //fix 'spencer's runs' + if (nextTerm.tags.has('PresentTense')) { + return true + } + return false + } + //spencer's house + if (nextTerm.tags.has('Noun')) { + let nextStr = nextTerm.machine || nextTerm.normal; + // 'spencer's here' + if (nextStr === 'here' || nextStr === 'there' || nextStr === 'everywhere') { + return false + } + // the chair's his + if (nextTerm.tags.has('Possessive')) { + return false + } + // the captain's John + if (nextTerm.tags.has('ProperNoun') && !term.tags.has('ProperNoun')) { + return false + } + return true + } + // by sunday's final + if (terms[i - 1] && beforePossessive[terms[i - 1].normal] === true) { + return true + } + //rocket's red glare + let twoTerm = terms[i + 2]; + if (twoTerm && twoTerm.tags.has('Noun') && !twoTerm.tags.has('Pronoun')) { + return true + } + //othwerwise, an adjective suggests 'is good' + if (nextTerm.tags.has('Adjective') || nextTerm.tags.has('Adverb') || nextTerm.tags.has('Verb')) { + return false + } + return false + }; + var isPossessive$1 = isPossessive; + + 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(); + tmp.document = [terms]; + // offer to re-tag neighbours, too + let end = start + len; + if (start > 0) { + start -= 1; + } + if (terms[end]) { + end += 1; + } + tmp.ptrs = [[0, start, end]]; + tmp.compute(['lexicon', 'preTagger']); + // don't for a reindex of the whole document + reIndex(terms); + }; + + const byEnd = { + // how'd + d: (terms, i) => apostropheD(terms, i), + // we ain't + t: (terms, i) => apostropheT$1(terms, i), + // bob's + s: (terms, i, world) => { + // [bob's house] vs [bob's cool] + if (isPossessive$1(terms, i)) { + return world.methods.one.setTag([terms[i]], 'Possessive', world, '2-contraction') + } + return apostropheS$2(terms, i) + }, + }; + + const toDocs = function (words, view) { + let doc = view.fromText(words.join(' ')); + doc.compute('id'); + return doc.docs[0] + }; + + + //really easy ones + const contractionTwo$1 = (view) => { + let { world, document } = view; + // each sentence + document.forEach((terms, n) => { + // loop through terms backwards + for (let i = terms.length - 1; i >= 0; i -= 1) { + // is it already a contraction + if (terms[i].implicit) { + return + } + let after = null; + if (byApostrophe.test(terms[i].normal) === true) { + [, after] = terms[i].normal.split(byApostrophe); + } + let words = null; + // any known-ones, like 'dunno'? + // ['foo', 's'] + if (byEnd.hasOwnProperty(after)) { + words = byEnd[after](terms, i, world); + } + // actually insert the new terms + if (words) { + words = toDocs(words, view); + splice(document, [n, i], words); + reTag(document[n], view, i, words.length); + continue + } + } + }); + }; + var compute$2 = { contractionTwo: contractionTwo$1 }; + + var contractionTwo = { + compute: compute$2, + api: api$m, + hooks: ['contractionTwo'] + }; + + var adj = [ + // all fell apart + { match: '[(all|both)] #Determiner #Noun', group: 0, tag: 'Noun', reason: 'all-noun' }, + //sometimes not-adverbs + { match: '#Copula [(just|alone)]$', group: 0, tag: 'Adjective', reason: 'not-adverb' }, + //jack is guarded + { match: '#Singular is #Adverb? [#PastTense$]', group: 0, tag: 'Adjective', reason: 'is-filled' }, + // smoked poutine is + { match: '[#PastTense] #Singular is', group: 0, tag: 'Adjective', reason: 'smoked-poutine' }, + // baked onions are + { match: '[#PastTense] #Plural are', group: 0, tag: 'Adjective', reason: 'baked-onions' }, + // well made + { match: 'well [#PastTense]', group: 0, tag: 'Adjective', reason: 'well-made' }, + // is f*ed up + { match: '#Copula [fucked up?]', group: 0, tag: 'Adjective', reason: 'swears-adjective' }, + //jack seems guarded + { match: '#Singular (seems|appears) #Adverb? [#PastTense$]', group: 0, tag: 'Adjective', reason: 'seems-filled' }, + // jury is out - preposition ➔ adjective + { match: '#Copula #Adjective? [(out|in|through)]$', group: 0, tag: 'Adjective', reason: 'still-out' }, + // shut the door + { match: '^[#Adjective] (the|your) #Noun', group: 0, ifNo: ['all', 'even'], tag: 'Infinitive', reason: 'shut-the' }, + // the said card + { match: 'the [said] #Noun', group: 0, tag: 'Adjective', reason: 'the-said-card' }, + // a myth that uncovered wounds heal + { + 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' }, + ]; + + const adverbAdj = `(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)`; + var advAdj = [ + // kinda sparkly + // { match: `#Adverb [#Adverb]$`, ifNo: ['very', 'really', 'so'], group: 0, tag: 'Adjective', reason: 'kinda-sparkly' }, + { match: `#Adverb [#Adverb] (and|or|then)`, group: 0, tag: 'Adjective', reason: 'kinda-sparkly-and' }, + // dark green + { match: `[${adverbAdj}] #Adjective`, group: 0, tag: 'Adverb', reason: 'dark-green' }, + ]; + + var gerundAdj = [ + // Gerund-Adjectives - 'amusing, annoying' + //a staggering cost + { match: '(a|an) [#Gerund]', group: 0, tag: 'Adjective', reason: 'a|an' }, + //as amusing as + { match: 'as [#Gerund] as', group: 0, tag: 'Adjective', reason: 'as-gerund-as' }, + // more amusing than + { match: 'more [#Gerund] than', group: 0, tag: 'Adjective', reason: 'more-gerund-than' }, + // very amusing + { match: '(so|very|extremely) [#Gerund]', group: 0, tag: 'Adjective', reason: 'so-gerund' }, + // it was amusing + // { + // match: '(it|he|she|everything|something) #Adverb? was #Adverb? [#Gerund]', + // group: 0, + // tag: 'Adjective', + // reason: 'it-was-gerund', + // }, + // found it amusing + { match: '(found|found) it #Adverb? [#Gerund]', group: 0, tag: 'Adjective', reason: 'found-it-gerund' }, + // a bit amusing + { match: 'a (little|bit|wee) bit? [#Gerund]', group: 0, tag: 'Adjective', reason: 'a-bit-gerund' }, + // the amusing world + // { match: '(#Determiner|#Possessive) [%Adj|Gerund%] #Noun', group: 0, tag: 'Adjective', reason: 'amusing-world' }, + ]; + + var nounAdj = [ + //the above is clear + { match: '#Determiner [#Adjective] #Copula', group: 0, tag: 'Noun', reason: 'the-adj-is' }, + //real evil is + { match: '#Adjective [#Adjective] #Copula', group: 0, tag: 'Noun', reason: 'adj-adj-is' }, + //his fine + { match: '(his|its) [%Adj|Noun%]', group: 0, tag: 'Noun', reason: 'his-fine' }, + //is all + { match: '#Copula #Adverb? [all]', group: 0, tag: 'Noun', reason: 'is-all' }, + // have fun + { 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' }, + ]; + + var adjVerb = [ + // amusing his aunt + // { match: '[#Adjective] #Possessive #Noun', group: 0, tag: 'Verb', reason: 'gerund-his-noun' }, + // loving you + // { match: '[#Adjective] (us|you)', group: 0, tag: 'Gerund', reason: 'loving-you' }, + // slowly stunning + { match: '(slowly|quickly) [#Adjective]', group: 0, tag: 'Verb', reason: 'slowly-adj' }, + // does mean + { match: 'does (#Adverb|not)? [#Adjective]', group: 0, tag: 'PresentTense', reason: 'does-mean' }, + // okay by me + { match: '[(fine|okay|cool|ok)] by me', group: 0, tag: 'Adjective', reason: 'okay-by-me' }, + // i mean + { match: 'i (#Adverb|do)? not? [mean]', group: 0, tag: 'PresentTense', reason: 'i-mean' }, + //will secure our + { match: 'will #Adjective', tag: 'Auxiliary Infinitive', reason: 'will-adj' }, + //he disguised the thing + { match: '#Pronoun [#Adjective] #Determiner #Adjective? #Noun', group: 0, tag: 'Verb', reason: 'he-adj-the' }, + //is eager to go + { match: '#Copula [%Adj|Present%] to #Verb', group: 0, tag: 'Verb', reason: 'adj-to' }, + // rude and insulting + { match: '#Adjective and [#Gerund] !#Preposition?', group: 0, tag: 'Adjective', reason: 'rude-and-x' }, + // were over cooked + { match: '#Copula #Adverb? (over|under) [#PastTense]', group: 0, tag: 'Adjective', reason: 'over-cooked' }, + // was bland and overcooked + { match: '#Copula #Adjective+ (and|or) [#PastTense]$', group: 0, tag: 'Adjective', reason: 'bland-and-overcooked' }, + // 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', + }, + ]; + + // const adverbAdj = '(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)' + + var adv = [ + //still good + { match: '[still] #Adjective', group: 0, tag: 'Adverb', reason: 'still-advb' }, + //still make + { match: '[still] #Verb', group: 0, tag: 'Adverb', reason: 'still-verb' }, + // so hot + { match: '[so] #Adjective', group: 0, tag: 'Adverb', reason: 'so-adv' }, + // way hotter + { match: '[way] #Comparative', group: 0, tag: 'Adverb', reason: 'way-adj' }, + // way too hot + { match: '[way] #Adverb #Adjective', group: 0, tag: 'Adverb', reason: 'way-too-adj' }, + // all singing + { match: '[all] #Verb', group: 0, tag: 'Adverb', reason: 'all-verb' }, + // sing like an angel + { match: '#Verb [like]', group: 0, ifNo: ['#Modal', '#PhrasalVerb'], tag: 'Adverb', reason: 'verb-like' }, + //barely even walk + { match: '(barely|hardly) even', tag: 'Adverb', reason: 'barely-even' }, + //even held + { match: '[even] #Verb', group: 0, tag: 'Adverb', reason: 'even-walk' }, + // even the greatest + { match: '[even] (#Determiner|#Possessive)', group: 0, tag: '#Adverb', reason: 'even-the' }, + // even left + { match: 'even left', tag: '#Adverb #Verb', reason: 'even-left' }, + // way over + { match: '[way] #Adjective', group: 0, tag: '#Adverb', reason: 'way-over' }, + //cheering hard - dropped -ly's + { + match: '#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]', + ifNo: '#Copula', + group: 0, + tag: 'Adverb', + reason: 'lazy-ly', + }, + // much appreciated + { match: '[much] #Adjective', group: 0, tag: 'Adverb', reason: 'bit-1' }, + // is well + { match: '#Copula [#Adverb]$', group: 0, tag: 'Adjective', reason: 'is-well' }, + // a bit cold + { match: 'a [(little|bit|wee) bit?] #Adjective', group: 0, tag: 'Adverb', reason: 'a-bit-cold' }, + // super strong + { match: `[(super|pretty)] #Adjective`, group: 0, tag: 'Adverb', reason: 'super-strong' }, + // become overly weakened + { match: '(become|fall|grow) #Adverb? [#PastTense]', group: 0, tag: 'Adjective', reason: 'overly-weakened' }, + // a completely beaten man + { match: '(a|an) #Adverb [#Participle] #Noun', group: 0, tag: 'Adjective', reason: 'completely-beaten' }, + //a close + { match: '#Determiner #Adverb? [close]', group: 0, tag: 'Adjective', reason: 'a-close' }, + //walking close + { match: '#Gerund #Adverb? [close]', group: 0, tag: 'Adverb', reason: 'being-close' }, + // a blown motor + { match: '(the|those|these|a|an) [#Participle] #Noun', group: 0, tag: 'Adjective', reason: 'blown-motor' }, + // charged back + { match: '(#PresentTense|#PastTense) [back]', group: 0, tag: 'Adverb', reason: 'charge-back' }, + ]; + + var dates = [ + // ==== Holiday ==== + { match: '#Holiday (day|eve)', tag: 'Holiday', reason: 'holiday-day' }, + //5th of March + { match: '#Value of #Month', tag: 'Date', reason: 'value-of-month' }, + //5 March + { match: '#Cardinal #Month', tag: 'Date', reason: 'cardinal-month' }, + //march 5 to 7 + { match: '#Month #Value to #Value', tag: 'Date', reason: 'value-to-value' }, + //march the 12th + { match: '#Month the #Value', tag: 'Date', reason: 'month-the-value' }, + //june 7 + { match: '(#WeekDay|#Month) #Value', tag: 'Date', reason: 'date-value' }, + //7 june + { match: '#Value (#WeekDay|#Month)', tag: 'Date', reason: 'value-date' }, + //may twenty five + { match: '(#TextValue && #Date) #TextValue', tag: 'Date', reason: 'textvalue-date' }, + // 'aug 20-21' + { match: `#Month #NumberRange`, tag: 'Date', reason: 'aug 20-21' }, + // wed march 5th + { match: `#WeekDay #Month #Ordinal`, tag: 'Date', reason: 'week mm-dd' }, + // aug 5th 2021 + { match: `#Month #Ordinal #Cardinal`, tag: 'Date', reason: 'mm-dd-yyy' }, + + // === timezones === + // china standard time + { match: `(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time`, tag: 'Timezone', reason: 'std-time' }, + // eastern time + { + match: `(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time`, + tag: 'Timezone', + reason: 'eastern-time', + }, + // 5pm central + { match: `#Time [(eastern|mountain|pacific|central|est|pst|gmt)]`, group: 0, tag: 'Timezone', reason: '5pm-central' }, + // central european time + { match: `(central|western|eastern) european time`, tag: 'Timezone', reason: 'cet' }, + ]; + + var ambigDates = [ + // ==== WeekDay ==== + // sun the 5th + { match: '[sun] the #Ordinal', tag: 'WeekDay', reason: 'sun-the-5th' }, + //sun feb 2 + { match: '[sun] #Date', group: 0, tag: 'WeekDay', reason: 'sun-feb' }, + //1pm next sun + { match: '#Date (on|this|next|last|during)? [sun]', group: 0, tag: 'WeekDay', reason: '1pm-sun' }, + //this sat + { 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' }, + //sat november + { match: '[sat] #Date', group: 0, tag: 'WeekDay', reason: 'sat-feb' }, + + // ==== Month ==== + //all march + { match: `#Preposition [(march|may)]`, group: 0, tag: 'Month', reason: 'in-month' }, + //this march + { match: `(this|next|last) [(march|may)]`, tag: '#Date #Month', reason: 'this-month' }, + // march 5th + { match: `(march|may) the? #Value`, tag: '#Month #Date #Date', reason: 'march-5th' }, + // 5th of march + { match: `#Value of? (march|may)`, tag: '#Date #Date #Month', reason: '5th-of-march' }, + // march and feb + { match: `[(march|may)] .? #Date`, group: 0, tag: 'Month', reason: 'march-and-feb' }, + // feb to march + { match: `#Date .? [(march|may)]`, group: 0, tag: 'Month', reason: 'feb-and-march' }, + //quickly march + { match: `#Adverb [(march|may)]`, group: 0, tag: 'Verb', reason: 'quickly-march' }, + //march quickly + { match: `[(march|may)] #Adverb`, group: 0, tag: 'Verb', reason: 'march-quickly' }, + ]; + + const infNouns = + '(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)'; + var noun = [ + //'more' is not always an adverb + { 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' }, + + //some pressing issues + { match: 'some [#Verb] #Plural', group: 0, tag: 'Noun', reason: 'determiner6' }, + // my first thought + { match: '#Possessive #Ordinal [#PastTense]', group: 0, tag: 'Noun', reason: 'first-thought' }, + //the nice swim + { match: '(the|this|those|these) #Adjective [%Verb|Noun%]', group: 0, tag: 'Noun', ifNo: '#Copula', reason: 'the-adj-verb' }, + // the truly nice swim + { match: '(the|this|those|these) #Adverb #Adjective [#Verb]', group: 0, tag: 'Noun', reason: 'determiner4' }, + //the wait to vote + { match: 'the [#Verb] #Preposition .', group: 0, tag: 'Noun', reason: 'determiner1' }, + //a sense of + { match: '#Determiner [#Verb] of', group: 0, tag: 'Noun', reason: 'the-verb-of' }, + //the threat of force + { match: '#Determiner #Noun of [#Verb]', group: 0, tag: 'Noun', ifNo: '#Gerund', reason: 'noun-of-noun' }, + //Grandma's cooking, my tiptoing + // { match: '#Possessive [#Gerund]', group: 0, tag: 'Noun', reason: 'grandmas-cooking' }, + // ended in ruins + { match: '#PastTense #Preposition [#PresentTense]', group: 0, ifNo: ['#Gerund'], tag: 'Noun', reason: 'ended-in-ruins' }, + + //'u' as pronoun + { match: '#Conjunction [u]', group: 0, tag: 'Pronoun', reason: 'u-pronoun-2' }, + { match: '[u] #Verb', group: 0, tag: 'Pronoun', reason: 'u-pronoun-1' }, + //the western line + { + match: '#Determiner [(western|eastern|northern|southern|central)] #Noun', + group: 0, + tag: 'Noun', + reason: 'western-line', + }, + //linear algebra + // { + // match: '(#Determiner|#Value) [(linear|binary|mobile|lexical|technical|computer|scientific|formal)] #Noun', + // group: 0, + // tag: 'Noun', + // reason: 'technical-noun', + // }, + //air-flow + { match: '(#Singular && @hasHyphen) #PresentTense', tag: 'Noun', reason: 'hyphen-verb' }, + //is no walk + { match: 'is no [#Verb]', group: 0, tag: 'Noun', reason: 'is-no-verb' }, + //different views than + // { match: '[#Verb] than', group: 0, tag: 'Noun', reason: 'verb-than' }, + //do so + { match: 'do [so]', group: 0, tag: 'Noun', reason: 'so-noun' }, + // what the hell + { match: '#Determiner [(shit|damn|hell)]', group: 0, tag: 'Noun', reason: 'swears-noun' }, + // go to shit + { match: 'to [(shit|hell)]', group: 0, tag: 'Noun', reason: 'to-swears' }, + // the staff were + { match: '(the|these) [#Singular] (were|are)', group: 0, tag: 'Plural', reason: 'singular-were' }, + // a comdominium, or simply condo + { match: `a #Noun+ or #Adverb+? [#Verb]`, group: 0, tag: 'Noun', reason: 'noun-or-noun' }, + // walk the walk + { 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: '(the|those|these|a|an) #Adjective? [#PastTense]', group: 0, tag: 'Noun', reason: 'det-past' }, + + // ==== Actor ==== + //Aircraft designer + { match: '#Noun #Actor', tag: 'Actor', reason: 'thing-doer' }, + // co-founder + { match: `co #Singular`, tag: 'Actor', reason: 'co-noun' }, + + // ==== Singular ==== + //the sun + { match: '#Determiner [sun]', group: 0, tag: 'Singular', reason: 'the-sun' }, + //did a 900, paid a 20 + { match: '#Verb (a|an) [#Value]', group: 0, tag: 'Singular', reason: 'did-a-value' }, + //'the can' + { match: 'the [(can|will|may)]', group: 0, tag: 'Singular', reason: 'the can' }, + + // ==== Possessive ==== + //spencer kelly's + { match: '#FirstName #Acronym? (#Possessive && #LastName)', tag: 'Possessive', reason: 'name-poss' }, + //Super Corp's fundraiser + { match: '#Organization+ #Possessive', tag: 'Possessive', reason: 'org-possessive' }, + //Los Angeles's fundraiser + { match: '#Place+ #Possessive', tag: 'Possessive', reason: 'place-possessive' }, + // 10th of a second + { match: '#Value of a [second]', group: 0, unTag: 'Value', tag: 'Singular', reason: '10th-of-a-second' }, + // 10 seconds + { match: '#Value [seconds]', group: 0, unTag: 'Value', tag: 'Plural', reason: '10-seconds' }, + // in time + { match: 'in [#Infinitive]', group: 0, tag: 'Singular', reason: 'in-age' }, + // a minor in + { match: 'a [#Adjective] #Preposition', group: 0, tag: 'Noun', reason: 'a-minor-in' }, + + //the repairer said + { match: '#Determiner [#Singular] said', group: 0, tag: 'Actor', reason: 'the-actor-said' }, + //the euro sense + { + match: `#Determiner #Noun [${infNouns}] !(#Preposition|to|#Adverb)?`, + group: 0, + tag: 'Noun', + reason: 'the-noun-sense', + }, + // photographs of a computer are + { match: '[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula', group: 0, tag: 'Plural', reason: 'photographs-of' }, + // soft music playing + // { match: '%Noun|Gerund%$', tag: 'Noun', reason: 'music-playing' }, + // fight and win + { match: '#Infinitive and [%Noun|Verb%]', group: 0, tag: 'Infinitive', reason: 'fight and win' }, + // 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' }, + // 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 = [ + // the planning processes + { match: '(this|that|the|a|an) [#Gerund #Infinitive]', group: 0, tag: 'Singular', reason: 'the-planning-process' }, + // 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' }, + // 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 + { match: '#Adjective [#Gerund]', group: 0, tag: 'Noun', reason: 'early-warning' }, + //walking is cool + { match: '[#Gerund] #Adverb? not? #Copula', group: 0, tag: 'Activity', reason: 'gerund-copula' }, + //walking should be fun + { match: '[#Gerund] #Modal', group: 0, tag: 'Activity', reason: 'gerund-modal' }, + // finish listening + // { match: '#Infinitive [#Gerund]', group: 0, tag: 'Activity', reason: 'finish-listening' }, + // the ruling party + ]; + + var presNouns = [ + // do the dance + { match: '#Infinitive (this|that|the) [#Infinitive]', group: 0, tag: 'Noun', reason: 'do-this-dance' }, + //running-a-show + { match: '#Gerund #Determiner [#Infinitive]', group: 0, tag: 'Noun', reason: 'running-a-show' }, + //the-only-reason + { match: '#Determiner #Adverb [#Infinitive]', group: 0, tag: 'Noun', reason: 'the-reason' }, + // a stream runs + { match: '(the|this|a|an) [#Infinitive] #Adverb? #Verb', group: 0, tag: 'Noun', reason: 'determiner5' }, + //the test string + { match: '#Determiner [#Infinitive] #Noun', group: 0, tag: 'Noun', reason: 'determiner7' }, + //a nice deal + { match: '#Determiner #Adjective #Adjective? [#Infinitive]', group: 0, tag: 'Noun', reason: 'a-nice-inf' }, + // the mexican train + { match: '#Determiner #Demonym [#PresentTense]', group: 0, tag: 'Noun', reason: 'mexican-train' }, + //next career move + { match: '#Adjective #Noun+ [#Infinitive] #Copula', group: 0, tag: 'Noun', reason: 'career-move' }, + // at some point + { match: 'at some [#Infinitive]', group: 0, tag: 'Noun', reason: 'at-some-inf' }, + // goes to sleep + { match: '(go|goes|went) to [#Infinitive]', group: 0, tag: 'Noun', reason: 'goes-to-verb' }, + //a close watch on + { match: '(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)', group: 0, tag: 'Noun', reason: 'a-noun-inf' }, + //a tv show + { match: '(a|an) #Noun [#Infinitive]$', group: 0, tag: 'Noun', reason: 'a-noun-inf2' }, + //is mark hughes + { match: '#Copula [#Infinitive] #Noun', group: 0, tag: 'Noun', reason: 'is-pres-noun' }, + // good wait staff + // { match: '#Adjective [#Infinitive] #Noun', group: 0, tag: 'Noun', reason: 'good-wait-staff' }, + // running for congress + { match: '#Gerund #Adjective? for [#Infinitive]', group: 0, tag: 'Noun', reason: 'running-for' }, + // running to work + { match: '#Gerund #Adjective to [#Infinitive]', group: 0, tag: 'Noun', reason: 'running-to' }, + // 1 train + { match: '(one|1) [#Infinitive]', group: 0, tag: 'Singular', reason: '1-trains' }, + // about love + { match: 'about [#Infinitive]', group: 0, tag: 'Singular', reason: 'about-love' }, + // on stage + { match: 'on [#Infinitive]', group: 0, tag: 'Noun', reason: 'on-stage' }, + // any charge + { match: 'any [#Infinitive]', group: 0, tag: 'Noun', reason: 'any-charge' }, + // no doubt + { match: 'no [#Infinitive]', group: 0, tag: 'Noun', reason: 'no-doubt' }, + // number of seats + { match: 'number of [#PresentTense]', group: 0, tag: 'Noun', reason: 'number-of-x' }, + // teaches/taught + { match: '(taught|teaches|learns|learned) [#PresentTense]', group: 0, tag: 'Noun', reason: 'teaches-x' }, + + // use reverse + { + match: '(try|use|attempt|build|make) [#Verb]', + ifNo: ['#Copula', '#PhrasalVerb'], + group: 0, + tag: 'Noun', + reason: 'do-verb', + }, + + // checkmate is + { match: '^[#Infinitive] (is|was)', group: 0, tag: 'Noun', reason: 'checkmate-is' }, + // get much sleep + { match: '#Infinitive much [#Infinitive]', group: 0, tag: 'Noun', reason: 'get-much' }, + // cause i gotta + { match: '[cause] #Pronoun #Verb', group: 0, tag: 'Conjunction', reason: 'cause-cuz' }, + // the cardio dance party + { match: 'the #Singular [#Infinitive] #Noun', group: 0, tag: 'Noun', reason: 'cardio-dance' }, + // the dining experience + // { match: 'the #Noun [#Infinitive] #Copula', group: 0, tag: 'Noun', reason: 'dining-experience' }, + + // that should smoke + { match: '#Determiner #Modal [#Noun]', group: 0, tag: 'PresentTense', reason: 'should-smoke' }, + //this rocks + { match: '(this|that) [#Plural]', group: 0, tag: 'PresentTense', reason: 'this-verbs' }, + //let him glue + { + match: '(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)', + group: 0, + tag: 'Infinitive', + reason: 'let-him-glue', + }, + + // assign all tasks + { + match: '#Verb (all|every|each|most|some|no) [#PresentTense]', + ifNo: '#Modal', + group: 0, + tag: 'Noun', + reason: 'all-presentTense', + }, + // PresentTense/Noun ambiguities + // big dreams, critical thinking + // have big dreams + { match: '(had|have|#PastTense) #Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'adj-presentTense' }, + // excellent answer spencer + // { match: '^#Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'start adj-presentTense' }, + // one big reason + { match: '#Value #Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'one-big-reason' }, + // won widespread support + { match: '#PastTense #Adjective+ [#PresentTense]', group: 0, tag: 'Noun', reason: 'won-wide-support' }, + // many poses + { match: '(many|few|several|couple) [#PresentTense]', group: 0, tag: 'Noun', reason: 'many-poses' }, + // very big dreams + { match: '#Adverb #Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'very-big-dream' }, + // adorable little store + { match: '#Adjective #Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'adorable-little-store' }, + // of basic training + // { match: '#Preposition #Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'of-basic-training' }, + // justifiying higher costs + { 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' }, + + // any questions for + { match: '(many|any|some|several) [#PresentTense] for', group: 0, tag: 'Noun', reason: 'any-verbs-for' }, + // to facilitate gas exchange with + { match: `to #PresentTense #Noun [#PresentTense] #Preposition`, group: 0, tag: 'Noun', reason: 'gas-exchange' }, + // waited until release + { + match: `#PastTense (until|as|through|without) [#PresentTense]`, + group: 0, + tag: 'Noun', + reason: 'waited-until-release', + }, + // selling like hot cakes + { match: `#Gerund like #Adjective? [#PresentTense]`, group: 0, tag: 'Plural', reason: 'like-hot-cakes' }, + // some valid reason + { match: `some #Adjective [#PresentTense]`, group: 0, tag: 'Noun', reason: 'some-reason' }, + // for some reason + { match: `for some [#PresentTense]`, group: 0, tag: 'Noun', reason: 'for-some-reason' }, + // same kind of shouts + { match: `(same|some|the|that|a) kind of [#PresentTense]`, group: 0, tag: 'Noun', reason: 'some-kind-of' }, + // a type of shout + { match: `(same|some|the|that|a) type of [#PresentTense]`, group: 0, tag: 'Noun', reason: 'some-type-of' }, + // doing better for fights + { match: `#Gerund #Adjective #Preposition [#PresentTense]`, group: 0, tag: 'Noun', reason: 'doing-better-for-x' }, + // get better aim + { match: `(get|got|have|had) #Comparative [#PresentTense]`, group: 0, tag: 'Noun', reason: 'got-better-aim' }, + // whose name was + { match: 'whose [#PresentTense] #Copula', group: 0, tag: 'Noun', reason: 'whos-name-was' }, + // give up on reason + { match: `#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]`, group: 0, tag: 'Noun', reason: 'given-up-on-x' }, + //there are reasons + { match: 'there (are|were) #Adjective? [#PresentTense]', group: 0, tag: 'Plural', reason: 'there-are' }, + + // 30 trains + { + match: '#Value [#PresentTense]', + group: 0, + ifNo: ['one', '1', '#Copula', '#Infinitive'], + tag: 'Plural', + reason: '2-trains', + }, + // compromises are possible + { match: '[#PresentTense] (are|were|was) #Adjective', group: 0, tag: 'Plural', reason: 'compromises-are-possible' }, + // hope i helped + { match: '^[(hope|guess|thought|think)] #Pronoun #Verb', group: 0, tag: 'Infinitive', reason: 'suppose-i' }, + //pursue its dreams + { match: '#PresentTense #Possessive [#PresentTense]', group: 0, tag: 'Plural', reason: 'pursue-its-dreams' }, + // our unyielding support + { match: '#Possessive #Adjective [#Verb]', group: 0, tag: 'Noun', reason: 'our-full-support' }, + // they do serve fish + { match: '(do|did|will) [#Singular] #Noun', group: 0, tag: 'PresentTense', reason: 'do-serve-fish' }, + // tastes good + { match: '[(tastes|smells)] #Adverb? #Adjective', group: 0, tag: 'PresentTense', reason: 'tastes-good' }, + // are you plauing golf + { match: '^are #Pronoun [#Noun]', group: 0, ifNo: ['here', 'there'], tag: 'Verb', reason: 'are-you-x' }, + // ignoring commute + { + match: '#Copula #Gerund [#PresentTense] !by?', + group: 0, + tag: 'Noun', + ifNo: ['going'], + reason: 'ignoring-commute', + }, + // noun-pastTense variables + { match: '#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]', group: 0, tag: 'Noun', reason: 'noun-past' }, + ]; + + var money = [ + { match: '#Money and #Money #Currency?', tag: 'Money', reason: 'money-and-money' }, + + // // $5.032 is invalid money + // doc + // .match('#Money') + // .not('#TextValue') + // .match('/\\.[0-9]{3}$/') + // .unTag('#Money', 'three-decimal money') + + // cleanup currency false-positives + // { match: '#Currency #Verb', ifNo: '#Value', unTag: 'Currency', reason: 'no-currency' }, + // 6 dollars and 5 cents + { match: '#Value #Currency [and] #Value (cents|ore|centavos|sens)', group: 0, tag: 'money', reason: 'and-5-cents' }, + // maybe currencies + { match: '#Value (mark|rand|won|rub|ore)', tag: '#Money #Currency', reason: '4 mark' }, + ]; + + // {match:'', tag:'',reason:''}, + // {match:'', tag:'',reason:''}, + // {match:'', tag:'',reason:''}, + + var fractions$1 = [ + // half a penny + { match: '[(half|quarter)] of? (a|an)', group: 0, tag: 'Fraction', reason: 'millionth' }, + // nearly half + { match: '#Adverb [half]', group: 0, tag: 'Fraction', reason: 'nearly-half' }, + // half the + { match: '[half] the', group: 0, tag: 'Fraction', reason: 'half-the' }, + // and a half + { match: '#Cardinal and a half', tag: 'Fraction', reason: 'and-a-half' }, + // two-halves + { match: '#Value (halves|halfs|quarters)', tag: 'Fraction', reason: 'two-halves' }, + + // ---ordinals as fractions--- + // a fifth + { match: 'a #Ordinal', tag: 'Fraction', reason: 'a-quarter' }, + // seven fifths + { match: '[#Cardinal+] (#Fraction && /s$/)', tag: 'Fraction', reason: 'seven-fifths' }, + // doc.match('(#Fraction && /s$/)').lookBefore('#Cardinal+$').tag('Fraction') + // one third of .. + { match: '[#Cardinal+ #Ordinal] of .', group: 0, tag: 'Fraction', reason: 'ordinal-of' }, + // 100th of + { match: '[(#NumericValue && #Ordinal)] of .', group: 0, tag: 'Fraction', reason: 'num-ordinal-of' }, + // a twenty fifth + { match: '(a|one) #Cardinal?+ #Ordinal', tag: 'Fraction', reason: 'a-ordinal' }, + + // // '3 out of 5' + { match: '#Cardinal+ out? of every? #Cardinal', tag: 'Fraction', reason: 'out-of' }, + ]; + + // {match:'', tag:'',reason:''}, + + var numbers$2 = [ + // ==== Ambiguous numbers ==== + // 'second' + { match: `#Cardinal [second]`, tag: 'Unit', reason: 'one-second' }, + //'a/an' can mean 1 - "a hour" + { + match: '!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)', + group: 0, + tag: 'Value', + reason: 'a-is-one', + }, + // ==== PhoneNumber ==== + //1 800 ... + { match: '1 #Value #PhoneNumber', tag: 'PhoneNumber', reason: '1-800-Value' }, + //(454) 232-9873 + { match: '#NumericValue #PhoneNumber', tag: 'PhoneNumber', reason: '(800) PhoneNumber' }, + + // ==== Currency ==== + // chinese yuan + { match: '#Demonym #Currency', tag: 'Currency', reason: 'demonym-currency' }, + // ten bucks + { match: '#Value [(buck|bucks|grand)]', group: 0, tag: 'Currency', reason: 'value-bucks' }, + // ==== Money ==== + { match: '[#Value+] #Currency', group: 0, tag: 'Money', reason: '15 usd' }, + + // ==== Ordinal ==== + { match: '[second] #Noun', group: 0, tag: 'Ordinal', reason: 'second-noun' }, + + // ==== Units ==== + //5 yan + { match: '#Value+ [#Currency]', group: 0, tag: 'Unit', reason: '5-yan' }, + { match: '#Value [(foot|feet)]', group: 0, tag: 'Unit', reason: 'foot-unit' }, + //5 kg. + { 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' }, + + // ==== Magnitudes ==== + //minus 7 + { match: '(minus|negative) #Value', tag: 'Value', reason: 'minus-value' }, + //seven point five + { match: '#Value (point|decimal) #Value', tag: 'Value', reason: 'value-point-value' }, + //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', + }, + ]; + + var person = [ + // ==== Honorifics ==== + { 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', + }, + // ==== FirstNames ==== + //is foo Smith + { match: '#Copula [(#Noun|#PresentTense)] #LastName', group: 0, tag: 'FirstName', reason: 'copula-noun-lastname' }, + //pope francis + { + match: '(lady|queen|sister|king|pope|father) #ProperNoun', + tag: 'Person', + reason: 'lady-titlecase', + safe: true, + }, + + // ==== Nickname ==== + // Dwayne 'the rock' Johnson + { 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: true, + }, + { match: '#Acronym #LastName', tag: 'Person', reason: 'acronym-lastname', safe: true }, + { match: '#Person (jr|sr|md)', tag: 'Person', reason: 'person-honorific' }, + //remove single 'mr' + { 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' }, + //j.k Rowling + { match: '#Noun van der? #Noun', tag: 'Person', reason: 'van der noun', safe: true }, + //king of spain + { match: '(king|queen|prince|saint|lady) of #Noun', tag: 'Person', reason: 'king-of-noun', safe: true }, + //lady Florence + { match: '(prince|lady) #Place', tag: 'Person', reason: 'lady-place' }, + //saint Foo + { match: '(king|queen|prince|saint) #ProperNoun', tag: 'Person', reason: 'saint-foo' }, + + // al sharpton + { match: 'al (#Person|#ProperNoun)', tag: 'Person', reason: 'al-borlen', safe: true }, + //ferdinand de almar + { match: '#FirstName de #Noun', tag: 'Person', reason: 'bill-de-noun' }, + //Osama bin Laden + { match: '#FirstName (bin|al) #Noun', tag: 'Person', reason: 'bill-al-noun' }, + //John L. Foo + { match: '#FirstName #Acronym #ProperNoun', tag: 'Person', reason: 'bill-acronym-title' }, + //Andrew Lloyd Webber + { match: '#FirstName #FirstName #ProperNoun', tag: 'Person', reason: 'bill-firstname-title' }, + //Mr Foo + { match: '#Honorific #FirstName? #ProperNoun', tag: 'Person', reason: 'dr-john-Title' }, + //peter the great + { match: '#FirstName the #Adjective', tag: 'Person', reason: 'name-the-great' }, + + // dick van dyke + { match: '#ProperNoun (van|al|bin) #ProperNoun', tag: 'Person', reason: 'title-van-title', safe: true }, + //jose de Sucre + { match: '#ProperNoun (de|du) la? #ProperNoun', tag: 'Person', reason: 'title-de-title' }, + //Jani K. Smith + { match: '#Singular #Acronym #LastName', tag: '#FirstName #Person .', reason: 'title-acro-noun', safe: true }, + //Foo Ford + { match: '[#ProperNoun] #Person', group: 0, tag: 'Person', reason: 'proper-person', safe: true }, + // john keith jones + { match: '#Person [#ProperNoun #ProperNoun]', group: 0, tag: 'Person', ifNo: '#Possessive', reason: 'three-name-person', safe: true }, + //John Foo + { match: '#FirstName #Acronym? [#ProperNoun]', group: 0, tag: 'LastName', ifNo: '#Possessive', reason: 'firstname-titlecase' }, + // john stewart + { match: '#FirstName [#FirstName]', group: 0, tag: 'LastName', reason: 'firstname-firstname' }, + //Joe K. Sombrero + { match: '#FirstName #Acronym #Noun', tag: 'Person', reason: 'n-acro-noun', safe: true }, + //Anthony de Marco + { match: '#FirstName [(de|di|du|van|von)] #Person', group: 0, tag: 'LastName', reason: 'de-firstname' }, + //Joe springer sr + { match: '#ProperNoun [#Honorific]', group: 0, tag: 'Person', reason: 'last-sr' }, + // dr john foobar + { match: '#Honorific #FirstName [#Singular]', group: 0, tag: 'LastName', ifNo: '#Possessive', reason: 'dr-john-foo', safe: true }, + //his-excellency + { + match: '[(his|her) (majesty|honour|worship|excellency|honorable)] #Person', + group: 0, + tag: ['Honorific', 'Person'], + reason: 'his-excellency', + }, + //general pearson + { match: '#Honorific #Person', tag: 'Person', reason: 'honorific-person' }, + ]; + + const personAdj = '(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)'; + + var personName = [ + // ===person-date=== + // in june + // { match: `(in|during|on|by|after|#Date) [${personDate}]`, group: 0, tag: 'Date', reason: 'in-june' }, + // // june 1992 + // { match: `${personDate} (#Value|#Date)`, tag: 'Date', reason: 'june-5th' }, + // // June Smith + // { match: `${personDate} #ProperNoun`, tag: 'Person', reason: 'june-smith', safe: true }, + // // june m. Cooper + // { match: `${personDate} #Acronym? #ProperNoun`, tag: 'Person', ifNo: '#Month', reason: 'june-smith-jr' }, + // // ---person-month--- + // //give to april + // { + // match: `#Infinitive #Determiner? #Adjective? #Noun? (to|for) [${personMonth}]`, + // group: 0, + // tag: 'Person', + // reason: 'ambig-person', + // }, + // // remind june + // { match: `#Infinitive [${personMonth}]`, group: 0, tag: 'Person', reason: 'infinitive-person' }, + // // april will + // { match: `[${personMonth}] #Modal`, group: 0, tag: 'Person', reason: 'ambig-modal' }, + // // would april + // { match: `#Modal [${personMonth}]`, group: 0, tag: 'Person', reason: 'modal-ambig' }, + // // it is may + // { match: `#Copula [${personMonth}]`, group: 0, tag: 'Person', reason: 'is-may' }, + // may is + // { match: `[%Person|Date%] #Copula`, group: 0, tag: 'Person', reason: 'may-is' }, + // may the + // { match: `[%Person|Date%] the`, group: 0, tag: 'Date', reason: 'may-the' }, + // of may + // { match: `of [%Person|Date%]`, group: 0, tag: 'Date', reason: 'of-may' }, + // // with april + // { match: `(that|with|for) [${personMonth}]`, group: 0, tag: 'Person', reason: 'that-month' }, + // // may 5th + // { match: `[${personMonth}] the? #Value`, group: 0, tag: 'Month', reason: 'may-5th' }, + + // ===person-date=== + { match: '%Person|Date% #Acronym? #ProperNoun', tag: 'Person', reason: 'jan-thierson' }, + // ===person-noun=== + //Cliff Clavin + { match: '%Person|Noun% #Acronym? #ProperNoun', tag: 'Person', reason: 'switch-person', safe: true }, + // olive garden + { match: '%Person|Noun% #Organization', tag: 'Organization', reason: 'olive-garden' }, + // ===person-verb=== + // 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)`, group: 0, tag: 'Person', reason: 'person-said' }, + + // ===person-place=== + //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%]`, group: 0, tag: 'Place', reason: 'east-sydney' }, + + // ===person-adjective=== + // rusty smith + { match: `${personAdj} #Person`, tag: 'Person', reason: 'randy-smith' }, + // rusty a. smith + { match: `${personAdj} #Acronym? #ProperNoun`, tag: 'Person', reason: 'rusty-smith' }, + // very rusty + { match: `#Adverb [${personAdj}]`, group: 0, tag: 'Adjective', reason: 'really-rich' }, + + // ===person-verb=== + // would wade + { match: `#Modal [%Person|Verb%]`, group: 0, tag: 'Verb', reason: 'would-mark' }, + // really wade + { match: `#Adverb [%Person|Verb%]`, group: 0, tag: 'Verb', reason: 'really-mark' }, + // drew closer + { match: `[%Person|Verb%] (#Adverb|#Comparative)`, group: 0, tag: 'Verb', reason: 'drew-closer' }, + // wade smith + { match: `%Person|Verb% #Person`, tag: 'Person', reason: 'rob-smith' }, + // wade m. Cooper + { match: `%Person|Verb% #Acronym #ProperNoun`, tag: 'Person', reason: 'rob-a-smith' }, + // will go + { match: '[will] #Verb', group: 0, tag: 'Modal', reason: 'will-verb' }, + // will Pharell + { match: '(will && @isTitleCase) #ProperNoun', tag: 'Person', reason: 'will-name' }, + ]; + + var verbs$1 = [ + //sometimes adverbs - 'pretty good','well above' + { + match: '#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)', + tag: '#Copula #Adverb #Adjective', + reason: 'sometimes-adverb', + }, + //i better .. + { match: '(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense', group: 0, tag: 'Modal', reason: 'i-better' }, + // 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' }, + + // ==== Copula ==== + //will be running (not copula) + { match: 'will #Adverb? not? #Adverb? [be] #Gerund', group: 0, tag: 'Copula', reason: 'will-be-copula' }, + //for more complex forms, just tag 'be' + { match: 'will #Adverb? not? #Adverb? [be] #Adjective', group: 0, tag: 'Copula', reason: 'be-copula' }, + // ==== Infinitive ==== + //march to + { match: '[march] (up|down|back|toward)', notIf: ['#Date'], group: 0, tag: 'Infinitive', reason: 'march-to' }, + //must march + { match: '#Modal [march]', group: 0, tag: 'Infinitive', reason: 'must-march' }, + // may be + { match: `[may] be`, group: 0, tag: 'Verb', reason: 'may-be' }, + // subject to + { match: `[(subject|subjects|subjected)] to`, group: 0, tag: 'Verb', reason: 'subject to' }, + // subject to + { match: `[home] to`, group: 0, tag: 'PresentTense', reason: 'home to' }, + + // === misc== + // side with + // { match: '[(side|fool|monkey)] with', group: 0, tag: 'Infinitive', reason: 'fool-with' }, + // open the door + { match: '[open] #Determiner', group: 0, tag: 'Infinitive', reason: 'open-the' }, + //were being run + { match: `(were|was) being [#PresentTense]`, group: 0, tag: 'PastTense', reason: 'was-being' }, + //had been broken + { match: `(had|has|have) [been /en$/]`, group: 0, tag: 'Auxiliary Participle', reason: 'had-been-broken' }, + //had been smoked + { match: `(had|has|have) [been /ed$/]`, group: 0, tag: 'Auxiliary PastTense', reason: 'had-been-smoked' }, + //were being run + { match: `(had|has) #Adverb? [been] #Adverb? #PastTense`, group: 0, tag: 'Auxiliary', reason: 'had-been-adj' }, + //had to walk + { match: `(had|has) to [#Noun] (#Determiner|#Possessive)`, group: 0, tag: 'Infinitive', reason: 'had-to-noun' }, + // have read + { match: `have [#PresentTense]`, group: 0, tag: 'PastTense', ifNo: ['come', 'gotten'], reason: 'have-read' }, + // does that work + { match: `(does|will|#Modal) that [work]`, group: 0, tag: 'PastTense', reason: 'does-that-work' }, + // sounds fun + { match: `[(sound|sounds)] #Adjective`, group: 0, tag: 'PresentTense', reason: 'sounds-fun' }, + // look good + { match: `[(look|looks)] #Adjective`, group: 0, tag: 'PresentTense', reason: 'looks-good' }, + // needs to learn + { match: `[(need|needs)] to #Infinitive`, group: 0, tag: 'PresentTense', reason: 'need-to-learn' }, + // stops thinking + { match: `[(start|starts|stop|stops|begin|begins)] #Gerund`, group: 0, tag: 'Verb', reason: 'starts-thinking' }, + //were under cooked + { + match: `(is|was|were) [(under|over) #PastTense]`, + group: 0, + tag: 'Adverb Adjective', + reason: 'was-under-cooked', + }, + + // damn them + { 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' }, + + // 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' }, + ]; + + // 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' }, + //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' }, + // 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' }, + // 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 + { match: 'will [be] #PastTense', group: 0, tag: 'Auxiliary', reason: 'will-be-x' }, + // been walking + { match: '[(be|been)] (#Adverb|not)+? #Gerund', group: 0, tag: 'Auxiliary', reason: 'been-walking' }, + // 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' }, + // tell me + { match: '#Imperative [(me|him|her)]', group: 0, tag: 'Reflexive', reason: 'tell-him' }, + // there is no x + { match: '(is|was) #Adverb? [no]', group: 0, tag: 'Negative', reason: 'is-no' }, + ]; + + var phrasal = [ + // ==== Phrasal ==== + //'foo-up' + { 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' }, + // walk in on + { + match: '[#Verb (in|out|up|down|off|back)] (on|in)', + ifNo: ['#Copula'], + tag: 'PhrasalVerb Particle', + reason: 'walk-in-on', + }, + //fall over + { match: '#PhrasalVerb [#PhrasalVerb]', group: 0, tag: 'Particle', reason: 'phrasal-particle' }, + // went on for + { match: '(lived|went|crept|go) [on] for', group: 0, tag: 'PhrasalVerb', reason: 'went-on' }, + // got me thinking + // { match: '(got|had) me [#Noun]', group: 0, tag: 'Verb', reason: 'got-me-gerund' }, + // help stop + { match: 'help [(stop|end|make|start)]', group: 0, tag: 'Infinitive', reason: 'help-stop' }, + // start listening + { match: '[(stop|start|finish|help)] #Gerund', group: 0, tag: 'Infinitive', reason: 'start-listening' }, + // mis-fired + // { match: '[(mis)] #Verb', group: 0, tag: 'Verb', reason: 'mis-firedsa' }, + //back it up + { + match: '#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]', + group: 0, + tag: 'Adverb', + reason: 'phrasal-pronoun-advb', + }, + ]; + + // this is really hard to do + const notIf = ['i', 'we', 'they']; //we do not go + var imperative = [ + // do not go + { match: '^do not? [#Infinitive #Particle?]', notIf, group: 0, tag: 'Imperative', reason: 'do-eat' }, + // please go + { match: '^please do? not? [#Infinitive #Particle?]', group: 0, tag: 'Imperative', reason: 'please-go' }, + // just go + { match: '^just do? not? [#Infinitive #Particle?]', group: 0, tag: 'Imperative', reason: 'just-go' }, + // do it better + { match: '^[#Infinitive] it #Comparative', notIf, group: 0, tag: 'Imperative', reason: 'do-it-better' }, + // do it again + { match: '^[#Infinitive] it (please|now|again|plz)', notIf, group: 0, tag: 'Imperative', reason: 'do-it-please' }, + // go! + // { match: '^[#Infinitive]$', group: 0, tag: 'Imperative', reason: 'go' }, + // go quickly. + { match: '^[#Infinitive] (#Adjective|#Adverb)$', group: 0, tag: 'Imperative', ifNo: ['so', 'such', 'rather', 'enough'], reason: 'go-quickly' }, + // turn down the noise + { match: '^[#Infinitive] (up|down|over) #Determiner', group: 0, tag: 'Imperative', reason: 'turn-down' }, + // eat my shorts + { match: '^[#Infinitive] (your|my|the|some|a|an)', group: 0, ifNo: 'like', tag: 'Imperative', reason: 'eat-my-shorts' }, + // tell him the story + { match: '^[#Infinitive] (him|her|it|us|me)', group: 0, tag: 'Imperative', reason: 'tell-him' }, + // avoid loud noises + { match: '^[#Infinitive] #Adjective #Noun$', group: 0, tag: 'Imperative', reason: 'avoid-loud-noises' }, + // one-word imperatives + { match: '^(go|stop|wait|hurry) please?$', tag: 'Imperative', reason: 'go' }, + // somebody call + { match: '^(somebody|everybody) [#Infinitive]', group: 0, tag: 'Imperative', reason: 'somebody-call' }, + // let's leave + { match: '^let (us|me) [#Infinitive]', group: 0, tag: 'Imperative', reason: 'lets-leave' }, + // shut the door + { 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 + { match: '^stay (out|away|back)', tag: 'Imperative', reason: 'stay-away' }, + // stay cool + { match: '^[stay] #Adjective', tag: 'Imperative', reason: 'stay-cool' }, + // keep it silent + { match: '^[keep it] #Adjective', group: 0, tag: 'Imperative', reason: 'keep-it-cool' }, + // don't be late + { match: '^do not [#Infinitive]', group: 0, tag: 'Imperative', reason: 'do-not-be' }, + // allow yourself + { match: '[#Infinitive] (yourself|yourselves)', group: 0, tag: 'Imperative', reason: 'allow-yourself' }, + ]; + + var adjGerund = [ + // that were growing + { match: '(that|which) were [%Adj|Gerund%]', group: 0, tag: 'Gerund', reason: 'that-were-growing' }, + + + // { match: '(that|which) were [%Adj|Gerund%]', group: 0, tag: 'Gerund', reason: 'that-were-growing' }, + + ]; + + // order matters + let matches$1 = [ + // u r cool + { match: 'u r', tag: '#Pronoun #Copula', reason: 'u r' }, + { match: '#Noun [(who|whom)]', group: 0, tag: 'Determiner', reason: 'captain-who' }, + + // ==== Conditions ==== + // had he survived, + { match: '[had] #Noun+ #PastTense', group: 0, tag: 'Condition', reason: 'had-he' }, + // were he to survive + { match: '[were] #Noun+ to #Infinitive', group: 0, tag: 'Condition', reason: 'were-he' }, + + //swear-words as non-expression POS + { match: 'holy (shit|fuck|hell)', tag: 'Expression', reason: 'swears-expression' }, + // well.. + { 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' }, + + // such skill + { match: '[such] (a|an|is)? #Noun', group: 0, tag: 'Determiner', reason: 'such-skill' }, + // that is + // { match: '^[that] (is|was)', group: 0, tag: 'Noun', reason: 'that-is' }, + + // sorry + { match: '(say|says|said) [sorry]', group: 0, tag: 'Expression', reason: 'say-sorry' }, + + // double-prepositions + // rush out of + { + match: '#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition', + group: 0, + ifNo: ['#Copula'],//were out + tag: 'Particle', + reason: 'rush-out', + }, + // at about + { match: '#Preposition [about]', group: 0, tag: 'Adjective', reason: 'at-about' }, + // dude we should + { match: '^[(dude|man|girl)] #Pronoun', group: 0, tag: 'Expression', reason: 'dude-i' }, + // are welcome + // { match: '#Copula [#Expression]', group: 0, tag: 'Noun', reason: 'are-welcome' }, + ]; + var misc$1 = matches$1; + + // import orgWords from './_orgWords.js' + // let orgMap = `(${orgWords.join('|')})` + + /* + const multi = [ + 'building society', + 'central bank', + 'department store', + 'institute of technology', + 'liberation army', + 'people party', + 'social club', + 'state police', + 'state university', + ] + */ + + var orgs$1 = [ + // Foo University + // { match: `#Noun ${orgMap}`, tag: 'Organization', safe: true, reason: 'foo-university' }, + // // University of Toronto + // { match: `${orgMap} of #Place`, tag: 'Organization', safe: true, reason: 'university-of-foo' }, + + // // foo regional health authority + // { match: `${orgMap} (health|local|regional)+ authority`, tag: 'Organization', reason: 'regional-health' }, + // // foo stock exchange + // { match: `${orgMap} (stock|mergantile)+ exchange`, tag: 'Organization', reason: 'stock-exchange' }, + // // foo news service + // { match: `${orgMap} (daily|evening|local)+ news service?`, tag: 'Organization', reason: 'foo-news' }, + + //John & Joe's + { match: '#Noun (&|n) #Noun', tag: 'Organization', reason: 'Noun-&-Noun' }, + // teachers union of Ontario + { match: '#Organization of the? #ProperNoun', tag: 'Organization', reason: 'org-of-place', safe: true }, + //walmart USA + { match: '#Organization #Country', tag: 'Organization', reason: 'org-country' }, + //organization + { match: '#ProperNoun #Organization', tag: 'Organization', reason: 'titlecase-org' }, + //FitBit Inc + { match: '#ProperNoun (ltd|co|inc|dept|assn|bros)', tag: 'Organization', reason: 'org-abbrv' }, + // the OCED + { match: 'the [#Acronym]', group: 0, tag: 'Organization', reason: 'the-acronym', safe: true }, + // global trade union + { + match: '(world|global|international|national|#Demonym) #Organization', + tag: 'Organization', + reason: 'global-org', + }, + // schools + { match: '#Noun+ (public|private) school', tag: 'School', reason: 'noun-public-school' }, + ]; + + var places$1 = [ + // ==== Region ==== + //West Norforlk + { + match: '(west|north|south|east|western|northern|southern|eastern)+ #Place', + tag: 'Region', + reason: 'west-norfolk', + }, + //some us-state acronyms (exlude: al, in, la, mo, hi, me, md, ok..) + { + 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', + }, + // portland oregon + { + match: 'portland [or]', + group: 0, + tag: 'Region', + reason: 'portland-or', + }, + //Foo District + { + match: '#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)', + tag: 'Region', + reason: 'foo-district', + }, + //District of Foo + { + match: '(district|region|province|municipality|territory|burough|state) of #ProperNoun', + tag: 'Region', + reason: 'district-of-Foo', + }, + // in Foo California + { + match: 'in [#ProperNoun] #Place', + group: 0, + tag: 'Place', + reason: 'propernoun-place', + }, + // ==== Address ==== + { + match: '#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)', + tag: 'Address', + reason: 'address-st', + }, + ]; + + var conjunctions = [ + // ==== Conjunctions ==== + { match: '[so] #Noun', group: 0, tag: 'Conjunction', reason: 'so-conj' }, + //how he is driving + { + match: '[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)', + group: 0, + tag: 'Conjunction', + reason: 'how-he-is-x', + }, + // when he + { match: '#Copula [(who|what|where|why|how|when)] #Noun', group: 0, tag: 'Conjunction', reason: 'when-he' }, + // says that he.. + { match: '#Verb [that] #Pronoun', group: 0, tag: 'Conjunction', reason: 'said-that-he' }, + // things that are required + { match: '#Noun [that] #Copula', group: 0, tag: 'Conjunction', reason: 'that-are' }, + // things that seem cool + { match: '#Noun [that] #Verb #Adjective', group: 0, tag: 'Conjunction', reason: 'that-seem' }, + // wasn't that wide.. + { match: '#Noun #Copula not? [that] #Adjective', group: 0, tag: 'Adverb', reason: 'that-adj' }, + + // ==== Prepositions ==== + //all students + { match: '#Verb #Adverb? #Noun [(that|which)]', group: 0, tag: 'Preposition', reason: 'that-prep' }, + //work, which has been done. + { match: '@hasComma [which] (#Pronoun|#Verb)', group: 0, tag: 'Preposition', reason: 'which-copula' }, + //folks like her + { match: '#Noun [like] #Noun', group: 0, tag: 'Preposition', reason: 'noun-like' }, + //like the time + { match: '^[like] #Determiner', group: 0, tag: 'Preposition', reason: 'like-the' }, + // really like + { match: '#Adverb [like]', group: 0, tag: 'Verb', reason: 'really-like' }, + // nothing like + { match: '(not|nothing|never) [like]', group: 0, tag: 'Preposition', reason: 'nothing-like' }, + // treat them like + { match: '#Verb #Pronoun [like]', group: 0, tag: 'Preposition', reason: 'treat-them-like' }, + + + + + // ==== Questions ==== + // where + // why + // when + // who + // whom + // whose + // what + // which + //the word 'how many' + // { match: '^(how|which)', tag: 'QuestionWord', reason: 'how-question' }, + // how-he, when the + { match: '[#QuestionWord] (#Pronoun|#Determiner)', group: 0, tag: 'Preposition', reason: 'how-he' }, + // when stolen + { match: '[#QuestionWord] #Participle', group: 0, tag: 'Preposition', reason: 'when-stolen' }, + // how is + { match: '[how] (#Determiner|#Copula|#Modal|#PastTense)', group: 0, tag: 'QuestionWord', reason: 'how-is' }, + // children who dance + { match: '#Plural [(who|which|when)] .', group: 0, tag: 'Preposition', reason: 'people-who' }, + ]; + + let matches = [].concat( + adj, + advAdj, + gerundAdj, + nounAdj, + adv, + ambigDates, + dates, + noun, + gerundNouns, + presNouns, + money, + fractions$1, + numbers$2, + person, + personName, + verbs$1, + adjVerb, + auxiliary, + phrasal, + imperative, + adjGerund, + misc$1, + orgs$1, + places$1, + conjunctions + ); + var model = { + two: { + matches, + }, + }; + + let net$1 = null; + + // runs all match/tag patterns in model.two.matches + const postTagger = function (view) { + const { world } = view; + const { model, methods } = world; + 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 => { + let t = terms[0]; + return [t.index[0], t.index[1], t.index[1] + terms.length] + }); + let m = view.update(ptrs); + m.cache(); + m.sweep(net$1); + view.uncache(); + // view.cache() + return view + }; + + var compute$1 = { postTagger }; + + const round$1 = n => Math.round(n * 100) / 100; + + function api$k (View) { + // average tagger score + View.prototype.confidence = function () { + let sum = 0; + let count = 0; + this.docs.forEach(terms => { + terms.forEach(term => { + count += 1; + sum += term.confidence || 1; + }); + }); + if (count === 0) { + return 1 + } + return round$1(sum / count) + }; + + // (re-) run the POS-tagger + View.prototype.tagger = function () { + return this.compute(['preTagger', 'contractionTwo', 'postTagger']) + }; + } + + const plugin$2 = { + api: api$k, + compute: compute$1, + model, + hooks: ['postTagger'], + }; + var postTag = plugin$2; + + const matchVerb = function (m, lemma) { + const conjugate = m.methods.two.transform.verbConjugate; + let all = conjugate(lemma, m.model); + if (m.has('#PastTense')) { + return all.PastTense + } + if (m.has('#PresentTense')) { + return all.PresentTense + } + if (m.has('#Gerund')) { + return all.Gerund + } + return lemma + }; + + const swapVerb = function (m, lemma) { + let str = lemma; + if (!m.has('#Infinitive')) { + str = matchVerb(m, lemma); + } + m.replaceWith(str); + }; + var swapVerb$1 = swapVerb; + + const swapNoun = function (m, lemma) { + let str = lemma; + if (m.has('#Plural')) { + const toPlural = m.methods.two.transform.nounToPlural; + str = toPlural(lemma, m.model); + } + m.replaceWith(str); + }; + + const swapAdverb = function (m, lemma) { + const toAdverb = m.methods.two.transform.adjToAdverb; + let str = lemma; + let adv = toAdverb(str); + if (adv) { + m.replaceWith(adv); + } + }; + + const swap$1 = function (from, to, tag) { + let m = this.match(`{${from}}`); + // guard against some homonyms + if (tag) { + m = m.if(tag); + } + if (m.has('#Verb')) { + return swapVerb$1(m, to) + } + if (m.has('#Noun')) { + return swapNoun(m, to) + } + if (m.has('#Adverb')) { + return swapAdverb(m, to) + } + return this + }; + var swap$2 = swap$1; + + const api$j = function (View) { + View.prototype.swap = swap$2; + }; + + var swap = { + api: api$j + }; + + nlp$1.plugin(preTag); //~103kb + nlp$1.plugin(contractionTwo); // + nlp$1.plugin(postTag); //~33kb + nlp$1.plugin(swap); // + + const clauses = function (n) { + // an awkward way to disambiguate a comma use + let commas = this.if('@hasComma') + .ifNo('@hasComma @hasComma') //fun, cool... + .ifNo('@hasComma (and|or) .') //cool, and fun + .ifNo('(#City && @hasComma) #Country') //'toronto, canada' + .ifNo('(#WeekDay && @hasComma) #Date') //'tuesday, march 2nd' + .ifNo('(#Date+ && @hasComma) #Value') //'july 6, 1992' + .ifNo('@hasComma (too|also)$') //at end of sentence + .match('@hasComma'); + let found = this.splitAfter(commas); + + // let quotes = found.quotations() + // found = found.splitOn(quotes) + + // let parentheses = found.parentheses() + // found = found.splitOn(parentheses) + + // it is cool and it is .. + let conjunctions = found.if('#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb').match('#Conjunction'); + found = found.splitBefore(conjunctions); + + // if it is this then that + let condition = found.if('if .{2,9} then .').match('then'); + found = found.splitBefore(condition); + + // misc clause partitions + found = found.splitBefore('as well as .'); + found = found.splitBefore('such as .'); + found = found.splitBefore('in addition to .'); + + // semicolons, dashes + found = found.splitAfter('@hasSemicolon'); + found = found.splitAfter('@hasDash'); + + // passive voice verb - '.. which was robbed is empty' + // let passive = found.match('#Noun (which|that) (was|is) #Adverb? #PastTense #Adverb?') + // if (passive.found) { + // found = found.splitAfter(passive) + // } + // //which the boy robbed + // passive = found.match('#Noun (which|that) the? #Noun+ #Adverb? #PastTense #Adverb?') + // if (passive.found) { + // found = found.splitAfter(passive) + // } + // does there appear to have relative/subordinate clause still? + let tooLong = found.filter(d => d.wordCount() > 5 && d.match('#Verb+').length >= 2); + if (tooLong.found) { + let m = tooLong.splitAfter('#Noun .* #Verb .* #Noun+'); + found = found.splitOn(m.eq(0)); + } + + if (typeof n === 'number') { + found = found.get(n); + } + return found + }; + + var clauses$1 = clauses; + + const chunks = function () { + let carry = []; + let ptr = null; + let current = null; + this.docs.forEach(terms => { + terms.forEach(term => { + // start a new chunk + if (term.chunk !== current) { + if (ptr) { + ptr[2] = term.index[1]; + carry.push(ptr); + } + current = term.chunk; + ptr = [term.index[0], term.index[1]]; + } + }); + }); + if (ptr) { + carry.push(ptr); + } + let parts = this.update(carry); + // split up verb-phrases, and noun-phrases + parts = parts.map(c => { + if (c.has('')) { + return c.nouns() + } + // if (c.has('')) { + // if (c.verbs().length > 1) { + // console.log(c.text()) + // } + // } + return c + }); + return parts + }; + var getChunks = chunks; + + const api$h = function (View) { + View.prototype.chunks = getChunks; + View.prototype.clauses = clauses$1; + }; + var api$i = api$h; + + const byWord = { + this: 'Noun', + then: 'Pivot' + }; + + // simply chunk Nouns as + const easyMode = function (document) { + for (let n = 0; n < document.length; n += 1) { + for (let t = 0; t < document[n].length; t += 1) { + let term = document[n][t]; + + if (byWord.hasOwnProperty(term.normal) === true) { + term.chunk = byWord[term.normal]; + continue + } + if (term.tags.has('Verb')) { + term.chunk = 'Verb'; + continue + } + if (term.tags.has('Noun') || term.tags.has('Determiner')) { + term.chunk = 'Noun'; + continue + } + // 100 cats + if (term.tags.has('Value')) { + term.chunk = 'Noun'; + continue + } + // + if (term.tags.has('QuestionWord')) { + term.chunk = 'Pivot'; + continue + } + + } + } + }; + var easyMode$1 = easyMode; + + // simply chunk Nouns as + const byNeighbour = function (document) { + for (let n = 0; n < document.length; n += 1) { + for (let t = 0; t < document[n].length; t += 1) { + let term = document[n][t]; + if (term.chunk) { + continue + } + // based on next-term + let onRight = document[n][t + 1]; + // based on last-term + let onLeft = document[n][t - 1]; + + //'is cool' vs 'the cool dog' + if (term.tags.has('Adjective')) { + // 'is cool' + if (onLeft && onLeft.tags.has('Copula')) { + term.chunk = 'Adjective'; + continue + } + // 'the cool' + if (onLeft && onLeft.tags.has('Determiner')) { + term.chunk = 'Noun'; + continue + } + // 'cool dog' + if (onRight && onRight.tags.has('Noun')) { + term.chunk = 'Noun'; + continue + } + continue + } + // 'really swimming' vs 'really cool' + if (term.tags.has('Adverb') || term.tags.has('Negative')) { + if (onLeft && onLeft.tags.has('Adjective')) { + term.chunk = 'Adjective'; + continue + } + if (onLeft && onLeft.tags.has('Verb')) { + term.chunk = 'Verb'; + continue + } + + if (onRight && onRight.tags.has('Adjective')) { + term.chunk = 'Adjective'; + continue + } + if (onRight && onRight.tags.has('Verb')) { + term.chunk = 'Verb'; + continue + } + } + } + } + }; + var byNeighbour$1 = byNeighbour; + + const rules = [ + // === Conjunction === + // that the houses + { match: '[that] #Determiner #Noun', group: 0, chunk: 'Pivot' }, + // estimated that + { match: '#PastTense [that]', group: 0, chunk: 'Pivot' }, + + // === Adjective === + // was really nice + { match: '#Copula #Adverb+? [#Adjective]', group: 0, chunk: 'Adjective' }, + // was nice + // { match: '#Copula [#Adjective]', group: 0, chunk: 'Adjective' }, + // nice and cool + { match: '#Adjective and #Adjective', chunk: 'Adjective' }, + // really nice + // { match: '#Adverb+ #Adjective', chunk: 'Adjective' }, + + // === Verb === + // quickly run + // { match: '#Adverb+ {Verb}', chunk: 'Verb' }, + // quickly and suddenly run + { match: '#Adverb+ and #Adverb #Verb', chunk: 'Verb' }, + // run quickly + // { match: '{Verb} #Adverb+', chunk: 'Verb' }, + // sitting near + { match: '#Gerund #Adjective', chunk: 'Verb' }, + // going to walk + { match: '#Gerund to #Verb', chunk: 'Verb' }, + // is no + // { match: '#Copula no', chunk: 'Verb' }, + // had not + // { match: '#Verb #Negative', chunk: 'Verb' }, + // not seen + // { match: '#Negative #Verb', chunk: 'Verb' }, + // not really + // { match: '#Negative #Adverb ', chunk: 'Verb' }, + // really not + { match: '#Adverb #Negative', chunk: 'Verb' }, + // want to see + { match: '(want|wants|wanted) to #Infinitive', chunk: 'Verb' }, + // walk ourselves + { match: '#Verb #Reflexive', chunk: 'Verb' }, + // tell him the story + { match: '#PresentTense [#Pronoun] #Determiner', group: 0, chunk: 'Verb' }, + // tries to walk + { match: '#Verb [to] #Adverb? #Infinitive', group: 0, chunk: 'Verb' }, + // upon seeing + { match: '[#Preposition] #Gerund', group: 0, chunk: 'Verb' }, + + // === Noun === + // the brown fox + // { match: '#Determiner #Adjective+ #Noun', chunk: 'Noun' }, + // the fox + // { match: '(the|this) ', chunk: 'Noun' }, + // brown fox + // { match: '#Adjective+ ', chunk: 'Noun' }, + // --- of --- + // son of a gun + { match: '#Noun of #Determiner? #Noun', chunk: 'Noun' }, + // --- in --- + { match: '#Noun in #Determiner? #Noun', chunk: 'Noun' }, + // indoor and outdoor seating + { match: '#Singular and #Determiner? #Singular', chunk: 'Noun' }, + // that is why + // { match: '[that] (is|was)', group: 0, chunk: 'Noun' }, + ]; + + let net = null; + const matcher = function (view, _, world) { + const { methods, model } = world; + net = net || methods.one.buildNet(rules, world); + view.sweep(net); + }; + var matcher$1 = matcher; + + const setChunk = function (term, chunk) { + const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; + if (env.DEBUG_CHUNKS) { + let str = (term.normal + "'").padEnd(8); + console.log(` | '${str} → \x1b[34m${chunk.padEnd(12)}\x1b[0m \x1b[2m -fallback- \x1b[0m`); // eslint-disable-line + } + term.chunk = chunk; + }; + + // ensure everything has a chunk + const fallback = function (document) { + for (let n = 0; n < document.length; n += 1) { + for (let t = 0; t < document[n].length; t += 1) { + let term = document[n][t]; + if (term.chunk === undefined) { + // conjunctions stand alone + if (term.tags.has('Conjunction')) { + setChunk(term, 'Pivot'); + } else if (term.tags.has('Preposition')) { + setChunk(term, 'Pivot'); + } else if (term.tags.has('Adverb')) { + setChunk(term, 'Verb'); + } + // just take the chunk on the right? + // else if (document[n][t + 1] && document[n][t + 1].chunk) { + // setChunk(term, document[n][t + 1].chunk) + // } + // // or take the chunk on the left + // else if (document[n][t - 1] && document[n][t - 1].chunk) { + // setChunk(term, document[n][t - 1].chunk) + else { + // ¯\_(ツ)_/¯ + term.chunk = 'Noun'; + } + } + } + } + }; + var fallback$1 = fallback; + + const fixUp = function (docs) { + let byChunk = []; + let current = null; + docs.forEach(terms => { + // ensure an adjective chunk is preceded by a copula + for (let i = 0; i < terms.length; i += 1) { + let term = terms[i]; + if (current && term.chunk === current) { + byChunk[byChunk.length - 1].terms.push(term); + } else { + byChunk.push({ chunk: term.chunk, terms: [term] }); + current = term.chunk; + } + } + }); + // ensure every verb-phrase actually has a verb + byChunk.forEach(c => { + if (c.chunk === 'Verb') { + const hasVerb = c.terms.find(t => t.tags.has('Verb')); + if (!hasVerb) { + c.terms.forEach(t => t.chunk = null); + } + } + }); + }; + var fixUp$1 = fixUp; + + /* Chunks: + Noun + Verb + Adjective + Pivot + */ + + const findChunks = function (view) { + const { document, world } = view; + easyMode$1(document); + byNeighbour$1(document); + matcher$1(view, document, world); + // matcher(view, document, world) //run it 2nd time + fallback$1(document); + fixUp$1(document); + }; + var compute = { chunks: findChunks }; + + var chunker = { + compute: compute, + api: api$i, + hooks: ['chunks'], + }; + + // return the nth elem of a doc + const getNth$f = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + const apostropheS = /'s$/; + + const find$b = function (doc) { + let m = doc.match('#Possessive+'); + // expand it to include 'john smith's' + if (m.has('#Person')) { + m = m.growLeft('#Person+'); + } + if (m.has('#Place')) { + m = m.growLeft('#Place+'); + } + if (m.has('#Organization')) { + m = m.growLeft('#Organization+'); + } + return m + }; + + + const api$g = function (View) { + + class Possessives extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Possessives'; + } + strip() { + this.docs.forEach(terms => { + terms.forEach(term => { + term.text = term.text.replace(apostropheS, ''); + term.normal = term.normal.replace(apostropheS, ''); + }); + }); + return this + } + } + + View.prototype.possessives = function (n) { + let m = find$b(this); + m = getNth$f(m, n); + return new Possessives(m.document, m.pointer) + }; + }; + var addPossessives = api$g; + + const hasOpen$1 = /\(/; + const hasClosed$1 = /\)/; + + const findEnd$1 = function (terms, i) { + for (; i < terms.length; i += 1) { + if (terms[i].post && hasClosed$1.test(terms[i].post)) { + return i + } + } + return null + }; + + const find$a = function (doc) { + let ptrs = []; + doc.docs.forEach(terms => { + for (let i = 0; i < terms.length; i += 1) { + let term = terms[i]; + if (term.pre && hasOpen$1.test(term.pre)) { + let end = findEnd$1(terms, i); + if (end !== null) { + let [n, start] = terms[i].index; + ptrs.push([n, start, end + 1, terms[i].id]); + i = end; + } + } + } + }); + return doc.update(ptrs) + }; + + const strip$1 = function (m) { + m.docs.forEach(terms => { + terms[0].pre = terms[0].pre.replace(hasOpen$1, ''); + let last = terms[terms.length - 1]; + last.post = last.post.replace(hasClosed$1, ''); + }); + return m + }; + + const getNth$e = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + const api$f = function (View) { + + class Parentheses extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Possessives'; + } + strip() { + return strip$1(this) + } + } + + View.prototype.parentheses = function (n) { + let m = find$a(this); + m = getNth$e(m, n); + return new Parentheses(m.document, m.pointer) + }; + }; + var addParentheses = api$f; + + const pairs = { + '\u0022': '\u0022', // 'StraightDoubleQuotes' + '\uFF02': '\uFF02', // 'StraightDoubleQuotesWide' + '\u0027': '\u0027', // 'StraightSingleQuotes' + '\u201C': '\u201D', // 'CommaDoubleQuotes' + '\u2018': '\u2019', // 'CommaSingleQuotes' + '\u201F': '\u201D', // 'CurlyDoubleQuotesReversed' + '\u201B': '\u2019', // 'CurlySingleQuotesReversed' + '\u201E': '\u201D', // 'LowCurlyDoubleQuotes' + '\u2E42': '\u201D', // 'LowCurlyDoubleQuotesReversed' + '\u201A': '\u2019', // 'LowCurlySingleQuotes' + '\u00AB': '\u00BB', // 'AngleDoubleQuotes' + '\u2039': '\u203A', // 'AngleSingleQuotes' + // Prime 'non quotation' + '\u2035': '\u2032', // 'PrimeSingleQuotes' + '\u2036': '\u2033', // 'PrimeDoubleQuotes' + '\u2037': '\u2034', // 'PrimeTripleQuotes' + // Prime 'quotation' variation + '\u301D': '\u301E', // 'PrimeDoubleQuotes' + '\u0060': '\u00B4', // 'PrimeSingleQuotes' + '\u301F': '\u301E', // 'LowPrimeDoubleQuotesReversed' + }; + + const hasOpen = RegExp('(' + Object.keys(pairs).join('|') + ')'); + const hasClosed = RegExp('(' + Object.values(pairs).join('|') + ')'); + + const findEnd = function (terms, i) { + const have = terms[i].pre.match(hasOpen)[0] || ''; + if (!have || !pairs[have]) { + return null + } + const want = pairs[have]; + for (; i < terms.length; i += 1) { + if (terms[i].post && terms[i].post.match(want)) { + return i + } + } + return null + }; + + const find$9 = function (doc) { + let ptrs = []; + doc.docs.forEach(terms => { + for (let i = 0; i < terms.length; i += 1) { + let term = terms[i]; + if (term.pre && hasOpen.test(term.pre)) { + let end = findEnd(terms, i); + if (end !== null) { + let [n, start] = terms[i].index; + ptrs.push([n, start, end + 1, terms[i].id]); + i = end; + } + } + } + }); + return doc.update(ptrs) + }; + + const strip = function (m) { + m.docs.forEach(terms => { + terms[0].pre = terms[0].pre.replace(hasOpen, ''); + let lastTerm = terms[terms.length - 1]; + lastTerm.post = lastTerm.post.replace(hasClosed, ''); + }); + }; + + const getNth$d = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + const api$e = function (View) { + + class Quotations extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Possessives'; + } + strip() { + return strip(this) + } + } + + View.prototype.quotations = function (n) { + let m = find$9(this); + m = getNth$d(m, n); + return new Quotations(m.document, m.pointer) + }; + }; + var addQuotations = api$e; + + // return the nth elem of a doc + const getNth$c = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + const hasPeriod = /\./g; + + const api$d = function (View) { + + class Acronyms extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Acronyms'; + } + strip() { + this.docs.forEach(terms => { + terms.forEach(term => { + term.text = term.text.replace(hasPeriod, ''); + term.normal = term.normal.replace(hasPeriod, ''); + }); + }); + return this + } + addPeriods() { + this.docs.forEach(terms => { + terms.forEach(term => { + term.text = term.text.replace(hasPeriod, ''); + term.normal = term.normal.replace(hasPeriod, ''); + term.text = term.text.split('').join('.') + '.'; + term.normal = term.normal.split('').join('.') + '.'; + }); + }); + return this + } + } + + View.prototype.acronyms = function (n) { + let m = this.match('#Acronym'); + m = getNth$c(m, n); + return new Acronyms(m.document, m.pointer) + }; + }; + var addAcronyms = api$d; + + // return the nth elem of a doc + const getNth$b = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + const api$c = function (View) { + + class Adverbs extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Adverbs'; + } + json(opts = {}) { + const toAdj = this.methods.two.transform.advToAdjective; + opts.normal = true; + return this.map(m => { + let json = m.toView().json(opts)[0] || {}; + json.adverb = { + adjective: toAdj(json.normal) + }; + return json + }, []) + } + } + + View.prototype.adverbs = function (n) { + let m = this.match('#Adverb'); + m = getNth$b(m, n); + return new Adverbs(m.document, m.pointer) + }; + }; + var addAdverbs = api$c; + + // return the nth elem of a doc + const getNth$a = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + // guard against superlative+comparative forms + const toRoot = function (adj) { + const { adjFromComparative, adjFromSuperlative } = adj.methods.two.transform; + let str = adj.text('normal'); + if (adj.has('#Comparative')) { + return adjFromComparative(str, adj.model) + } + if (adj.has('#Superlative')) { + return adjFromSuperlative(str, adj.model) + } + return str + }; + + const api$b = function (View) { + + class Adjectives extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Adjectives'; + } + json(opts = {}) { + const { adjToAdverb, adjToNoun, adjToSuperlative, adjToComparative } = this.methods.two.transform; + opts.normal = true; + return this.map(m => { + let json = m.toView().json(opts)[0] || {}; + let str = toRoot(m); + json.adjective = { + adverb: adjToAdverb(str), + noun: adjToNoun(str), + superlative: adjToSuperlative(str, this.model), + comparative: adjToComparative(str, this.model), + }; + return json + }, []) + } + adverbs() { + return this.before('#Adverb+$').concat(this.after('^#Adverb+')) + } + + toComparative(n) { + const { adjToComparative } = this.methods.two.transform; + return getNth$a(this, n).map(adj => { + let root = toRoot(adj); + let str = adjToComparative(root, this.model); + return adj.replaceWith(str) + }) + } + toSuperlative(n) { + const { adjToSuperlative } = this.methods.two.transform; + return getNth$a(this, n).map(adj => { + let root = toRoot(adj); + let str = adjToSuperlative(root, this.model); + return adj.replaceWith(str) + }) + } + toAdverb(n) { + const { adjToAdverb } = this.methods.two.transform; + return getNth$a(this, n).map(adj => { + let root = toRoot(adj); + let str = adjToAdverb(root, this.model); + return adj.replaceWith(str) + }) + } + toNoun(n) { + const { adjToNoun } = this.methods.two.transform; + return getNth$a(this, n).map(adj => { + let root = toRoot(adj); + let str = adjToNoun(root, this.model); + return adj.replaceWith(str) + }) + } + } + + View.prototype.adjectives = function (n) { + let m = this.match('#Adjective'); + m = getNth$a(m, n); + return new Adjectives(m.document, m.pointer) + }; + View.prototype.superlatives = function (n) { + let m = this.match('#Superlative'); + m = getNth$a(m, n); + return new Adjectives(m.document, m.pointer) + }; + View.prototype.comparatives = function (n) { + let m = this.match('#Comparative'); + m = getNth$a(m, n); + return new Adjectives(m.document, m.pointer) + }; + }; + var addAdjectives = api$b; + + // return the nth elem of a doc + const getNth$9 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + /** return anything tagged as a phone number */ + const phoneNumbers = function (n) { + let m = this.splitAfter('@hasComma'); + m = m.match('#PhoneNumber+'); + m = getNth$9(m, n); + return m + }; + + // setup easy helper methods + const selections = [ + ['hyphenated', '@hasHyphen .'], + ['hashTags', '#HashTag'], + ['emails', '#Email'], + ['emoji', '#Emoji'], + ['emoticons', '#Emoticon'], + ['atMentions', '#AtMention'], + ['urls', '#Url'], + ['pronouns', '#Pronoun'], + ['conjunctions', '#Conjunction'], + ['prepositions', '#Preposition'], + ['abbreviations', '#Abbreviation'], + ['honorifics', '#Honorific'], + ]; + + // aliases + let aliases = [ + ['emojis', 'emoji'], + ['atmentions', 'atMentions'], + ]; + + const addMethods = function (View) { + // add a list of new helper methods + selections.forEach(a => { + View.prototype[a[0]] = function (n) { + let m = this.match(a[1]); + return typeof n === 'number' ? m.get(n) : m + }; + }); + View.prototype.phoneNumbers = phoneNumbers; + // add aliases + aliases.forEach(a => { + View.prototype[a[0]] = View.prototype[a[1]]; + }); + }; + + var addSelections = addMethods; + + var misc = { + api: function (View) { + addSelections(View); + addPossessives(View); + addParentheses(View); + addQuotations(View); + addAdjectives(View); + addAdverbs(View); + addAcronyms(View); + } + }; + + const termLoop = function (view, cb) { + view.docs.forEach(terms => { + terms.forEach(cb); + }); + }; + + var methods = { + // remove titlecasing, uppercase + 'case': (doc) => { + termLoop(doc, (term) => { + term.text = term.text.toLowerCase(); + }); + }, + // visually romanize/anglicize 'Björk' into 'Bjork'. + 'unicode': (doc) => { + const world = doc.world; + const killUnicode = world.methods.one.killUnicode; + termLoop(doc, (term) => term.text = killUnicode(term.text, world)); + }, + // remove hyphens, newlines, and force one space between words + 'whitespace': (doc) => { + termLoop(doc, (term) => { + // one space between words + term.post = term.post.replace(/\s+/g, ' '); + term.post = term.post.replace(/\s([.,?!:;])/g, '$1');//no whitespace before a period, etc + // no whitepace before a word + term.pre = term.pre.replace(/\s+/g, ''); + }); + }, + // remove commas, semicolons - but keep sentence-ending punctuation + 'punctuation': (doc) => { + termLoop(doc, (term) => { + // turn dashes to spaces + term.post = term.post.replace(/[–—-]/g, ' '); + // remove comma, etc + term.post = term.post.replace(/[,:;]/g, ''); + // remove elipses + term.post = term.post.replace(/\.{2,}/g, ''); + // remove repeats + term.post = term.post.replace(/\?{2,}/g, '?'); + term.post = term.post.replace(/!{2,}/g, '!'); + // replace ?! + term.post = term.post.replace(/\?!+/g, '?'); + }); + // trim end + let docs = doc.docs; + let terms = docs[docs.length - 1]; + if (terms && terms.length > 0) { + let lastTerm = terms[terms.length - 1]; + lastTerm.post = lastTerm.post.replace(/ /g, ''); + } + }, + + // ====== subsets === + + // turn "isn't" to "is not" + 'contractions': (doc) => { + doc.contractions().expand(); + }, + //remove periods from acronyms, like 'F.B.I.' + 'acronyms': (doc) => { + doc.acronyms().strip(); + }, + //remove words inside brackets (like these) + 'parentheses': (doc) => { + doc.parentheses().strip(); + }, + // turn "Google's tax return" to "Google tax return" + 'possessives': (doc) => { + doc.possessives().strip(); + }, + // turn "tax return" to tax return + 'quotations': (doc) => { + doc.quotations().strip(); + }, + + // remove them + 'emoji': (doc) => { + doc.emojis().remove(); + }, + //turn 'Vice Admiral John Smith' to 'John Smith' + 'honorifics': (doc) => { + doc.match('#Honorific+ #Person').honorifics().remove(); + }, + // remove needless adverbs + 'adverbs': (doc) => { + doc.adverbs().remove(); + }, + + // turn "batmobiles" into "batmobile" + 'nouns': (doc) => { + doc.nouns().toSingular(); + }, + // turn all verbs into Infinitive form - "I walked" → "I walk" + 'verbs': (doc) => { + doc.verbs().toInfinitive(); + }, + // turn "fifty" into "50" + 'numbers': (doc) => { + doc.numbers().toNumber(); + }, + + }; + + // turn presets into key-vals + const split = (str) => { + return str.split('|').reduce((h, k) => { + h[k] = true; + return h + }, {}) + }; + + const light = 'unicode|punctuation|whitespace|acronyms'; + const medium = '|case|contractions|parentheses|quotations|emoji|honorifics'; + const heavy = '|possessives|adverbs|nouns|verbs'; + const presets = { + light: split(light), + medium: split(light + medium), + heavy: split(light + medium + heavy) + }; + + function api$a (View) { + View.prototype.normalize = function (opts = 'light') { + if (typeof opts === 'string') { + opts = presets[opts]; + } + // run each method + Object.keys(opts).forEach(fn => { + if (methods.hasOwnProperty(fn)) { + methods[fn](this, opts[fn]); + } + }); + return this + }; + } + + var normalize = { + api: api$a + }; + + const findNouns = function (doc) { + let m = doc.match(''); + let commas = m.match('@hasComma'); + // allow toronto, ontario + commas = commas.not('#Place'); + if (commas.found) { + m = m.splitAfter(commas); + } + // yo there + m = m.splitOn('#Expression'); + // these are individual nouns + m = m.splitOn('(he|she|we|you|they)'); + // a client i saw + m = m.splitOn('(#Noun|#Adjective) [#Pronoun]', 0); + // give him the best + m = m.splitOn('[#Pronoun] (#Determiner|#Value)', 0); + // the noise the slide makes + m = m.splitBefore('#Noun [(the|a|an)] #Adjective? #Noun', 0); + // here spencer slept + m = m.splitOn('[(here|there)] #Noun', 0); + // put it there + m = m.splitOn('[#Noun] (here|there)', 0); + // its great purposes + // m = m.splitAfter('#Possessive') + // his excuses + // m = m.splitAfter('(his|hers|yours|ours|theirs)') + //ensure there's actually a noun + m = m.if('#Noun'); + return m + }; + var find$8 = findNouns; + + // https://www.trentu.ca/history/subordinate-clause-and-complex-sentence + const list$1 = [ + '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', + ]; + + const isSubordinate = function (m) { + // athletes from toronto, days since december + if (m.before('#Preposition$').found) { + return true + } + let leadIn = m.before(); + if (!leadIn.found) { + return false + } + for (let i = 0; i < list$1.length; i += 1) { + if (m.has(list$1[i])) { + return true + } + } + return false + }; + var isSubordinate$1 = isSubordinate; + + const notPlural = '(#Pronoun|#Place|#Value|#Person|#Uncountable|#Month|#WeekDay|#Holiday|#Possessive)'; + + const isPlural$2 = function (m, root) { + // const { looksPlural } = m.world.methods.two + if (m.has('#Plural')) { + return true + } + // two singular nouns are plural noun phrase + if (m.has('#Noun and #Noun')) { + return true + } + if (m.has('(we|they)')) { + return true + } + // these can't be plural + if (root.has(notPlural) === true) { + return false + } + if (m.has('#Singular')) { + return false + } + // word-reg fallback + let str = root.text('normal'); + // ends with a brutal s fallback + return str.length > 3 && str.endsWith('s') && !str.endsWith('ss') + }; + var isPlural$3 = isPlural$2; + + const getRoot$1 = function (m) { + let tmp = m.clone(); + tmp = tmp.match('#Noun+'); + tmp = tmp.remove('(#Adjective|#Preposition|#Determiner|#Value)'); + // team's captain + // if (tmp.has('#Possessive .? #Noun')) { + tmp = tmp.not('#Possessive'); + // } + return tmp.first() + }; + + const parseNoun = function (m) { + let root = getRoot$1(m); + return { + determiner: m.match('#Determiner').eq(0), + adjectives: m.match('#Adjective'), + number: m.values(), + isPlural: isPlural$3(m, root), + isSubordinate: isSubordinate$1(m), + root: root, + } + }; + var parseNoun$1 = parseNoun; + + const toText$2 = m => m.text(); + const toArray$1 = m => m.json({ terms: false, normal: true }).map(s => s.normal); + + const getNum = function (m) { + let num = null; + if (!m.found) { + return num + } + let val = m.values(0); + if (val.found) { + let obj = val.parse()[0] || {}; + return obj.num + } + return num + }; + + const toJSON$2 = function (m) { + let res = parseNoun$1(m); + return { + root: toText$2(res.root), + number: getNum(res.number), + determiner: toText$2(res.determiner), + adjectives: toArray$1(res.adjectives), + isPlural: res.isPlural, + isSubordinate: res.isSubordinate, + } + }; + var toJSON$3 = toJSON$2; + + const keep$7 = { tags: true }; + + const hasPlural = function (parsed) { + let { root } = parsed; + if (root.has('^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$')) { + return false + } + return true + }; + + const toPlural = function (m, parsed) { + // already plural? + if (parsed.isPlural === true) { + return m + } + // is a plural appropriate? + if (!hasPlural(parsed)) { + return m + } + const { methods, model } = m.world; + const { nounToPlural } = methods.two.transform; + // inflect the root noun + let str = parsed.root.text('normal'); + let plural = nounToPlural(str, model); + m.match(parsed.root).replaceWith(plural, keep$7).tag('Plural', 'toPlural'); + // should we change the determiner/article? + if (parsed.determiner.has('(a|an)')) { + // 'a captain' -> 'the captains' + m.replace(parsed.determiner, 'the', keep$7); + } + return m + }; + var toPlural$1 = toPlural; + + const keep$6 = { tags: true }; + + const toSingular = function (m, parsed) { + // already singular? + if (parsed.isPlural === false) { + return m + } + const { methods, model } = m.world; + const { nounToSingular } = methods.two.transform; + // inflect the root noun + let str = parsed.root.text('normal'); + let single = nounToSingular(str, model); + m.replace(parsed.root, single, keep$6).tag('Singular', 'toPlural'); + // should we change the determiner/article? + // m.debug() + return m + }; + var toSingular$1 = toSingular; + + // return the nth elem of a doc + const getNth$8 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + // const isObject = val => Object.prototype.toString.call(val) === '[object Object]' + + const api$8 = function (View) { + class Nouns extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Nouns'; + } + + parse(n) { + return getNth$8(this, n).map(parseNoun$1) + } + + json(opts = {}) { + return this.map(m => { + let json = m.toView().json(opts)[0] || {}; + if (opts && opts.noun !== true) { + json.noun = toJSON$3(m); + } + return json + }, []) + } + + isPlural(n) { + let arr = this.filter(m => parseNoun$1(m).isPlural); + return getNth$8(arr, n) + } + + adjectives(n) { + let list = this.update([]); + this.forEach(m => { + let adj = parseNoun$1(m).adjectives; + if (adj.found) { + list = list.concat(adj); + } + }); + return getNth$8(list, n) + } + + toPlural(n) { + return getNth$8(this, n).map(m => { + return toPlural$1(m, parseNoun$1(m)) + }) + // return new Nouns(all.document, all.pointer) + } + + toSingular(n) { + return getNth$8(this, n).map(m => { + let res = parseNoun$1(m); + return toSingular$1(m, res) + }) + } + // create a new View, from this one + update(pointer) { + let m = new Nouns(this.document, pointer); + m._cache = this._cache; // share this full thing + return m + } + } + View.prototype.nouns = function (n) { + let m = find$8(this); + m = getNth$8(m, n); + return new Nouns(this.document, m.pointer) + }; + }; + var api$9 = api$8; + + var nouns = { + api: api$9, + }; + + const findFractions = function (doc, n) { + // five eighths + let m = doc.match('#Fraction+'); + // remove 'two and five eights' + m = m.filter(r => { + return !r.lookBehind('#Value and$').found + }); + // thirty seconds + m = m.notIf('#Value seconds'); + + if (typeof n === 'number') { + m = m.eq(n); + } + return m + }; + var find$7 = findFractions; + + //support global multipliers, like 'half-million' by doing 'million' then multiplying by 0.5 + const findModifiers = str => { + const mults = [ + { + reg: /^(minus|negative)[\s-]/i, + mult: -1, + }, + { + reg: /^(a\s)?half[\s-](of\s)?/i, + mult: 0.5, + }, + // { + // reg: /^(a\s)?quarter[\s\-]/i, + // mult: 0.25 + // } + ]; + for (let i = 0; i < mults.length; i++) { + if (mults[i].reg.test(str) === true) { + return { + amount: mults[i].mult, + str: str.replace(mults[i].reg, ''), + } + } + } + return { + amount: 1, + str: str, + } + }; + + var findModifiers$1 = findModifiers; + + var words = { + ones: { + zeroth: 0, + first: 1, + second: 2, + third: 3, + fourth: 4, + fifth: 5, + sixth: 6, + seventh: 7, + eighth: 8, + ninth: 9, + zero: 0, + one: 1, + two: 2, + three: 3, + four: 4, + five: 5, + six: 6, + seven: 7, + eight: 8, + nine: 9, + }, + teens: { + tenth: 10, + eleventh: 11, + twelfth: 12, + thirteenth: 13, + fourteenth: 14, + fifteenth: 15, + sixteenth: 16, + seventeenth: 17, + eighteenth: 18, + nineteenth: 19, + ten: 10, + eleven: 11, + twelve: 12, + thirteen: 13, + fourteen: 14, + fifteen: 15, + sixteen: 16, + seventeen: 17, + eighteen: 18, + nineteen: 19, + }, + tens: { + twentieth: 20, + thirtieth: 30, + fortieth: 40, + fourtieth: 40, + fiftieth: 50, + sixtieth: 60, + seventieth: 70, + eightieth: 80, + ninetieth: 90, + twenty: 20, + thirty: 30, + forty: 40, + fourty: 40, + fifty: 50, + sixty: 60, + seventy: 70, + eighty: 80, + ninety: 90, + }, + multiples: { + hundredth: 100, + thousandth: 1000, + millionth: 1e6, + billionth: 1e9, + trillionth: 1e12, + quadrillionth: 1e15, + quintillionth: 1e18, + sextillionth: 1e21, + septillionth: 1e24, + hundred: 100, + thousand: 1000, + million: 1e6, + billion: 1e9, + trillion: 1e12, + quadrillion: 1e15, + quintillion: 1e18, + sextillion: 1e21, + septillion: 1e24, + grand: 1000, + }, + }; + + //prevent things like 'fifteen ten', and 'five sixty' + const isValid = (w, has) => { + if (words.ones.hasOwnProperty(w)) { + if (has.ones || has.teens) { + return false + } + } else if (words.teens.hasOwnProperty(w)) { + if (has.ones || has.teens || has.tens) { + return false + } + } else if (words.tens.hasOwnProperty(w)) { + if (has.ones || has.teens || has.tens) { + return false + } + } + return true + }; + var isValid$1 = isValid; + + //concatenate into a string with leading '0.' + const parseDecimals = function (arr) { + let str = '0.'; + for (let i = 0; i < arr.length; i++) { + let w = arr[i]; + if (words.ones.hasOwnProperty(w) === true) { + str += words.ones[w]; + } else if (words.teens.hasOwnProperty(w) === true) { + str += words.teens[w]; + } else if (words.tens.hasOwnProperty(w) === true) { + str += words.tens[w]; + } else if (/^[0-9]$/.test(w) === true) { + str += w; + } else { + return 0 + } + } + return parseFloat(str) + }; + + var parseDecimals$1 = parseDecimals; + + //parse a string like "4,200.1" into Number 4200.1 + const parseNumeric$1 = str => { + //remove ordinal - 'th/rd' + str = str.replace(/1st$/, '1'); + str = str.replace(/2nd$/, '2'); + str = str.replace(/3rd$/, '3'); + str = str.replace(/([4567890])r?th$/, '$1'); + //remove prefixes + str = str.replace(/^[$€¥£¢]/, ''); + //remove suffixes + str = str.replace(/[%$€¥£¢]$/, ''); + //remove commas + str = str.replace(/,/g, ''); + //split '5kg' from '5' + str = str.replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/, '$1'); + return str + }; + + var parseNumeric$2 = parseNumeric$1; + + const improperFraction = /^([0-9,. ]+)\/([0-9,. ]+)$/; + + //some numbers we know + const casualForms = { + 'a few': 3, + 'a couple': 2, + 'a dozen': 12, + 'two dozen': 24, + zero: 0, + }; + + // a 'section' is something like 'fifty-nine thousand' + // turn a section into something we can add to - like 59000 + const section_sum = obj => { + return Object.keys(obj).reduce((sum, k) => { + sum += obj[k]; + return sum + }, 0) + }; + + //turn a string into a number + const parse$5 = function (str) { + //convert some known-numbers + if (casualForms.hasOwnProperty(str) === true) { + return casualForms[str] + } + //'a/an' is 1 + if (str === 'a' || str === 'an') { + return 1 + } + const modifier = findModifiers$1(str); + str = modifier.str; + let last_mult = null; + let has = {}; + let sum = 0; + let isNegative = false; + const terms = str.split(/[ -]/); + // const isFraction = findFraction(terms) + for (let i = 0; i < terms.length; i++) { + let w = terms[i]; + w = parseNumeric$2(w); + + if (!w || w === 'and') { + continue + } + if (w === '-' || w === 'negative') { + isNegative = true; + continue + } + if (w.charAt(0) === '-') { + isNegative = true; + w = w.substring(1); + } + + //decimal mode + if (w === 'point') { + sum += section_sum(has); + sum += parseDecimals$1(terms.slice(i + 1, terms.length)); + sum *= modifier.amount; + return sum + } + + //improper fraction + const fm = w.match(improperFraction); + if (fm) { + const num = parseFloat(fm[1].replace(/[, ]/g, '')); + const denom = parseFloat(fm[2].replace(/[, ]/g, '')); + if (denom) { + sum += num / denom || 0; + } + continue + } + // try to support 'two fifty' + if (words.tens.hasOwnProperty(w)) { + if (has.ones && Object.keys(has).length === 1) { + sum = has.ones * 100; + has = {}; + } + } + + //prevent mismatched units, like 'seven eleven' if not a fraction + if (isValid$1(w, has) === false) { + return null + } + + //buildOut section, collect 'has' values + if (/^[0-9.]+$/.test(w)) { + has.ones = parseFloat(w); //not technically right + } else if (words.ones.hasOwnProperty(w) === true) { + has.ones = words.ones[w]; + } else if (words.teens.hasOwnProperty(w) === true) { + has.teens = words.teens[w]; + } else if (words.tens.hasOwnProperty(w) === true) { + has.tens = words.tens[w]; + } else if (words.multiples.hasOwnProperty(w) === true) { + let mult = words.multiples[w]; + + //something has gone wrong : 'two hundred five hundred' + //possibly because it's a fraction + if (mult === last_mult) { + return null + } + //support 'hundred thousand' + //this one is tricky.. + if (mult === 100 && terms[i + 1] !== undefined) { + const w2 = terms[i + 1]; + if (words.multiples[w2]) { + mult *= words.multiples[w2]; //hundredThousand/hundredMillion + i += 1; + } + } + //natural order of things + //five thousand, one hundred.. + if (last_mult === null || mult < last_mult) { + sum += (section_sum(has) || 1) * mult; + last_mult = mult; + has = {}; + } else { + //maybe hundred .. thousand + sum += section_sum(has); + last_mult = mult; + sum = (sum || 1) * mult; + has = {}; + } + } + } + //dump the remaining has values + sum += section_sum(has); + //post-process add modifier + sum *= modifier.amount; + sum *= isNegative ? -1 : 1; + //dont return 0, if it went straight-through + if (sum === 0 && Object.keys(has).length === 0) { + return null + } + return sum + }; + + var parseText = parse$5; + + const endS = /s$/; + + // just using .toNumber() again may risk an infinite-loop + const parseNumber$1 = function (m) { + let str = m.text('reduced'); + return parseText(str) + }; + + let mapping = { + half: 2, + halve: 2, + quarter: 4, + }; + + const slashForm = function (m) { + let str = m.text('reduced'); + let found = str.match(/^([-+]?[0-9]+)\/([-+]?[0-9]+)(st|nd|rd|th)?s?$/); + if (found && found[1] && found[0]) { + return { + numerator: Number(found[1]), + denominator: Number(found[2]), + } + } + return null + }; + + // parse '4 out of 4' + const nOutOfN = function (m) { + let found = m.match('[#Value+] out of every? [#Value+]'); + if (found.found !== true) { + return null + } + let { num, den } = found.groups(); + if (!num || !den) { + return null + } + num = parseNumber$1(num); + den = parseNumber$1(den); + if (!num || !den) { + return null + } + if (typeof num === 'number' && typeof den === 'number') { + return { + numerator: num, + denominator: den, + } + } + return null + }; + + // parse 'five thirds' + const nOrinalth = function (m) { + let found = m.match('[(#Cardinal|a)+] [#Fraction+]'); + if (found.found !== true) { + return null + } + let { num, den } = found.groups(); + // -- parse numerator--- + // quick-support for 'a third' + if (num.has('a')) { + num = 1; + } else { + // abuse the number-parser for 'thirty three' + // let tmp = num.clone().unTag('Fraction') + // num = tmp.numbers().get()[0] + num = parseNumber$1(num); + } + // -- parse denominator -- + // turn 'thirds' into third + let str = den.text('reduced'); + if (endS.test(str)) { + str = str.replace(endS, ''); + den = den.replaceWith(str); + } + // support 'one half' as '1/2' + if (mapping.hasOwnProperty(str)) { + den = mapping[str]; + } else { + // dem = dem.numbers().get()[0] + den = parseNumber$1(den); + } + if (typeof num === 'number' && typeof den === 'number') { + return { + numerator: num, + denominator: den, + } + } + return null + }; + + // implied 1 in '100th of a', 'fifth of a' + const oneNth = function (m) { + let found = m.match('^#Ordinal$'); + if (found.found !== true) { + return null + } + // ensure it's '100th of a ' + if (m.lookAhead('^of .')) { + // let num = found.numbers().get()[0] + let num = parseNumber$1(found); + return { + numerator: 1, + denominator: num, + } + } + return null + }; + + // 'half' + const named = function (m) { + let str = m.text('reduced'); + if (mapping.hasOwnProperty(str)) { + return { numerator: 1, denominator: mapping[str] } + } + return null + }; + + const round = n => { + let rounded = Math.round(n * 1000) / 1000; + // don't round 1 millionth down into 0 + if (rounded === 0 && n !== 0) { + return n + } + return rounded + }; + + const parseFraction = function (m) { + m = m.clone(); + let res = named(m) || slashForm(m) || nOutOfN(m) || nOrinalth(m) || oneNth(m) || null; + if (res !== null) { + // do the math + if (res.numerator && res.denominator) { + res.decimal = res.numerator / res.denominator; + res.decimal = round(res.decimal); + } + } + return res + }; + var parseFraction$1 = parseFraction; + + /** + * turn big numbers, like 2.3e+22, into a string with a ton of trailing 0's + * */ + const numToString = function (n) { + if (n < 1000000) { + return String(n) + } + let str; + if (typeof n === 'number') { + str = n.toFixed(0); + } else { + str = n; + } + if (str.indexOf('e+') === -1) { + return str + } + return str + .replace('.', '') + .split('e+') + .reduce(function (p, b) { + return p + Array(b - p.length + 2).join(0) + }) + }; + var toString = numToString; + // console.log(numToString(2.5e+22)); + + const tens_mapping = [ + ['ninety', 90], + ['eighty', 80], + ['seventy', 70], + ['sixty', 60], + ['fifty', 50], + ['forty', 40], + ['thirty', 30], + ['twenty', 20], + ]; + const ones_mapping = [ + '', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', + 'ten', + 'eleven', + 'twelve', + 'thirteen', + 'fourteen', + 'fifteen', + 'sixteen', + 'seventeen', + 'eighteen', + 'nineteen', + ]; + + const sequence = [ + [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'], + [100000, 'hundred thousand'], + [1000, 'thousand'], + [100, 'hundred'], + [1, 'one'], + ]; + + /** + * turns an integer/float into.ber, like 'fifty-five' + */ + + //turn number into an array of magnitudes, like [[5, million], [2, hundred]] + const breakdown_magnitudes = function (num) { + let working = num; + let have = []; + sequence.forEach(a => { + if (num >= a[0]) { + let howmany = Math.floor(working / a[0]); + working -= howmany * a[0]; + if (howmany) { + have.push({ + unit: a[1], + count: howmany, + }); + } + } + }); + return have + }; + + //turn numbers from 100-0 into their text + const breakdown_hundred = function (num) { + let arr = []; + if (num > 100) { + return arr //something bad happened.. + } + for (let i = 0; i < tens_mapping.length; i++) { + if (num >= tens_mapping[i][1]) { + num -= tens_mapping[i][1]; + arr.push(tens_mapping[i][0]); + } + } + //(hopefully) we should only have 20-0 now + if (ones_mapping[num]) { + arr.push(ones_mapping[num]); + } + return arr + }; + + /** print-out 'point eight nine'*/ + const handle_decimal = num => { + const names = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']; + let arr = []; + //parse it out like a string, because js math is such shit + let str = toString(num); + let decimal = str.match(/\.([0-9]+)/); + if (!decimal || !decimal[0]) { + return arr + } + arr.push('point'); + let decimals = decimal[0].split(''); + for (let i = 0; i < decimals.length; i++) { + arr.push(names[decimals[i]]); + } + return arr + }; + + /** turns an integer into a textual number */ + const toText$1 = function (obj) { + let num = obj.num; + // handle zero, quickly + if (num === 0 || num === '0') { + return 'zero' // no? + } + //big numbers, north of sextillion, aren't gonna work well.. + //keep them small.. + if (num > 1e21) { + num = toString(num); + } + let arr = []; + //handle negative numbers + if (num < 0) { + arr.push('minus'); + num = Math.abs(num); + } + //break-down into units, counts + let units = breakdown_magnitudes(num); + //build-up the string from its components + for (let i = 0; i < units.length; i++) { + let unit_name = units[i].unit; + if (unit_name === 'one') { + unit_name = ''; + //put an 'and' in here + if (arr.length > 1) { + arr.push('and'); + } + } + arr = arr.concat(breakdown_hundred(units[i].count)); + arr.push(unit_name); + } + //also support decimals - 'point eight' + arr = arr.concat(handle_decimal(num)); + //remove empties + arr = arr.filter(s => s); + if (arr.length === 0) { + arr[0] = ''; + } + return arr.join(' ') + }; + + var textCardinal = toText$1; + + // console.log(to_text(-1000.8)); + + const toCardinal = function (obj) { + if (!obj.numerator || !obj.denominator) { + return '' + } + let a = textCardinal({ num: obj.numerator }); + let b = textCardinal({ num: obj.denominator }); + return `${a} out of ${b}` + }; + var toCardinal$1 = toCardinal; + + const irregulars = { + 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', + }; + + /** + * convert a javascript number to 'twentieth' format + * */ + const textOrdinal = obj => { + let words = textCardinal(obj).split(' '); + //convert the last number to an ordinal + let last = words[words.length - 1]; + if (irregulars.hasOwnProperty(last)) { + words[words.length - 1] = irregulars[last]; + } else { + words[words.length - 1] = last.replace(/y$/, 'i') + 'th'; + } + return words.join(' ') + }; + + var textOrdinal$1 = textOrdinal; + + const toOrdinal = function (obj) { + // don't divide by zero! + if (!obj.numerator || !obj.denominator) { + return '' + } + // create [two] [fifths] + let start = textCardinal({ num: obj.numerator }); + let end = textOrdinal$1({ num: obj.denominator }); + // 'one secondth' -> 'one half' + if (obj.denominator === 2) { + end = 'half'; + } + if (start && end) { + if (obj.numerator !== 1) { + end += 's'; + } + return `${start} ${end}` + } + return '' + }; + var toOrdinal$1 = toOrdinal; + + // return the nth elem of a doc + const getNth$7 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + const plugin$1 = function (View) { + /** + */ + class Fractions extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Fractions'; + } + parse(n) { + return getNth$7(this, n).map(parseFraction$1) + } + get(n) { + return getNth$7(this, n).map(parseFraction$1) + } + json(n) { + return getNth$7(this, n).map(p => { + let json = p.toView().json(n)[0]; + let parsed = parseFraction$1(p); + json.fraction = parsed; + return json + }, []) + } + // become 0.5 + toDecimal(n) { + getNth$7(this, n).forEach(m => { + let { decimal } = parseFraction$1(m); + m = m.replaceWith(String(decimal), true); + m.tag('NumericValue'); + m.unTag('Fraction'); + }); + return this + } + toFraction(n) { + getNth$7(this, n).forEach(m => { + let obj = parseFraction$1(m); + if (obj && typeof obj.numerator === 'number' && typeof obj.denominator === 'number') { + let str = `${obj.numerator}/${obj.denominator}`; + this.replace(m, str); + } + }); + return this + } + toOrdinal(n) { + getNth$7(this, n).forEach(m => { + let obj = parseFraction$1(m); + let str = toOrdinal$1(obj); + if (m.after('^#Noun').found) { + str += ' of'; // three fifths of dentists + } + m.replaceWith(str); + }); + return this + } + toCardinal(n) { + getNth$7(this, n).forEach(m => { + let obj = parseFraction$1(m); + let str = toCardinal$1(obj); + m.replaceWith(str); + }); + return this + } + toPercentage(n) { + getNth$7(this, n).forEach(m => { + let { decimal } = parseFraction$1(m); + let percent = decimal * 100; + percent = Math.round(percent * 100) / 100; // round it + m.replaceWith(`${percent}%`); + }); + return this + } + } + + View.prototype.fractions = function (n) { + let m = find$7(this); + m = getNth$7(m, n); + return new Fractions(this.document, m.pointer) + }; + }; + + var fractions = plugin$1; + + const ones = 'one|two|three|four|five|six|seven|eight|nine'; + const tens = 'twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty'; + const teens = 'eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen'; + + // this is a bit of a mess + // segment consecutive number-words into sensible chunks + const findNumbers = function (doc) { + let m = doc.match('#Value+'); + + //"50 83" + if (m.has('#NumericValue #NumericValue')) { + //a comma may mean two numbers + if (m.has('#Value @hasComma #Value')) { + m.splitAfter('@hasComma'); + } else if (m.has('#NumericValue #Fraction')) { + m.splitAfter('#NumericValue #Fraction'); + } else { + m = m.splitAfter('#NumericValue'); + } + } + + //three-length + if (m.has('#Value #Value #Value') && !m.has('#Multiple')) { + //twenty-five-twenty + if (m.has('(' + tens + ') #Cardinal #Cardinal')) { + m = m.splitAfter('(' + tens + ') #Cardinal'); + } + } + + //two-length ones + if (m.has('#Value #Value')) { + //june 21st 1992 is two seperate values + if (m.has('#NumericValue #NumericValue')) { + m = m.splitOn('#Year'); + } + //sixty fifteen + if (m.has('(' + tens + ') (' + teens + ')')) { + m = m.splitAfter('(' + tens + ')'); + } + + //"72 82" + let double = m.match('#Cardinal #Cardinal'); + if (double.found && !m.has('(point|decimal|#Fraction)')) { + //not 'two hundred' + if (!double.has('#Cardinal (#Multiple|point|decimal)')) { + // two fifty five + let noMultiple = m.has(`(${ones}) (${tens})`); + // twenty one + let tensVal = double.has('(' + tens + ') #Cardinal'); + // hundredOne + let multVal = double.has('#Multiple #Value'); + //one proper way, 'twenty one', or 'hundred one' + if (!noMultiple && !tensVal && !multVal) { + // double = double.firstTerm() + double.terms().forEach(d => { + m = m.splitOn(d); + }); + } + } + } + + //seventh fifth + if (m.match('#Ordinal #Ordinal').match('#TextValue').found && !m.has('#Multiple')) { + //the one proper way, 'twenty first' + if (!m.has('(' + tens + ') #Ordinal')) { + m = m.splitAfter('#Ordinal'); + } + } + //fifth five + m = m.splitBefore('#Ordinal [#Cardinal]', 0); + //five 2017 (support '5 hundred', and 'twenty 5' + if (m.has('#TextValue #NumericValue') && !m.has('(' + tens + '|#Multiple)')) { + m = m.splitBefore('#TextValue #NumericValue'); + } + } + + //5-8 + m = m.splitAfter('#NumberRange'); + // june 5th 1999 + m = m.splitBefore('#Year'); + return m + }; + + var find$6 = findNumbers; + + const parseNumeric = function (str, m) { + str = str.replace(/,/g, ''); + //parse a numeric-number + let arr = str.split(/([0-9.,]*)/); + let [prefix, num] = arr; + let suffix = arr.slice(2).join(''); + if (num !== '' && m.length < 2) { + num = Number(num || str); + //ensure that num is an actual number + if (typeof num !== 'number') { + num = null; + } + // strip an ordinal off the suffix + suffix = suffix || ''; + if (suffix === 'st' || suffix === 'nd' || suffix === 'rd' || suffix === 'th') { + suffix = ''; + } + // support M for million, k for thousand + // if (suffix === 'm' || suffix === 'M') { + // num *= 1000000 + // suffix = '' + // } + // if (suffix === 'k' || suffix === 'k') { + // num *= 1000 + // suffix = '' + // } + return { + prefix: prefix || '', + num: num, + suffix: suffix, + } + } + return null + }; + + // get a numeric value from this phrase + const parseNumber = function (m) { + if (typeof m === 'string') { + return { num: parseText(m) } + } + let str = m.text('reduced'); + // is it in '3,123' format? + let hasComma = /[0-9],[0-9]/.test(m.text('text')); + // parse a numeric-number like '$4.00' + if (m.terms().length === 1 && !m.has('#Multiple')) { + let res = parseNumeric(str, m); + if (res !== null) { + res.hasComma = hasComma; + return res + } + } + // -- parse text-formats -- + // Fractions: remove 'and a half' etc. from the end + let frPart = m.match('#Fraction{2,}$'); + frPart = frPart.found === false ? m.match('^#Fraction$') : frPart; + let fraction = null; + if (frPart.found) { + if (frPart.has('#Value and #Value #Fraction')) { + frPart = frPart.match('and #Value #Fraction'); + } + fraction = parseFraction$1(frPart); + // remove it from our string + m = m.not(frPart); + m = m.not('and$'); + str = m.text('reduced'); + } + let num = 0; + if (str) { + num = parseText(str) || 0; + } + // apply numeric fraction + if (fraction && fraction.decimal) { + num += fraction.decimal; + } + return { + hasComma: hasComma, + prefix: '', + num: num, + suffix: '', + isOrdinal: m.has('#Ordinal'), + isText: m.has('#TextValue'), + isFraction: m.has('#Fraction'), + isMoney: m.has('#Money'), + } + }; + var parse$4 = parseNumber; + + /** + * turn a number like 5 into an ordinal like 5th + */ + const numOrdinal = function (obj) { + let num = obj.num; + if (!num && num !== 0) { + return null + } + //the teens are all 'th' + let tens = num % 100; + if (tens > 10 && tens < 20) { + return String(num) + 'th' + } + //the rest of 'em + const mapping = { + 0: 'th', + 1: 'st', + 2: 'nd', + 3: 'rd', + }; + let str = toString(num); + let last = str.slice(str.length - 1, str.length); + if (mapping[last]) { + str += mapping[last]; + } else { + str += 'th'; + } + return str + }; + + var numOrdinal$1 = numOrdinal; + + const prefixes = { + '¢': 'cents', + $: 'dollars', + '£': 'pounds', + '¥': 'yen', + '€': 'euros', + '₡': 'colón', + '฿': 'baht', + '₭': 'kip', + '₩': 'won', + '₹': 'rupees', + '₽': 'ruble', + '₺': 'liras', + }; + const suffixes = { + '%': 'percent', + // s: 'seconds', + cm: 'centimetres', + km: 'kilometres', + ft: 'feet', + '°': 'degrees' + }; + + const addSuffix = function (obj) { + let res = { + suffix: '', + prefix: obj.prefix, + }; + // $5 to 'five dollars' + if (prefixes.hasOwnProperty(obj.prefix)) { + res.suffix += ' ' + prefixes[obj.prefix]; + res.prefix = ''; + } + // 5% to 'five percent' + if (suffixes.hasOwnProperty(obj.suffix)) { + res.suffix += ' ' + suffixes[obj.suffix]; + } + if (res.suffix && obj.num === 1) { + res.suffix = res.suffix.replace(/s$/, ''); + } + // misc other suffixes + if (!res.suffix && obj.suffix) { + res.suffix += ' ' + obj.suffix; + } + return res + }; + + var makeSuffix = addSuffix; + + const format = function (obj, fmt) { + if (fmt === 'TextOrdinal') { + let { prefix, suffix } = makeSuffix(obj); + return prefix + textOrdinal$1(obj) + suffix + } + if (fmt === 'Ordinal') { + return obj.prefix + numOrdinal$1(obj) + obj.suffix + } + if (fmt === 'TextCardinal') { + let { prefix, suffix } = makeSuffix(obj); + return prefix + textCardinal(obj) + suffix + } + // assume Cardinal + let num = obj.num; + if (obj.hasComma) { + num = num.toLocaleString(); + } + return obj.prefix + String(num) + obj.suffix + }; + var format$1 = format; + + // return the nth elem of a doc + const getNth$6 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + const addMethod$2 = function (View) { + /** */ + class Numbers extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Numbers'; + } + parse(n) { + return getNth$6(this, n).map(parse$4) + } + get(n) { + return getNth$6(this, n).map(parse$4).map(o => o.num) + } + json(n) { + let doc = getNth$6(this, n); + return doc.map(p => { + let json = p.toView().json(n)[0]; + let parsed = parse$4(p); + json.number = { + prefix: parsed.prefix, + num: parsed.num, + suffix: parsed.suffix, + hasComma: parsed.hasComma, + }; + return json + }, []) + } + /** any known measurement unit, for the number */ + units() { + return this.growRight('#Unit').match('#Unit$') + } + /** return only ordinal numbers */ + isOrdinal() { + return this.if('#Ordinal') + } + /** return only cardinal numbers*/ + isCardinal() { + return this.if('#Cardinal') + } + + /** convert to numeric form like '8' or '8th' */ + toNumber() { + let m = this.if('#TextValue'); + m.forEach(val => { + let obj = parse$4(val); + if (obj.num === null) { + return + } + let fmt = val.has('#Ordinal') ? 'Ordinal' : 'Cardinal'; + let str = format$1(obj, fmt); + val.replaceWith(str, { tags: true }); + val.tag('NumericValue'); + }); + return this + } + /** add commas, or nicer formatting for numbers */ + toLocaleString() { + let m = this; + m.forEach((val) => { + let obj = parse$4(val); + if (obj.num === null) { + return + } + let num = obj.num.toLocaleString(); + // support ordinal ending, too + if (val.has('#Ordinal')) { + let str = format$1(obj, 'Ordinal'); + let end = str.match(/[a-z]+$/); + if (end) { + num += end[0] || ''; + } + } + val.replaceWith(num, { tags: true }); + }); + return this + } + /** convert to numeric form like 'eight' or 'eighth' */ + toText() { + let m = this; + let res = m.map(val => { + if (val.has('#TextValue')) { + return val + } + let obj = parse$4(val); + if (obj.num === null) { + return val + } + let fmt = val.has('#Ordinal') ? 'TextOrdinal' : 'TextCardinal'; + let str = format$1(obj, fmt); + val.replaceWith(str, { tags: true }); + val.tag('TextValue'); + return val + }); + return new Numbers(res.document, res.pointer) + } + /** convert ordinal to cardinal form, like 'eight', or '8' */ + toCardinal() { + let m = this; + let res = m.map(val => { + if (!val.has('#Ordinal')) { + return val + } + let obj = parse$4(val); + if (obj.num === null) { + return val + } + let fmt = val.has('#TextValue') ? 'TextCardinal' : 'Cardinal'; + let str = format$1(obj, fmt); + val.replaceWith(str, { tags: true }); + val.tag('Cardinal'); + return val + }); + return new Numbers(res.document, res.pointer) + } + /** convert cardinal to ordinal form, like 'eighth', or '8th' */ + toOrdinal() { + let m = this; + let res = m.map(val => { + if (val.has('#Ordinal')) { + return val + } + let obj = parse$4(val); + if (obj.num === null) { + return val + } + let fmt = val.has('#TextValue') ? 'TextOrdinal' : 'Ordinal'; + let str = format$1(obj, fmt); + val.replaceWith(str, { tags: true }); + val.tag('Ordinal'); + return val + }); + return new Numbers(res.document, res.pointer) + } + + /** return only numbers that are == n */ + isEqual(n) { + return this.filter((val) => { + let num = parse$4(val).num; + return num === n + }) + } + /** return only numbers that are > n*/ + greaterThan(n) { + return this.filter((val) => { + let num = parse$4(val).num; + return num > n + }) + } + /** return only numbers that are < n*/ + lessThan(n) { + return this.filter((val) => { + let num = parse$4(val).num; + return num < n + }) + } + /** return only numbers > min and < max */ + between(min, max) { + return this.filter((val) => { + let num = parse$4(val).num; + return num > min && num < max + }) + } + /** set these number to n */ + set(n) { + if (n === undefined) { + return this // don't bother + } + if (typeof n === 'string') { + n = parse$4(n).num; + } + let m = this; + let res = m.map((val) => { + let obj = parse$4(val); + obj.num = n; + if (obj.num === null) { + return val + } + let fmt = val.has('#Ordinal') ? 'Ordinal' : 'Cardinal'; + if (val.has('#TextValue')) { + fmt = val.has('#Ordinal') ? 'TextOrdinal' : 'TextCardinal'; + } + let str = format$1(obj, fmt); + // add commas to number + if (obj.hasComma && fmt === 'Cardinal') { + str = Number(str).toLocaleString(); + } + val = val.not('#Currency'); + val.replaceWith(str, { tags: true }); + // handle plural/singular unit + // agreeUnits(agree, val, obj) + return val + }); + return new Numbers(res.document, res.pointer) + } + add(n) { + if (!n) { + return this // don't bother + } + if (typeof n === 'string') { + n = parse$4(n).num; + } + let m = this; + let res = m.map((val) => { + let obj = parse$4(val); + if (obj.num === null) { + return val + } + obj.num += n; + let fmt = val.has('#Ordinal') ? 'Ordinal' : 'Cardinal'; + if (obj.isText) { + fmt = val.has('#Ordinal') ? 'TextOrdinal' : 'TextCardinal'; + } + let str = format$1(obj, fmt); + val.replaceWith(str, { tags: true }); + // handle plural/singular unit + // agreeUnits(agree, val, obj) + return val + }); + return new Numbers(res.document, res.pointer) + } + /** decrease each number by n*/ + subtract(n, agree) { + return this.add(n * -1, agree) + } + /** increase each number by 1 */ + increment(agree) { + return this.add(1, agree) + } + /** decrease each number by 1 */ + decrement(agree) { + return this.add(-1, agree) + } + // overloaded - keep Numbers class + update(pointer) { + let m = new Numbers(this.document, pointer); + m._cache = this._cache; // share this full thing + return m + } + } + // aliases + 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; + + View.prototype.numbers = function (n) { + let m = find$6(this); + m = getNth$6(m, n); + return new Numbers(this.document, m.pointer) + }; + View.prototype.percentages = function (n) { + let m = find$6(this); + m = m.filter(v => v.has('#Percent') || v.after('^percent')); + m = getNth$6(m, n); + return new Numbers(this.document, m.pointer) + }; + View.prototype.money = function (n) { + let m = find$6(this); + m = m.filter(v => v.has('#Money') || v.after('^#Currency')); + m = getNth$6(m, n); + return new Numbers(this.document, m.pointer) + }; + // alias + View.prototype.values = View.prototype.numbers; + }; + var numbers$1 = addMethod$2; + + const api$7 = function (View) { + fractions(View); + numbers$1(View); + }; + + var numbers = { + api: api$7, + }; + + const defaults = { + people: true, + emails: true, + phoneNumbers: true, + places: true, + }; + + const redact = function (opts = {}) { + opts = Object.assign({}, defaults, opts); + if (opts.people !== false) { + this.people().replaceWith('██████████'); + } + if (opts.emails !== false) { + this.emails().replaceWith('██████████'); + } + if (opts.places !== false) { + this.places().replaceWith('██████████'); + } + if (opts.phoneNumbers !== false) { + this.phoneNumbers().replaceWith('███████'); + } + return this + }; + + const plugin = { + api: function (View) { + View.prototype.redact = redact; + } + }; + var redact$1 = plugin; + + //is this sentence asking a question? + const isQuestion = function (doc) { + let clauses = doc.clauses(); + + // Has ellipsis at the end means it's probably not a question + // e.g., Is this just fantasy... + if (/\.\.$/.test(doc.out('text'))) { + return false + } + + // Starts with question word, but has a comma, so probably not a question + // e.g., Why are we caught in a land slide, no escape from reality + if (doc.has('^#QuestionWord') && doc.has('@hasComma')) { + return false + } + + // do you see it or not + if (doc.has('or not$')) { + return true + } + + // Starts with a #QuestionWord + // e.g., What open your eyes look up to the skies and see + if (doc.has('^#QuestionWord')) { + return true + } + + // Second word is a #QuestionWord + // e.g., I'm what a poor boy + // case ts.has('^\w+\s#QuestionWord'): + // return true; + + // is it, do you - start of sentence + // e.g., Do I need no sympathy + if (doc.has('^(do|does|did|is|was|can|could|will|would|may) #Noun')) { + return true + } + + // these are a little more loose.. + // e.g., Must I be come easy come easy go + if (doc.has('^(have|must) you')) { + return true + } + + // Clause starts with a question word + // e.g., Anyway the wind blows, what doesn't really matter to me + // if (clauses.has('^#QuestionWord')) { + // return true + // } + + //is wayne gretskzy alive + if (clauses.has('(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$')) { + return true + } + + // Probably not a question + return false + }; + + const findQuestions = function (view) { + const hasQ = /\?/; + const { document } = view; + return view.filter(m => { + let terms = m.docs[0] || []; + let lastTerm = terms[terms.length - 1]; + // is it not a full sentence? + if (!lastTerm || document[lastTerm.index[0]].length !== terms.length) { + return false + } + // does it end with a question mark? + if (hasQ.test(lastTerm.post)) { + return true + } + // try to guess a sentence without a question-mark + return isQuestion(m) + }) + }; + var isQuestion$1 = findQuestions; + + // if a clause starts with these, it's not a main clause + const subordinate = `(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)`; + const relative = `(that|which|whichever|who|whoever|whom|whose|whomever)`; + + //try to remove secondary clauses + const mainClause = function (s) { + let m = s; + if (m.length === 1) { + return m + } + // if there's no verb, it's dependent + m = m.if('#Verb'); + if (m.length === 1) { + return m + } + // this is a signal for subordinate-clauses + m = m.ifNo(subordinate); + m = m.ifNo('^even (if|though)'); + m = m.ifNo('^so that'); + m = m.ifNo('^rather than'); + m = m.ifNo('^provided that'); + if (m.length === 1) { + return m + } + // relative clauses + m = m.ifNo(relative); + if (m.length === 1) { + return m + } + + m = m.ifNo('(despite|during|before|through|throughout)'); + if (m.length === 1) { + return m + } + // did we go too far? + if (m.length === 0) { + m = s; + } + // choose the first one? + return m.eq(0) + }; + var findMain = mainClause; + + const parse$2 = function (s) { + let clauses = s.clauses(); + let main = findMain(clauses); + let chunks = main.chunks(); + let subj = s.none(); + let verb = s.none(); + let pred = s.none(); + chunks.forEach((ch, i) => { + if (i === 0 && !ch.has('')) { + subj = ch; + return + } + if (!verb.found && ch.has('')) { + verb = ch; + return + } + if (verb.found) { + pred = pred.concat(ch); + } + }); + // cleanup a missed parse + if (verb.found && !subj.found) { + subj = verb.before('+').first(); + } + return { + subj, + verb, + pred + } + }; + var parse$3 = parse$2; + + const toPast$2 = function (s) { + let verbs = s.verbs(); + // translate the first verb, no-stress + let first = verbs.eq(0); + // already past + if (first.has('#PastTense')) { + return s + } + first.toPastTense(); + + // force agreement with any 2nd/3rd verbs: + if (verbs.length > 1) { + verbs = verbs.slice(1); + // remove any sorta infinitive - 'to engage' + verbs = verbs.filter((v) => !v.lookBehind('to$').found); + + // keep -ing verbs + verbs = verbs.if('#PresentTense'); + verbs = verbs.notIf('#Gerund'); + + //run-on infinitive-list - 'to walk, sit and eat' + let list = s.match('to #Verb+ #Conjunction #Verb').terms(); + verbs = verbs.not(list); + + // otherwise, I guess so? + if (verbs.found) { + verbs.verbs().toPastTense(); + } + } + + // s.compute('chunks') + return s + }; + var toPast$3 = toPast$2; + + const toPresent$2 = function (s) { + let verbs = s.verbs(); + // translate the first verb, no-stress + let first = verbs.eq(0); + // already present + // if (first.has('#PresentTense')) { + // return s + // } + first.toPresentTense(); + + // force agreement with any 2nd/3rd verbs: + if (verbs.length > 1) { + verbs = verbs.slice(1); + // remove any sorta infinitive - 'to engage' + verbs = verbs.filter((v) => !v.lookBehind('to$').found); + + // keep -ing verbs + // verbs = verbs.if('#PresentTense') + verbs = verbs.notIf('#Gerund'); + + //run-on infinitive-list - 'to walk, sit and eat' + // let list = s.match('to #Verb+ #Conjunction #Verb').terms() + // verbs = verbs.not(list) + + // otherwise, I guess so? + if (verbs.found) { + verbs.verbs().toPresentTense(); + } + } + + // s.compute('chunks') + return s + }; + var toPresent$3 = toPresent$2; + + const toFuture$2 = function (s) { + let verbs = s.verbs(); + // translate the first verb, no-stress + let first = verbs.eq(0); + first.toFutureTense(); + s = s.fullSentence(); + verbs = s.verbs();//re-do it + // verbs.debug() + // force agreement with any 2nd/3rd verbs: + if (verbs.length > 1) { + verbs = verbs.slice(1); + // which following-verbs should we also change? + let toChange = verbs.filter((vb) => { + // remove any sorta infinitive - 'to engage' + if (vb.lookBehind('to$').found) { + return false + } + // is watching + if (vb.has('#Copula #Gerund')) { + return true + } + // keep -ing verbs + if (vb.has('#Gerund')) { + return false + } + // he is green and he is friendly + if (vb.has('#Copula')) { + return true + } + // 'he will see when he watches' + if (vb.has('#PresentTense') && s.has('(when|as|how)')) { + return false + } + return true + }); + // otherwise, change em too + if (toChange.found) { + toChange.toInfinitive(); + } + } + return s + }; + var toFuture$3 = toFuture$2; + + const toNegative$2 = function (s) { + s.verbs().first().toNegative().compute('chunks'); + return s + }; + const toPositive = function (s) { + s.verbs().first().toPositive().compute('chunks'); + return s + }; + + const toInfinitive$4 = function (s) { + s.verbs().toInfinitive(); + // s.compute('chunks') + return s + }; + var toInfinitive$5 = toInfinitive$4; + + // return the nth elem of a doc + const getNth$5 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + const api$5 = function (View) { + class Sentences extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Sentences'; + } + json(opts = {}) { + return this.map(m => { + let json = m.toView().json(opts)[0] || {}; + let { subj, verb, pred } = parse$3(m); + json.sentence = { + subject: subj.text('normal'), + verb: verb.text('normal'), + predicate: pred.text('normal'), + }; + return json + }, []) + } + toPastTense(n) { + return getNth$5(this, n).map(s => { + parse$3(s); + return toPast$3(s) + }) + } + toPresentTense(n) { + return getNth$5(this, n).map(s => { + parse$3(s); + return toPresent$3(s) + }) + } + toFutureTense(n) { + return getNth$5(this, n).map(s => { + parse$3(s); + s = toFuture$3(s); + return s + }) + } + toInfinitive(n) { + return getNth$5(this, n).map(s => { + parse$3(s); + return toInfinitive$5(s) + }) + } + toNegative(n) { + return getNth$5(this, n).map(vb => { + parse$3(vb); + return toNegative$2(vb) + }) + } + toPositive(n) { + return getNth$5(this, n).map(vb => { + parse$3(vb); + return toPositive(vb) + }) + } + isQuestion(n) { + return this.questions(n) + } + isExclamation(n) { + let res = this.filter(s => s.lastTerm().has('@hasExclamation')); + return getNth$5(res, n) + } + isStatement(n) { + let res = this.filter(s => !s.isExclamation().found && !s.isQuestion().found); + return getNth$5(res, n) + } + // overloaded - keep Sentences class + update(pointer) { + let m = new Sentences(this.document, pointer); + m._cache = this._cache; // share this full thing + return m + } + } + // aliases + Sentences.prototype.toPresent = Sentences.prototype.toPresentTense; + Sentences.prototype.toPast = Sentences.prototype.toPastTense; + Sentences.prototype.toFuture = Sentences.prototype.toFutureTense; + + const methods = { + sentences: function (n) { + let m = this.map(s => s.fullSentence()); + m = getNth$5(m, n); + return new Sentences(this.document, m.pointer) + }, + questions: function (n) { + let m = isQuestion$1(this); + return getNth$5(m, n) + }, + }; + + Object.assign(View.prototype, methods); + }; + var api$6 = api$5; + + var sentences = { api: api$6 }; + + const find$4 = function (doc) { + let m = doc.match('#Honorific+? #Person+'); + return m + }; + var find$5 = find$4; + + const parse = function (m) { + let res = {}; + res.firstName = m.match('#FirstName+'); + res.lastName = m.match('#LastName+'); + res.honorific = m.match('#Honorific+'); + + let last = res.lastName; + let first = res.firstName; + if (!first.found || !last.found) { + // let p = m.clone() + // assume 'Mr Springer' is a last-name + if (!first.found && !last.found && m.has('^#Honorific .$')) { + res.lastName = m.match('.$'); + return res + } + } + return res + }; + var parse$1 = parse; + + /* + Important notice - + this method makes many assumptions about gender-identity, in-order to assign grammatical gender. + it should not be used for any other purposes, other than resolving pronouns in english + */ + const m = 'male'; + const f = 'female'; + + // known gendered honorifics + const honorifics = { + mr: m, + mrs: f, + miss: f, + madam: f, + + // british stuff + king: m, + queen: f, + duke: m, + duchess: f, + baron: m, + baroness: f, + count: m, + countess: f, + prince: m, + princess: f, + sire: m, + dame: f, + lady: f, + + ayatullah: m, //i think? + + congressman: m, + congresswoman: f, + 'first lady': f, + + // marked as non-binary + mx: null, + }; + + const predictGender = function (parsed, person) { + let { firstName, honorific } = parsed; + // use first-name as signal-signal + if (firstName.has('#FemaleName')) { + return f + } + if (firstName.has('#MaleName')) { + return m + } + // use honorics as gender-signal + if (honorific.found) { + let hon = honorific.text('normal'); + hon = hon.replace(/\./g, ''); //clean it up a bit + if (honorifics.hasOwnProperty(hon)) { + return honorifics[hon] + } + // her excelency + if (/^her /.test(hon)) { + return f + } + if (/^his /.test(hon)) { + return m + } + } + // offer used-pronouns as a signal + let after = person.after(); + if (!after.has('#Person') && after.has('#Pronoun')) { + let pro = after.match('#Pronoun'); + // manual use of gender-neutral + if (pro.has('(they|their)')) { + return null + } + let hasMasc = pro.has('(he|his)'); + let hasFem = pro.has('(she|her|hers)'); + if (hasMasc && !hasFem) { + return m + } + if (hasFem && !hasMasc) { + return f + } + } + return null + }; + var gender = predictGender; + + // return the nth elem of a doc + const getNth$4 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + const addMethod$1 = function (View) { + /** + * + */ + class People extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'People'; + } + parse(n) { + return getNth$4(this, n).map(parse$1) + } + json(n) { + let doc = getNth$4(this, n); + return doc.map(p => { + let json = p.toView().json(n)[0]; + let parsed = parse$1(p); + json.person = { + firstName: parsed.firstName.text('normal'), + lastName: parsed.lastName.text('normal'), + honorific: parsed.honorific.text('normal'), + presumed_gender: gender(parsed, p), + }; + return json + }, []) + } + // overloaded - keep People class + update(pointer) { + let m = new People(this.document, pointer); + m._cache = this._cache; // share this full thing + return m + } + } + + View.prototype.people = function (n) { + let m = find$5(this); + m = getNth$4(m, n); + return new People(this.document, m.pointer) + }; + }; + var people = addMethod$1; + + const find$2 = function (doc) { + let m = doc.match('(#Place|#Address)+'); + + // split all commas except for 'paris, france' + let splits = m.match('@hasComma'); + splits = splits.filter(c => { + // split 'europe, china' + if (c.has('(asia|africa|europe|america)$')) { + return true + } + // don't split 'paris, france' + if (c.has('(#City|#Region|#ProperNoun)$') && c.after('^(#Country|#Region)').found) { + return false + } + return true + }); + m = m.splitAfter(splits); + return m + }; + var find$3 = find$2; + + // return the nth elem of a doc + const getNth$3 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + const addMethod = function (View) { + View.prototype.places = function (n) { + let m = find$3(this); + m = getNth$3(m, n); + return new View(this.document, m.pointer) + }; + }; + var places = addMethod; + + // return the nth elem of a doc + const getNth$2 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + const api$4 = function (View) { + View.prototype.organizations = function (n) { + let m = this.match('#Organization+'); + return getNth$2(m, n) + }; + }; + var orgs = api$4; + + // return the nth elem of a doc + const getNth$1 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + //combine them with .topics() method + const find$1 = function (n) { + let r = this.clauses(); + // Find people, places, and organizations + let m = r.people(); + m = m.concat(r.places()); + m = m.concat(r.organizations()); + m = m.not('(someone|man|woman|mother|brother|sister|father)'); + //return them to normal ordering + m = m.sort('seq'); + // m = m.unique() + m = getNth$1(m, n); + return m + }; + + const api$3 = function (View) { + View.prototype.topics = find$1; + }; + var topics$1 = api$3; + + const api$2 = function (View) { + people(View); + places(View); + orgs(View); + topics$1(View); + }; + var topics = { api: api$2 }; + + const findVerbs = function (doc) { + let m = doc.match(''); + + m = m.splitAfter('@hasComma'); + + // the reason he will is ... + // all i do is talk + m = m.splitAfter('[(do|did|am|was|is|will)] (is|was)', 0); + // m = m.splitAfter('[(do|did|am|was|is|will)] #PresentTense', 0) + + // cool + + // like being pampered + m = m.splitBefore('(#Verb && !#Copula) [being] #Verb', 0); + // like to be pampered + m = m.splitBefore('#Verb [to be] #Verb', 0); + + // implicit conjugation - 'help fix' + + m = m.splitAfter('[help] #PresentTense', 0); + // what i can sell is.. + m = m.splitBefore('(#PresentTense|#PastTense) [#Copula]$', 0); + // what i can sell will be + m = m.splitBefore('(#PresentTense|#PastTense) [will be]$', 0); + + // professes love + let toVerbs = m.match('(#PresentTense|#PastTense) #Infinitive'); + if (toVerbs.found && !toVerbs.has('^go')) { + m = m.splitBefore('(#PresentTense|#PastTense) [#Infinitive]', 0); + } + // 'allow yourself' + m = m.not('#Reflexive$'); + //ensure there's actually a verb + m = m.if('#Verb'); + // the reason he will is ... + // ensure it's not two verbs + return m + }; + var find = findVerbs; + + // find the main verb, from a verb phrase + const getMain = function (vb) { + let root = vb; + if (vb.wordCount() > 1) { + root = vb.not('(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)'); + } + // fallback to just the last word, sometimes + if (root.length > 1 && !root.has('#Phrasal #Particle')) { + root = root.last(); + } + // look for more modals + root = root.not('(want|wants|wanted) to'); + + // fallback + if (!root.found) { + root = vb.not('#Negative'); + return root + } + return root + }; + var getRoot = getMain; + + // split adverbs as before/after the root + const getAdverbs = function (vb, root) { + let res = { + pre: vb.none(), + post: vb.none(), + }; + if (!vb.has('#Adverb')) { + return res + } + // pivot on the main verb + let parts = vb.splitOn(root); + if (parts.length === 3) { + return { + pre: parts.eq(0).adverbs(), + post: parts.eq(2).adverbs(), + } + } + // it must be the second one + if (parts.eq(0).isDoc(root)) { + res.post = parts.eq(1).adverbs(); + return res + } + res.pre = parts.eq(0).adverbs(); + return res + }; + var getAdverbs$1 = getAdverbs; + + const getAuxiliary = function (vb, root) { + let parts = vb.splitBefore(root); + if (parts.length <= 1) { + return vb.none() + } + let aux = parts.eq(0); + aux = aux.not('(#Adverb|#Negative|#Prefix)'); + return aux + }; + + const getNegative = function (vb) { + return vb.match('#Negative') + }; + + // pull-apart phrasal-verb into verb-particle + const getPhrasal = function (root) { + let particle = root.match('#Particle$'); + return { + verb: root.not(particle), + particle: particle, + } + }; + + const parseVerb = function (view) { + let vb = view.clone(); + vb.contractions().expand(); + const root = getRoot(vb); + let res = { + root: root, + prefix: vb.match('#Prefix'), + adverbs: getAdverbs$1(vb, root), + auxiliary: getAuxiliary(vb, root), + negative: getNegative(vb), + phrasal: getPhrasal(root), + }; + return res + }; + var parseVerb$1 = parseVerb; + + const present = { tense: 'PresentTense' }; + const conditional = { conditional: true }; + const future = { tense: 'FutureTense' }; + const prog = { progressive: true }; + const past = { tense: 'PastTense' }; + const complete = { complete: true, progressive: false }; + const passive = { passive: true }; + const plural = { plural: true }; + const singular = { plural: false }; + + const getData = function (tags) { + let data = {}; + tags.forEach(o => { + Object.assign(data, o); + }); + return data + }; + + const verbForms = { + // === Simple === + 'imperative': [ + // walk! + ['#Imperative', []], + ], + + 'want-infinitive': [ + ['^(want|wants|wanted) to #Infinitive$', [present]], + ['^wanted to #Infinitive$', [past]], + ['^will want to #Infinitive$', [future]], + ], + + 'gerund-phrase': [ + // started looking + ['^#PastTense #Gerund$', [past]], + // starts looking + ['^#PresentTense #Gerund$', [present]], + // start looking + ['^#Infinitive #Gerund$', [present]], + // will start looking + ['^will #Infinitive #Gerund$', [future]], + // have started looking + ['^have #PastTense #Gerund$', [past]], + // will have started looking + ['^will have #PastTense #Gerund$', [past]], + ], + + 'simple-present': [ + // he walks', + ['^#PresentTense$', [present]], + // we walk + ['^#Infinitive$', [present]], + ], + 'simple-past': [ + // he walked', + ['^#PastTense$', [past]], + ], + 'simple-future': [ + // he will walk + ['^will #Adverb? #Infinitive', [future]], + ], + + // === Progressive === + 'present-progressive': [ + // he is walking + ['^(is|are|am) #Gerund$', [present, prog]], + ], + 'past-progressive': [ + // he was walking + ['^(was|were) #Gerund$', [past, prog]], + ], + 'future-progressive': [ + // he will be + ['^will be #Gerund$', [future, prog]], + ], + + // === Perfect === + 'present-perfect': [ + // he has walked + ['^(has|have) #PastTense$', [past, complete]], //past? + ], + 'past-perfect': [ + // he had walked + ['^had #PastTense$', [past, complete]], + // had been to see + ['^had #PastTense to #Infinitive', [past, complete]], + ], + 'future-perfect': [ + // he will have + ['^will have #PastTense$', [future, complete]], + ], + + // === Progressive-perfect === + 'present-perfect-progressive': [ + // he has been walking + ['^(has|have) been #Gerund$', [past, prog]], //present? + ], + 'past-perfect-progressive': [ + // he had been + ['^had been #Gerund$', [past, prog]], + ], + 'future-perfect-progressive': [ + // will have been + ['^will have been #Gerund$', [future, prog]], + ], + + // ==== Passive === + 'passive-past': [ + // got walked, was walked, were walked + ['(got|were|was) (#PastTense|#Participle)', [past, passive]], + // was being walked + ['^(was|were) being (#PastTense|#Participle)', [past, passive]], + // had been walked, have been eaten + ['^(had|have) been (#PastTense|#Participle)', [past, passive]], + ], + 'passive-present': [ + // is walked, are stolen + ['^(is|are|am) (#PastTense|#Participle)', [present, passive]], + // is being walked + ['^(is|are|am) being (#PastTense|#Participle)', [present, passive]], + // has been cleaned + ['^has been (#PastTense|#Participle)', [present, passive]], + ], + 'passive-future': [ + // will have been walked + ['will have been (#PastTense|#Participle)', [future, passive, conditional]], + // will be cleaned + ['will be being? (#PastTense|#Participle)', [future, passive, conditional]], + ], + + // === Conditional === + 'present-conditional': [ + // would be walked + ['would be #PastTense', [present, conditional]], + ], + 'past-conditional': [ + // would have been walked + ['would have been #PastTense', [past, conditional]], + ], + + // ==== Auxiliary === + 'auxiliary-future': [ + // going to drink + ['(is|are|am|was) going to (#Infinitive|#PresentTense)', [future]], + ], + 'auxiliary-past': [ + // he did walk + ['^did #Infinitive$', [past, singular]], + // used to walk + ['^used to #Infinitive$', [past, complete]], + ], + 'auxiliary-present': [ + // we do walk + ['^(does|do) #Infinitive$', [present, complete, plural]], + ], + + // === modals === + 'modal-past': [ + // he could have walked + ['^(could|must|should|shall) have #PastTense$', [past]], + ], + 'modal-infinitive': [ + // he can walk + ['^#Modal #Infinitive$', []], + ], + + 'infinitive': [ + // walk + ['^#Infinitive$', []], + ], + }; + + let list = []; + Object.keys(verbForms).map(k => { + verbForms[k].forEach(a => { + list.push({ + name: k, + match: a[0], + data: getData(a[1]), + }); + }); + }); + + var forms$4 = list; + + const cleanUp = function (vb, res) { + vb = vb.clone(); + // remove adverbs + if (res.adverbs.post && res.adverbs.post.found) { + vb.remove(res.adverbs.post); + } + if (res.adverbs.pre && res.adverbs.pre.found) { + vb.remove(res.adverbs.pre); + } + // remove negatives + if (vb.has('#Negative')) { + vb = vb.remove('#Negative'); + } + // remove prefixes like 'anti' + if (vb.has('#Prefix')) { + vb = vb.remove('#Prefix'); + } + // cut-off phrasal-verb + if (res.root.has('#PhrasalVerb #Particle')) { + vb.remove('#Particle$'); + } + // did we miss any of these? + // vb = vb.remove('#Adverb') + vb = vb.not('#Adverb'); + return vb + }; + + const getGrammar = function (vb, res) { + let grammar = {}; + // make it easy to classify, first + vb = cleanUp(vb, res); + for (let i = 0; i < forms$4.length; i += 1) { + let todo = forms$4[i]; + if (vb.has(todo.match) === true) { + grammar.form = todo.name; + Object.assign(grammar, todo.data); + break //only match one + } + } + // did we find nothing? + if (!grammar.form) { + if (vb.has('^#Verb$')) { + grammar.form = 'infinitive'; + } + } + // fallback to 'naiive' tense detection + if (!grammar.tense) { + grammar.tense = res.root.has('#PastTense') ? 'PastTense' : 'PresentTense'; + } + grammar.copula = res.root.has('#Copula'); + return grammar + }; + + var getGrammar$1 = getGrammar; + + const shouldSkip = function (last) { + // is it our only choice? + if (last.length <= 1) { + return false + } + let obj = last.parse()[0] || {}; + return obj.isSubordinate + }; + + // try to chop-out any obvious conditional phrases + // he wore, [if it was raining], a raincoat. + const noSubClause = function (before) { + let parts = before.clauses(); + parts = parts.filter((m, i) => { + // if it was raining.. + if (m.has('^(if|unless|while|but|for|per|at|by|that|which|who|from)')) { + return false + } + // bowed to her, + if (i > 0 && m.has('^#Verb . #Noun+$')) { + return false + } + // the fog, suddenly increasing in.. + if (i > 0 && m.has('^#Adverb')) { + return false + } + return true + }); + // don't drop the whole thing. + if (parts.length === 0) { + return before + } + return parts + }; + + // + const lastNoun = function (vb) { + let before = vb.before(); + // try to drop any mid-sentence clauses + before = noSubClause(before); + // parse-out our preceding nouns + let nouns = before.nouns(); + // look for any dead-ringers + let last = nouns.last(); + // i/she/he/they are very strong + let pronoun = last.match('(i|he|she|we|you|they)'); + if (pronoun.found) { + return pronoun.nouns() + } + // these are also good hints + let det = nouns.if('^(that|this|those)'); + if (det.found) { + return det + } + if (nouns.found === false) { + det = before.match('^(that|this|those)'); + if (det.found) { + return det + } + } + + // should we skip a subbordinate clause or two? + last = nouns.last(); + if (shouldSkip(last)) { + nouns.remove(last); + last = nouns.last(); + } + // i suppose we can skip two? + if (shouldSkip(last)) { + nouns.remove(last); + last = nouns.last(); + } + return last + }; + + const isPlural$1 = function (subj, vb) { + // 'we are' vs 'he is' + if (vb.has('(are|were|does)')) { + return true + } + if (subj.has('(those|they|we)')) { + return true + } + if (subj.found && subj.isPlural) { + return subj.isPlural().found + } + return false + }; + + const getSubject = function (vb) { + let subj = lastNoun(vb); + return { + subject: subj, + plural: isPlural$1(subj, vb), + } + }; + var getSubject$1 = getSubject; + + const noop = vb => vb; + + const isPlural = (vb, parsed) => { + let subj = getSubject$1(vb); + let m = subj.subject; + if (m.has('i') || m.has('we')) { + return true + } + return subj.plural + }; + + const wasWere = (vb, parsed) => { + let { subject, plural } = getSubject$1(vb); + if (plural || subject.has('we')) { + return 'were' + } + return 'was' + }; + + // present-tense copula + const isAreAm = function (vb, parsed) { + // 'people were' -> 'people are' + if (vb.has('were')) { + return 'are' + } + // 'i was' -> i am + let { subject, plural } = getSubject$1(vb); + if (subject.has('i')) { + return 'am' + } + if (subject.has('we') || plural) { + return 'are' + } + // 'he was' -> he is + return 'is' + }; + + + const doDoes = function (vb, parsed) { + let subj = getSubject$1(vb); + let m = subj.subject; + if (m.has('i') || m.has('we')) { + return 'do' + } + if (subj.plural) { + return 'do' + } + return 'does' + }; + + const getTense = function (m) { + if (m.has('#Infinitive')) { + return 'Infinitive' + } + if (m.has('#Participle')) { + return 'Participle' + } + if (m.has('#PastTense')) { + return 'PastTense' + } + if (m.has('#Gerund')) { + return 'Gerund' + } + if (m.has('#PresentTense')) { + return 'PresentTense' + } + return undefined + }; + + const toInf = function (vb, parsed) { + const { verbToInfinitive } = vb.methods.two.transform; + let str = parsed.root.text({ keepPunct: false }); + str = verbToInfinitive(str, vb.model, getTense(vb)); + if (str) { + vb.replace(parsed.root, str); + } + return vb + }; + + + + // i will start looking -> i started looking + // i will not start looking -> i did not start looking + const noWill = (vb) => { + if (vb.has('will not')) { + return vb.replace('will not', 'have not') + } + return vb.remove('will') + }; + + const toArray = function (m) { + if (!m || !m.isView) { + return [] + } + const opts = { normal: true, terms: false, text: false }; + return m.json(opts).map(s => s.normal) + }; + + const toText = function (m) { + if (!m || !m.isView) { + return '' + } + return m.text('normal') + }; + + const toInfinitive$3 = function (root) { + const { verbToInfinitive } = root.methods.two.transform; + let str = root.text('normal'); + return verbToInfinitive(str, root.model, getTense(root)) + }; + + const toJSON = function (vb) { + let parsed = parseVerb$1(vb); + vb = vb.clone().toView(); + const info = getGrammar$1(vb, parsed); + return { + root: parsed.root.text(), + preAdverbs: toArray(parsed.adverbs.pre), + postAdverbs: toArray(parsed.adverbs.post), + auxiliary: toText(parsed.auxiliary), + negative: parsed.negative.found, + prefix: toText(parsed.prefix), + infinitive: toInfinitive$3(parsed.root), + grammar: info, + } + }; + var toJSON$1 = toJSON; + + const keep$5 = { tags: true }; + + // all verb forms are the same + const toInfinitive$1 = function (vb, parsed) { + const { verbToInfinitive } = vb.methods.two.transform; + const { root, auxiliary } = parsed; + let aux = auxiliary.terms().harden(); + let str = root.text('normal'); + str = verbToInfinitive(str, vb.model, getTense(root)); + if (str) { + vb.replace(root, str, keep$5).tag('Verb').firstTerm().tag('Infinitive'); + } + // remove any auxiliary terms + if (aux.found) { + vb.remove(aux); + } + // there is no real way to do this + // 'i not walk'? 'i walk not'? + if (parsed.negative.found) { + if (!vb.has('not')) { + vb.prepend('not'); + } + let does = doDoes(vb); + vb.prepend(does); + } + vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']); + return vb + }; + var toInfinitive$2 = toInfinitive$1; + + const keep$4 = { tags: true }; + + const fns = { + + noAux: (vb, parsed) => { + if (parsed.auxiliary.found) { + vb = vb.remove(parsed.auxiliary); + } + return vb + }, + + // walk->walked + simple: (vb, parsed) => { + const { verbConjugate, verbToInfinitive } = vb.methods.two.transform; + const root = parsed.root; + // 'i may' + if (root.has('#Modal')) { + return vb + } + let str = root.text({ keepPunct: false }); + str = verbToInfinitive(str, vb.model, getTense(root)); + let all = verbConjugate(str, vb.model); + // 'driven' || 'drove' + str = all.PastTense; + // all.Participle || all.PastTense + // but skip the 'is' participle.. + str = str === 'been' ? 'was' : str; + if (str === 'was') { + str = wasWere(vb); + } + if (str) { + vb.replace(root, str, keep$4); + } + return vb + }, + + both: function (vb, parsed) { + // 'he did not walk' + if (parsed.negative.found) { + vb.replace('will', 'did'); + return vb + } + // 'he walked' + vb = fns.simple(vb, parsed); + vb = fns.noAux(vb, parsed); + return vb + }, + + hasHad: vb => { + vb.replace('has', 'had', keep$4); + return vb + }, + + // some verbs have this weird past-tense form + // drive -> driven, (!drove) + hasParticiple: (vb, parsed) => { + const { verbConjugate, verbToInfinitive } = vb.methods.two.transform; + const root = parsed.root; + let str = root.text('normal'); + str = verbToInfinitive(str, vb.model, getTense(root)); + return verbConjugate(str, vb.model).Participle + }, + + + + }; + + + const forms$3 = { + // walk -> walked + 'infinitive': fns.simple, + // he walks -> he walked + 'simple-present': fns.simple, + // he walked + 'simple-past': noop, + // he will walk -> he walked + 'simple-future': fns.both, + + // he is walking + 'present-progressive': vb => { + vb.replace('are', 'were', keep$4); + vb.replace('(is|are|am)', 'was', keep$4); + return vb + }, + // he was walking + 'past-progressive': noop, + // he will be walking + 'future-progressive': (vb, parsed) => { + vb.match(parsed.root).insertBefore('was'); + vb.remove('(will|be)'); + return vb + }, + + // has walked -> had walked (?) + 'present-perfect': fns.hasHad, + // had walked + 'past-perfect': noop, + // will have walked -> had walked + 'future-perfect': (vb, parsed) => { + vb.match(parsed.root).insertBefore('had'); + if (vb.has('will')) { + vb = noWill(vb); + } + vb.remove('have'); + return vb + }, + + // has been walking -> had been + 'present-perfect-progressive': fns.hasHad, + // had been walking + 'past-perfect-progressive': noop, + // will have been -> had + 'future-perfect-progressive': vb => { + vb.remove('will'); + vb.replace('have', 'had', keep$4); + return vb + }, + + // got walked + 'passive-past': vb => { + // 'have been walked' -> 'had been walked' + vb.replace('have', 'had', keep$4); + return vb + }, + // is being walked -> 'was being walked' + 'passive-present': vb => { + vb.replace('(is|are)', 'was', keep$4); + return vb + }, + // will be walked -> had been walked + 'passive-future': (vb, parsed) => { + if (parsed.auxiliary.has('will be')) { + vb.match(parsed.root).insertBefore('had been'); + vb.remove('(will|be)'); + } + // will have been walked -> had been walked + if (parsed.auxiliary.has('will have been')) { + vb.replace('have', 'had', keep$4); + vb.remove('will'); + } + return vb + }, + + // would be walked -> 'would have been walked' + 'present-conditional': vb => { + vb.replace('be', 'have been'); + return vb + }, + // would have been walked + 'past-conditional': noop, + + // is going to drink -> was going to drink + 'auxiliary-future': vb => { + vb.replace('(is|are|am)', 'was', keep$4); + return vb + }, + // used to walk + 'auxiliary-past': noop, + // we do walk -> we did walk + 'auxiliary-present': vb => { + vb.replace('(do|does)', 'did', keep$4); + return vb + }, + + // must walk -> 'must have walked' + 'modal-infinitive': (vb, parsed) => { + // this modal has a clear tense + if (vb.has('can')) { + // can drive -> could drive + vb.replace('can', 'could', keep$4); + } else { + // otherwise, + // walk -> have walked + // drive -> have driven + fns.simple(vb, parsed); + vb.match('#Modal').insertAfter('have').tag('Auxiliary'); + } + return vb + }, + // must have walked + 'modal-past': noop, + // wanted to walk + 'want-infinitive': vb => { + vb.replace('(want|wants)', 'wanted', keep$4); + vb.remove('will'); + return vb + }, + // started looking + 'gerund-phrase': (vb, parsed) => { + parsed.root = parsed.root.not('#Gerund$'); + fns.simple(vb, parsed); + noWill(vb); + return vb + }, + }; + + const toPast = function (vb, parsed, form) { + // console.log(form) + if (forms$3.hasOwnProperty(form)) { + vb = forms$3[form](vb, parsed); + vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']); + return vb + } + // do nothing i guess? + return vb + }; + var toPast$1 = toPast; + + const keep$3 = { tags: true }; + + // walk->walked + const simple$1 = (vb, parsed) => { + const { verbConjugate, verbToInfinitive } = vb.methods.two.transform; + const root = parsed.root; + let str = root.text('normal'); + str = verbToInfinitive(str, vb.model, getTense(root)); + // 'i walk' vs 'he walks' + if (isPlural(vb) === false) { + str = verbConjugate(str, vb.model).PresentTense; + } + // handle copula + if (root.has('#Copula')) { + str = isAreAm(vb); + } + if (str) { + vb = vb.replace(root, str, keep$3); + vb.not('#Particle').tag('PresentTense'); + } + // vb.replace('not ' + str, str + ' not') + return vb + }; + + const toGerund$2 = (vb, parsed) => { + const { verbConjugate, verbToInfinitive } = vb.methods.two.transform; + const root = parsed.root; + let str = root.text('normal'); + str = verbToInfinitive(str, vb.model, getTense(root)); + // 'i walk' vs 'he walks' + if (isPlural(vb) === false) { + str = verbConjugate(str, vb.model).Gerund; + } + if (str) { + vb = vb.replace(root, str, keep$3); + vb.not('#Particle').tag('Gerund'); + } + return vb + }; + + const toInfinitive = (vb, parsed) => { + const { verbToInfinitive } = vb.methods.two.transform; + const root = parsed.root; + let str = parsed.root.text('normal'); + str = verbToInfinitive(str, vb.model, getTense(root)); + if (str) { + vb = vb.replace(parsed.root, str, keep$3); + } + return vb + }; + + + + const forms$2 = { + // walk + 'infinitive': simple$1, + // he walks -> he walked + 'simple-present': (vb, parsed) => { + const { verbConjugate } = vb.methods.two.transform; + let { root } = parsed; + // is it *only* a infinitive? - 'we buy' etc + if (root.has('#Infinitive')) { + let subj = getSubject$1(vb); + let m = subj.subject; + if (isPlural(vb) || m.has('i')) { + // keep it infinitive + return vb + } + let str = root.text('normal'); + let pres = verbConjugate(str, vb.model).PresentTense; + if (str !== pres) { + vb.replace(root, pres, keep$3); + } + } else { + return simple$1(vb, parsed) + } + return vb + }, + // he walked + 'simple-past': simple$1, + // he will walk -> he walked + 'simple-future': (vb, parsed) => { + const { root, auxiliary } = parsed; + // handle 'will be' + if (auxiliary.has('will') && root.has('be')) { + let str = isAreAm(vb); + vb.replace(root, str); + vb = vb.remove('will'); + vb.replace('not ' + str, str + ' not'); + } else { + simple$1(vb, parsed); + vb = vb.remove('will'); + } + return vb + }, + + // is walking -> + 'present-progressive': noop, + // was walking -> is walking + 'past-progressive': (vb, parsed) => { + let str = isAreAm(vb); + return vb.replace('(were|was)', str, keep$3) + }, + // will be walking -> is walking + 'future-progressive': vb => { + vb.match('will').insertBefore('is'); + vb.remove('be'); + return vb.remove('will') + }, + + // has walked -> (?) + 'present-perfect': (vb, parsed) => { + simple$1(vb, parsed); + vb = vb.remove('(have|had|has)'); + return vb + }, + + // had walked -> has walked + 'past-perfect': (vb, parsed) => { + // not 'we has walked' + let subj = getSubject$1(vb); + let m = subj.subject; + if (isPlural(vb) || m.has('i')) { + vb = toInf(vb, parsed);// we walk + vb.remove('had'); + return vb + } + vb.replace('had', 'has', keep$3); + return vb + }, + // will have walked -> has walked + 'future-perfect': vb => { + vb.match('will').insertBefore('has'); + return vb.remove('have').remove('will') + }, + + // has been walking + 'present-perfect-progressive': noop, + // had been walking + 'past-perfect-progressive': vb => vb.replace('had', 'has', keep$3), + // will have been -> has been + 'future-perfect-progressive': vb => { + vb.match('will').insertBefore('has'); + return vb.remove('have').remove('will') + }, + + // got walked -> is walked + // was walked -> is walked + // had been walked -> is walked + 'passive-past': (vb, parsed) => { + let str = isAreAm(vb); + if (vb.has('(had|have|has)') && vb.has('been')) { + vb.replace('(had|have|has)', str, keep$3); + vb.replace('been', 'being'); + return vb + } + return vb.replace('(got|was|were)', str) + }, + // is being walked -> + 'passive-present': noop, + // will be walked -> is being walked + 'passive-future': vb => { + vb.replace('will', 'is'); + return vb.replace('be', 'being') + }, + + // would be walked -> + 'present-conditional': noop, + // would have been walked -> + 'past-conditional': vb => { + vb.replace('been', 'be'); + return vb.remove('have') + }, + + // is going to drink -> is drinking + 'auxiliary-future': (vb, parsed) => { + toGerund$2(vb, parsed); + vb.remove('(going|to)'); + return vb + }, + // used to walk -> is walking + // did walk -> is walking + 'auxiliary-past': (vb, parsed) => { + // 'did provide' -> 'does provide' + if (parsed.auxiliary.has('did')) { + let str = doDoes(vb); + vb.replace(parsed.auxiliary, str); + return vb + } + toGerund$2(vb, parsed); + vb.replace(parsed.auxiliary, 'is'); + return vb + }, + // we do walk -> + 'auxiliary-present': noop, + + // must walk -> 'must have walked' + 'modal-infinitive': noop, + // must have walked + 'modal-past': (vb, parsed) => { + toInfinitive(vb, parsed); + return vb.remove('have') + }, + // started looking + 'gerund-phrase': (vb, parsed) => { + parsed.root = parsed.root.not('#Gerund$'); + simple$1(vb, parsed); + return vb.remove('(will|have)') + }, + // wanted to walk + 'want-infinitive': (vb, parsed) => { + let str = 'wants'; + if (isPlural(vb)) { + str = 'want';//we want + } + vb.replace('(want|wanted|wants)', str, keep$3); + vb.remove('will'); + return vb + }, + }; + + const toPresent = function (vb, parsed, form) { + // console.log(form) + if (forms$2.hasOwnProperty(form)) { + vb = forms$2[form](vb, parsed); + vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']); + return vb + } + return vb + }; + var toPresent$1 = toPresent; + + const keep$2 = { tags: true }; + + const simple = (vb, parsed) => { + const { verbToInfinitive } = vb.methods.two.transform; + const { root, auxiliary } = parsed; + // 'i may' + if (root.has('#Modal')) { + return vb + } + let str = root.text('normal'); + str = verbToInfinitive(str, vb.model, getTense(root)); + if (str) { + vb = vb.replace(root, str, keep$2); + vb.not('#Particle').tag('Verb'); + } + vb.prepend('will').match('will').tag('Auxiliary'); + vb.remove(auxiliary); + return vb + }; + + // 'will be walking' + const progressive = (vb, parsed) => { + const { verbConjugate, verbToInfinitive } = vb.methods.two.transform; + const { root, auxiliary } = parsed; + let str = root.text('normal'); + str = verbToInfinitive(str, vb.model, getTense(root)); + if (str) { + str = verbConjugate(str, vb.model).Gerund; + vb.replace(root, str, keep$2); + vb.not('#Particle').tag('PresentTense'); + } + vb.remove(auxiliary); + vb.prepend('will be').match('will be').tag('Auxiliary'); + return vb + }; + + const forms$1 = { + // walk -> + 'infinitive': simple, + // he walks -> + 'simple-present': simple, + // he walked + 'simple-past': simple, + // he will walk -> + 'simple-future': noop, + + // is walking -> + 'present-progressive': progressive, + // was walking -> + 'past-progressive': progressive, + // will be walking -> + 'future-progressive': noop, + + // has walked -> + 'present-perfect': (vb) => { + vb.match('(have|has)').replaceWith('will have'); + return vb + }, + // had walked -> + 'past-perfect': vb => vb.replace('(had|has)', 'will have'), + // will have walked -> + 'future-perfect': noop, + + // has been walking + 'present-perfect-progressive': vb => vb.replace('has', 'will have'), + // had been walking + 'past-perfect-progressive': vb => vb.replace('had', 'will have'), + // will have been -> + 'future-perfect-progressive': noop, + + // got walked -> + // was walked -> + // was being walked -> + // had been walked -> + 'passive-past': vb => { + if (vb.has('got')) { + return vb.replace('got', 'will get') + } + if (vb.has('(was|were)')) { + vb.replace('(was|were)', 'will be'); + return vb.remove('being') + } + if (vb.has('(have|has|had) been')) { + return vb.replace('(have|has|had) been', 'will be') + } + return vb + }, + // is being walked -> + 'passive-present': vb => { + vb.replace('being', 'will be'); + vb.remove('(is|are|am)'); + return vb + }, + // will be walked -> + 'passive-future': noop, + // would be walked -> + 'present-conditional': vb => vb.replace('would', 'will'), + // would have been walked -> + 'past-conditional': vb => vb.replace('would', 'will'), + + // is going to drink -> + 'auxiliary-future': noop, + // used to walk -> is walking + // did walk -> is walking + 'auxiliary-past': vb => { + if (vb.has('used') && vb.has('to')) { + vb.replace('used', 'will'); + return vb.remove('to') + } + vb.replace('did', 'will'); + return vb + }, + // we do walk -> + // he does walk -> + 'auxiliary-present': vb => { + return vb.replace('(do|does)', 'will') + }, + + // must walk -> + 'modal-infinitive': noop, + // must have walked + 'modal-past': noop, + // started looking + 'gerund-phrase': (vb, parsed) => { + parsed.root = parsed.root.not('#Gerund$'); + simple(vb, parsed); + return vb.remove('(had|have)') + }, + // wanted to walk + 'want-infinitive': vb => { + vb.replace('(want|wants|wanted)', 'will want'); + return vb + }, + }; + + const toFuture = function (vb, parsed, form) { + // console.log(form) + // is it already future-tense? + if (vb.has('will') || vb.has('going to')) { + return vb + } + if (forms$1.hasOwnProperty(form)) { + vb = forms$1[form](vb, parsed); + vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']); + return vb + } + return vb + }; + var toFuture$1 = toFuture; + + const keep$1 = { tags: true }; + + // all verb forms are the same + const toGerund = function (vb, parsed) { + // console.log(form) + const { verbToInfinitive, verbConjugate } = vb.methods.two.transform; + const { root, auxiliary } = parsed; + if (vb.has('#Gerund')) { + return vb + } + + // conjugate '-ing' verb + let str = root.text('normal'); + str = verbToInfinitive(str, vb.model, getTense(root)); + let gerund = verbConjugate(str, vb.model).Gerund; + // 'are walking', 'is walking' + if (gerund) { + gerund = `${isAreAm(vb)} ${gerund}`; + // console.log(root, gerund) + // vb.match(root).debug() + vb.replace(root, gerund, keep$1); + } + + // remove any existing auxiliary + if (auxiliary.found) { + vb.remove(auxiliary); + } + vb.replace('not is', 'is not'); + vb.replace('not are', 'are not'); + vb.fullSentence().compute(['preTagger', 'postTagger', 'chunks']); + return vb + }; + var toGerund$1 = toGerund; + + const keep = { tags: true }; + + // do/does not walk + const doesNot = function (vb, parsed) { + let does = doDoes(vb); + vb.prepend(does + ' not'); + return vb + }; + + const isWas = function (vb) { + // not be + let m = vb.match('be'); + if (m.found) { + m.prepend('not'); + return vb + } + // will not + m = vb.match('(is|was|am|are|will|were)'); + if (m.found) { + m.append('not'); + return vb + } + return vb + }; + + const hasCopula = (vb) => vb.has('(is|was|am|are|will|were|be)'); + + //vaguely, turn 'he is cool' into 'he is not cool' + const forms = { + + + // he walks' -> 'he does not walk' + 'simple-present': (vb, parsed) => { + // is/was + if (hasCopula(vb) === true) { + return isWas(vb) + } + // he walk + vb = toInf(vb, parsed); + // does not + vb = doesNot(vb); + return vb + }, + // 'he walked' -> 'he did not walk' + 'simple-past': (vb, parsed) => { + // is/was + if (hasCopula(vb) === true) { + return isWas(vb) + } + // he walk + vb = toInf(vb, parsed); + // vb.debug() + // did not walk + vb.prepend('did not'); + return vb + }, + + // walk! -> 'do not walk' + 'imperative': (vb) => { + vb.prepend('do not'); + return vb + }, + // walk -> does not walk + 'infinitive': (vb, parsed) => { + if (hasCopula(vb) === true) { + return isWas(vb) + } + return doesNot(vb) + }, + + 'passive-past': (vb) => { + // got walked -> did not get walked + if (vb.has('got')) { + vb.replace('got', 'get', keep); + vb.prepend('did not'); + return vb + } + // was walked, were walked + // was being walked + // had been walked, have been eaten + let m = vb.match('(was|were|had|have)'); + if (m.found) { + m.append('not'); + } + return vb + }, + 'auxiliary-past': (vb) => { + // used to walk + if (vb.has('used')) { + vb.prepend('did not'); + return vb + } + // he did walk + let m = vb.match('(did|does|do)'); + if (m.found) { + m.append('not'); + } + return vb + }, + + // wants to walk + 'want-infinitive': (vb, parsed) => { + // does not + vb = doesNot(vb); + // want + vb = vb.replace('wants', 'want', keep); + return vb + }, + + }; + + const toNegative = function (vb, parsed, form) { + // console.log(form) + if (vb.has('#Negative')) { + return vb + } + if (forms.hasOwnProperty(form)) { + vb = forms[form](vb, parsed); + return vb + } + + // 'not be' + let m = vb.matchOne('be'); + if (m.found) { + m.prepend('not'); + return vb + } + // is/was not + if (hasCopula(vb) === true) { + return isWas(vb) + } + + // 'would not' + m = vb.matchOne('(will|had|have|has|did|does|do|#Modal)'); + if (m.found) { + m.append('not'); + return vb + } + // do nothing i guess? + return vb + }; + var toNegative$1 = toNegative; + + // import debug from './debug.js' + + + // return the nth elem of a doc + const getNth = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); + + const api = function (View) { + class Verbs extends View { + constructor(document, pointer, groups) { + super(document, pointer, groups); + this.viewType = 'Verbs'; + } + parse(n) { + return getNth(this, n).map(parseVerb$1) + } + json(opts, n) { + let m = getNth(this, n); + let arr = m.map(vb => { + let json = vb.toView().json(opts)[0] || {}; + json.verb = toJSON$1(vb); + return json + }, []); + return arr + } + subjects(n) { + return getNth(this, n).map(vb => { + parseVerb$1(vb); + return getSubject$1(vb).subject + }) + } + adverbs(n) { + return getNth(this, n).map(vb => vb.match('#Adverb')) + } + isSingular(n) { + return getNth(this, n).filter(vb => { + return getSubject$1(vb).plural !== true + }) + } + isPlural(n) { + return getNth(this, n).filter(vb => { + return getSubject$1(vb).plural === true + }) + } + isImperative(n) { + return getNth(this, n).filter(vb => vb.has('#Imperative')) + } + toInfinitive(n) { + return getNth(this, n).map(vb => { + let parsed = parseVerb$1(vb); + let info = getGrammar$1(vb, parsed); + return toInfinitive$2(vb, parsed, info.form) + }) + } + toPresentTense(n) { + return getNth(this, n).map(vb => { + let parsed = parseVerb$1(vb); + let info = getGrammar$1(vb, parsed); + return toPresent$1(vb, parsed, info.form) + }) + } + toPastTense(n) { + return getNth(this, n).map(vb => { + let parsed = parseVerb$1(vb); + let info = getGrammar$1(vb, parsed); + return toPast$1(vb, parsed, info.form) + }) + } + toFutureTense(n) { + return getNth(this, n).map(vb => { + let parsed = parseVerb$1(vb); + let info = getGrammar$1(vb, parsed); + return toFuture$1(vb, parsed, info.form) + }) + } + toGerund(n) { + return getNth(this, n).map(vb => { + let parsed = parseVerb$1(vb); + let info = getGrammar$1(vb, parsed); + return toGerund$1(vb, parsed, info.form) + }) + } + conjugate(n) { + return getNth(this, n).map(vb => { + let parsed = parseVerb$1(vb); + let info = getGrammar$1(vb, parsed); + // allow imperatives like 'go!' to be conjugated here (only) + if (info.form === 'imperative') { + info.form = 'simple-present'; + } + return { + Infinitive: toInfinitive$2(vb.clone(), parsed, info.form).text('normal'), + PastTense: toPast$1(vb.clone(), parsed, info.form).text('normal'), + PresentTense: toPresent$1(vb.clone(), parsed, info.form).text('normal'), + FutureTense: toFuture$1(vb.clone(), parsed, info.form).text('normal'), + } + }, []) + } + + /** return only verbs with 'not'*/ + isNegative() { + return this.if('#Negative') + } + /** return only verbs without 'not'*/ + isPositive() { + return this.ifNo('#Negative') + } + /** remove 'not' from these verbs */ + toPositive() { + let m = this.match('do not #Verb'); + if (m.found) { + m.remove('do not'); + } + return this.remove('#Negative') + } + toNegative(n) { + return getNth(this, n).map(vb => { + let parsed = parseVerb$1(vb); + let info = getGrammar$1(vb, parsed); + return toNegative$1(vb, parsed, info.form) + }) + } + // overloaded - keep Verb class + update(pointer) { + let m = new Verbs(this.document, pointer); + m._cache = this._cache; // share this full thing + return m + } + } + Verbs.prototype.toPast = Verbs.prototype.toPastTense; + Verbs.prototype.toPresent = Verbs.prototype.toPresentTense; + Verbs.prototype.toFuture = Verbs.prototype.toFutureTense; + + View.prototype.verbs = function (n) { + let vb = find(this); + vb = getNth(vb, n); + return new Verbs(this.document, vb.pointer) + }; + }; + var api$1 = api; + + var verbs = { + api: api$1, + }; + + nlp$1.plugin(chunker); // + nlp$1.plugin(misc); // + nlp$1.plugin(normalize); // + nlp$1.plugin(nouns); // + nlp$1.plugin(numbers); // + nlp$1.plugin(redact$1); // + nlp$1.plugin(sentences); // + nlp$1.plugin(topics); // + nlp$1.plugin(verbs); // + + return nlp$1; + +})); diff --git a/builds/three/compromise-three.mjs b/builds/three/compromise-three.mjs index 0e69950c5..eb9d7327f 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.0";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(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},C.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 D=C;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;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 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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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 Ge={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 Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=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=>{Ue(e)?n.push(e):n=n.concat(e.split(qe))}),n=Re(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Re(r),r};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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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 Tt=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 Ct=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 Dt=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 Bt=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]&&Ct(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(!Dt(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 Vt=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(!Tt(a))return null}if(!0!==e.optional)return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Gt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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,""),Ut.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(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||a&&Rt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&_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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var bn=function(e,t){let n=vn(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 yn={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:vn,splitAll:bn}}};var wn=function(e,t){let n=e.concat(t),r=vn(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=>fn(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 Pn=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},jn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Nn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=jn(e,this.document),this.update(e)};var En={methods:yn,api:function(e){Object.assign(e.prototype,Nn)}};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 In=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),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(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)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Gn=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 Tn=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.find(e=>r.has(e)))})};var Cn=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 Dn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;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=In(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=Gn(a,t.hooks);return o=Tn(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),Cn(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&&Dn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===On(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 Vn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(22)} ${(e=>""+e+"")(n)}`)})(e[0],t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Vn.test(t))!function(e,t,n,r){let a=t.split(Vn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn;var Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Un=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:Ln(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Wn(t=e).forEach(Mn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Wn(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},Qn=function(e){let t=Wn(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},Zn={text:Rn,txt:Rn,array:Qn,flat:Qn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Yn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Wn(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 Yn(this.json),_n(this.json,e)}debug(){return Yn(this.json),_n(this.json,"debug"),this}}const er=function(e){let t=Un(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(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 ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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 ur=function(e){Object.assign(e.prototype,lr)};var cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var gr=function(e){let t=[],n=e.split(mr);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 Or=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Br=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Vr=/['’]/,zr=/^[a-z]\.([a-z]\.)+/i,$r=/^[-+.][0-9]/,Fr=/^'[0-9]{2}/;var Sr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Or,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$r.test(e)?"'"===n&&Fr.test(e)?(n="",t):"":(n="",t)))).replace(Br,a=>(r=a,Vr.test(a)&&/[sn]['’]$/.test(t)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Hr=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,Lr=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var qr=function(e){return function(e){return!0===Mr.test(e)||!0===Wr.test(e)||!0===Jr.test(e)||!0===Lr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Kr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Hr(r),r=n(r,t),r=qr(r),e.normal=r};var Ur={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:Ar,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(Cr);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=Ir(n),n=Er(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Sr(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=>{Kr(e,t)}),n})}}}};var Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["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=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])})});var _r=["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 Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xr={};Object.keys(Yr).forEach((function(e){Yr[e].split("").forEach((function(t){Xr[t]=e}))}));const ea=/\//,ta=/[a-z]\.[a-z]/i,na=/[0-9]/;var ra=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])),ea.test(n)&&!ta.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 aa=/^\p{Letter}+-\p{Letter}+$/u;var oa=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"),aa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var ia=function(e){let t=0,n=0,r=e.document;for(let e=0;esa(e,ra),machine:e=>sa(e,oa),normal:e=>sa(e,Kr),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 ha={safe:!0,min:3};var da={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ua},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ha,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ca(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(gn),m.extend(St),m.extend(En),m.extend(dr),m.plugin(ve),m.extend(la),m.plugin(f),m.extend(Ge),m.extend(da),m.extend(Pe),m.extend(Bn);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"},ma={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ga="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",fa=ga.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var va=function(e){if(void 0!==fa[e])return fa[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 ba=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=wa(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=ka(ma[e]);Na.test(e)?Object.keys(t).forEach(t=>{if(xa[t]=e,"Noun|Verb"===e){let e=ja(t,Ia);xa[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ea[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ea[e]="Emoticon"),delete Ea[""],delete Ea.null,delete Ea[" "];const Ga="Adjective";var Ta={beforeTags:{Determiner:Ga,Possessive:Ga},afterTags:{Adjective:Ga},beforeWords:{seem:Ga,seemed:Ga,seems:Ga,feel:Ga,feels:Ga,felt:Ga,appear:Ga,appears:Ga,appeared:Ga,also:Ga,over:Ga,under:Ga,too:Ga,it:Ga,but:Ga,still:Ga,really:Ga,quite:Ga,well:Ga,very:Ga,deeply:Ga,profoundly:Ga,extremely:Ga,so:Ga,badly:Ga,mostly:Ga,totally:Ga,awfully:Ga,rather:Ga,nothing:Ga,something:Ga,anything:Ga},afterWords:{too:Ga,also:Ga,or:Ga}};const Ca="Gerund";var Da={beforeTags:{Adverb:Ca,Preposition:Ca,Conjunction:Ca},afterTags:{Adverb:Ca,Possessive:Ca,Person:Ca,Pronoun:Ca,Determiner:Ca,Copula:Ca,Preposition:Ca,Conjunction:Ca,Comparative:Ca},beforeWords:{been:Ca,keep:Ca,continue:Ca,stop:Ca,am:Ca,be:Ca,me:Ca,began:Ca,start:Ca,starts:Ca,started:Ca,stops:Ca,stopped:Ca,help:Ca,helps:Ca,avoid:Ca,avoids:Ca,love:Ca,loves:Ca,loved:Ca,hate:Ca,hates:Ca,hated:Ca},afterWords:{you:Ca,me:Ca,her:Ca,him:Ca,them:Ca,their:Ca,it:Ca,this:Ca,there:Ca,on:Ca,about:Ca,for:Ca}};var Oa={beforeTags:Object.assign({},Ta.beforeTags,Da.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ta.afterTags,Da.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ta.beforeWords,Da.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ta.afterWords,Da.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ba="Singular";var Va={beforeTags:{Determiner:Ba,Possessive:Ba,Acronym:Ba,Noun:Ba,Adjective:Ba,PresentTense:Ba,Gerund:Ba,PastTense:Ba,Infinitive:Ba,Date:Ba},afterTags:{Value:Ba,Modal:Ba,Copula:Ba,PresentTense:Ba,PastTense:Ba,Demonym:Ba},beforeWords:{the:Ba,with:Ba,without:Ba,of:Ba,for:Ba,any:Ba,all:Ba,on:Ba,cut:Ba,cuts:Ba,save:Ba,saved:Ba,saves:Ba,make:Ba,makes:Ba,made:Ba,minus:Ba,plus:Ba,than:Ba,another:Ba,versus:Ba,neither:Ba,favorite:Ba,best:Ba,daily:Ba,weekly:Ba,linear:Ba,binary:Ba,mobile:Ba,lexical:Ba,technical:Ba,computer:Ba,scientific:Ba,formal:Ba},afterWords:{of:Ba,system:Ba,aid:Ba,method:Ba,utility:Ba,tool:Ba,reform:Ba,therapy:Ba,philosophy:Ba,room:Ba,authority:Ba,says:Ba,said:Ba,wants:Ba,wanted:Ba}};const za={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var $a={beforeTags:Object.assign({},Ta.beforeTags,Va.beforeTags,za.beforeTags),afterTags:Object.assign({},Ta.afterTags,Va.afterTags),beforeWords:Object.assign({},Ta.beforeWords,Va.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ta.afterWords,Va.afterWords)};const Fa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Sa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ha={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ma={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({},Ta.beforeTags,Fa),afterTags:Object.assign({},Ta.afterTags,Sa),beforeWords:Object.assign({},Ta.beforeWords,Ha),afterWords:Object.assign({},Ta.afterWords,Ma)};const La="Infinitive";var Wa={beforeTags:{Modal:La,Adverb:La,Negative:La,Plural:La},afterTags:{Determiner:La,Adverb:La,Possessive:La,Preposition:La},beforeWords:{i:La,we:La,you:La,they:La,to:La,please:La,will:La,have:La,had:La,would:La,could:La,should:La,do:La,did:La,does:La,can:La,must:La,us:La,me:La,he:La,she:La,it:La,being:La},afterWords:{the:La,me:La,you:La,him:La,her:La,them:La,it:La,a:La,an:La,up:La,down:La,by:La,out:La,off:La,when:La,all:La,to:La,because:La,although:La,before:La,how:La,otherwise:La,though:La,yet:La}};const qa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ka={beforeTags:Object.assign({},Ta.beforeTags,Wa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ta.afterTags,Wa.afterTags,qa.afterTags),beforeWords:Object.assign({},Ta.beforeWords,Wa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ta.afterWords,Wa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Ra={},Qa={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Za={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var _a={beforeTags:Object.assign({},Da.beforeTags,Va.beforeTags,Ua),afterTags:Object.assign({},Da.afterTags,Va.afterTags,Ra),beforeWords:Object.assign({},Da.beforeWords,Va.beforeWords,Qa),afterWords:Object.assign({},Da.afterWords,Va.afterWords,Za)};var Ya={beforeTags:Object.assign({},Wa.beforeTags,Va.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Wa.afterTags,Va.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Wa.beforeWords,Va.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Wa.afterWords,Va.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Xa="Person";var eo={beforeTags:{Honorific:Xa,Person:Xa,Preposition:Xa},afterTags:{Person:Xa,ProperNoun:Xa,Verb:Xa},ownTags:{ProperNoun:Xa},beforeWords:{hi:Xa,hey:Xa,yo:Xa,dear:Xa,hello:Xa},afterWords:{said:Xa,says:Xa,told:Xa,tells:Xa,feels:Xa,felt:Xa,seems:Xa,thinks:Xa,thought:Xa,spends:Xa,spendt:Xa,plays:Xa,played:Xa,sing:Xa,sang:Xa,learn:Xa,learned:Xa,wants:Xa,wanted:Xa}};const to="Month",no={beforeTags:{Date:to,Value:to},afterTags:{Date:to,Value:to},beforeWords:{by:to,in:to,on:to,during:to,after:to,before:to,between:to,until:to,til:to,sometime:to,of:to,this:to,next:to,last:to,previous:to,following:to},afterWords:{sometime:to,in:to,of:to,until:to,the:to}};var ro={beforeTags:Object.assign({},eo.beforeTags,no.beforeTags),afterTags:Object.assign({},eo.afterTags,no.afterTags),beforeWords:Object.assign({},eo.beforeWords,no.beforeWords),afterWords:Object.assign({},eo.afterWords,no.afterWords)};const ao={Place:"Place"},oo={Place:"Place",Abbreviation:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const lo={"Adj|Gerund":Oa,"Adj|Noun":$a,"Adj|Past":Ja,"Adj|Present":Ka,"Noun|Verb":Ya,"Noun|Gerund":_a,"Person|Noun":{beforeTags:Object.assign({},Va.beforeTags,eo.beforeTags),afterTags:Object.assign({},Va.afterTags,eo.afterTags),beforeWords:Object.assign({},Va.beforeWords,eo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Va.afterWords,eo.afterWords)},"Person|Date":ro,"Person|Verb":{beforeTags:Object.assign({},eo.beforeTags,Wa.beforeTags),afterTags:Object.assign({},eo.afterTags,Wa.afterTags),beforeWords:Object.assign({},eo.beforeWords,Wa.beforeWords),afterWords:Object.assign({},eo.afterWords,Wa.afterWords)},"Person|Place":{beforeTags:Object.assign({},ao,eo.beforeTags),afterTags:Object.assign({},oo,eo.afterTags),beforeWords:Object.assign({},io,eo.beforeWords),afterWords:Object.assign({},so,eo.afterWords)}},uo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};lo["Plural|Verb"]={beforeWords:uo(lo["Noun|Verb"].beforeWords,{}),afterWords:uo(lo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:uo(lo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:uo(lo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var co=lo;const ho="Adjective",po="Infinitive",mo="PresentTense",go="Singular",fo="PastTense",vo="Adverb",bo="Plural",yo="Verb",wo="LastName",ko="Participle";var Po=[null,null,{ea:go,ia:"Noun",ic:ho,ly:vo,"'n":yo,"'t":yo},{oed:fo,ued:fo,xed:fo," so":vo,"'ll":"Modal","'re":"Copula",azy:ho,eer:"Noun",end:yo,ped:fo,ffy:ho,ify:po,ing:"Gerund",ize:po,ibe:po,lar:ho,mum:ho,nes:mo,nny:ho,ous:ho,que:ho,rol:go,sis:go,ogy:go,oid:go,ian:go,zes:mo,eld:fo,ken:ko,ven:ko,ten:ko,ect:po,ict:po,ign:po,ful:ho,bal:ho},{amed:fo,aped:fo,ched:fo,lked:fo,rked:fo,reed:fo,nded:fo,mned:ho,cted:fo,dged:fo,ield:go,akis:wo,cede:po,chuk:wo,czyk:wo,ects:mo,ends:yo,enko:wo,ette:go,wner:go,fies:mo,fore:vo,gate:po,gone:ho,ices:bo,ints:bo,ruct:po,ines:bo,ions:bo,less:ho,llen:ho,made:ho,nsen:wo,oses:mo,ould:"Modal",some:ho,sson:wo,tion:go,tage:"Noun",ique:go,tive:ho,tors:"Noun",vice:go,lier:go,fier:go,wned:fo,gent:go,tist:go,pist:go,rist:go,mist:go,yist:go,vist:go,lite:go,site:go,rite:go,mite:go,bite:go,mate:go,date:go,ndal:go,vent:go,uist:go,gist:go,note:go,cide:go,wide:ho,vide:po,ract:po,duce:po,pose:po,eive:po,lyze:po,lyse:po,iant:ho,nary:ho},{elist:go,holic:go,phite:go,tized:fo,urned:fo,eased:fo,ances:bo,bound:ho,ettes:bo,fully:vo,ishes:mo,ities:bo,marek:wo,nssen:wo,ology:"Noun",osome:go,tment:go,ports:bo,rough:ho,tches:mo,tieth:"Ordinal",tures:bo,wards:vo,where:vo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:go,scent:go,onist:go,anist:go,alist:go,olist:go,icist:go,ounce:po,iable:ho,borne:ho,gnant:ho,inant:ho,igent:ho,atory:ho,rient:go,dient:go},{auskas:wo,parent:go,cedent:go,ionary:go,cklist:go,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:wo,borough:"Place",sdottir:wo}];const Ao="Adjective";var jo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ao,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ao,tele:"Noun","pro-":Ao,"mis-":"Verb","dis-":"Verb","pre-":Ao},{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:Ao,radio:"Noun",tetra:"Noun","omni-":Ao,"post-":Ao},{pseudo:Ao,"extra-":Ao,"hyper-":Ao,"inter-":Ao,"intra-":Ao,"deca-":Ao},{electro:"Noun"}];const No="Adjective",Eo="Infinitive",xo="PresentTense",Io="Singular",Go="PastTense",To="Expression",Co="LastName";var Do={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Co],[/.[^aeiou]ica$/,Io,"harmonica"],[/^([hyj]a+)+$/,To,"haha"]],c:[[/.[^aeiou]ic$/,No]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Go,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Go,"rammed"],[/.[aeiou][sg]hed$/,Go,"gushed"],[/.[aeiou]red$/,Go,"hired"],[/.[aeiou]r?ried$/,Go,"hurried"],[/[^aeiou]ard$/,Io,"steward"],[/[aeiou][^aeiou]id$/,No,""],[/.[vrl]id$/,No,"livid"],[/..led$/,Go,"hurled"],[/.[iao]sed$/,Go,""],[/[aeiou]n?[cs]ed$/,Go,""],[/[aeiou][rl]?[mnf]ed$/,Go,""],[/[aeiou][ns]?c?ked$/,Go,"bunked"],[/[aeiou]gned$/,Go],[/[aeiou][nl]?ged$/,Go],[/.[tdbwxyz]ed$/,Go],[/[^aeiou][aeiou][tvx]ed$/,Go],[/.[cdflmnprstv]ied$/,Go,"emptied"]],e:[[/.[lnr]ize$/,Eo,"antagonize"],[/.[^aeiou]ise$/,Eo,"antagonise"],[/.[aeiou]te$/,Eo,"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$/,Co,"..ovich"],[/^ug?h+$/,To,"ughh"],[/^uh[ -]?oh$/,To,"uhoh"],[/[a-z]-ish$/,No,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Co,"polish-male"]],k:[[/^(k){2}$/,To,"kkkk"]],l:[[/.[gl]ial$/,No,"familial"],[/.[^aeiou]ful$/,No,"fitful"],[/.[nrtumcd]al$/,No,"natal"],[/.[^aeiou][ei]al$/,No,"familial"]],m:[[/.[^aeiou]ium$/,Io,"magnesium"],[/[^aeiou]ism$/,Io,"schism"],[/^[hu]m+$/,To,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,No,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,To,"noooo"],[/^(yo)+$/,To,"yoo"],[/^wo{2,}[pt]?$/,To,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Io],[/[^i]fer$/,Eo],[/.[^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$/,xo],[/.[rln]ates$/,xo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Io],[/.[aeiou]sks$/,xo],[/.[aeiou]kes$/,xo],[/[aeiou][^aeiou]is$/,Io],[/[a-z]'s$/,"Noun"],[/^yes+$/,To]],v:[[/.[^aeiou][ai][kln]ov$/,Co]],y:[[/.[cts]hy$/,No],[/.[st]ty$/,No],[/.[tnl]ary$/,No],[/.[oe]ry$/,Io],[/[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$/,Io]]};const Oo="Verb",Bo="Noun";var Vo={leftTags:[["Adjective",Bo],["Possessive",Bo],["Determiner",Bo],["Adverb",Oo],["Pronoun",Oo],["Value",Bo],["Ordinal",Bo],["Modal",Oo],["Superlative",Bo],["Demonym",Bo],["Honorific","Person"]],leftWords:[["i",Oo],["first",Bo],["it",Oo],["there",Oo],["not",Oo],["because",Bo],["if",Bo],["but",Bo],["who",Oo],["this",Bo],["his",Bo],["when",Bo],["you",Oo],["very","Adjective"],["old",Bo],["never",Oo],["before",Bo],["a","Singular"],["the",Bo],["been",Oo]],rightTags:[["Copula",Bo],["PastTense",Bo],["Conjunction",Bo],["Modal",Bo]],rightWords:[["there",Oo],["me",Oo],["man","Adjective"],["only",Oo],["him",Oo],["it",Oo],["were",Bo],["took",Bo],["himself",Oo],["went",Bo],["who",Bo],["jr","Person"]]},zo={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"},Fo={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"},So={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"},Ho={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 Mo=/^.([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(Mo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Mo,"")}(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},Wo=/^([0-9]+)/,qo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Wo);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Wo,"")]}(n[0],n[1])})};var Ko=function(e={}){return(e=Object.assign({},e)).rules=qo(e.rules),e.rules=Lo(e.rules),e.rev&&(e.rev=qo(e.rev),e.rev=Lo(e.rev)),e.exceptions=qo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Uo=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 Ro=Ko({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"}),Qo=Ko(So),Zo=Ko($o),_o=Ko(Fo),Yo=Uo(Ro),Xo=Uo(Qo),ei=Uo(Zo),ti=Uo(_o),ni=Ko(zo),ri=Ko(Ho);var ai={fromPast:Ro,fromPresent:Qo,fromGerund:Zo,fromParticiple:_o,toPast:Yo,toPresent:Xo,toGerund:ei,toParticiple:ti,toComparative:ni,toSuperlative:ri,fromComparative:Uo(ni),fromSuperlative:Uo(ri)},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),{}),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,""]];var si=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(li[t].forEach(n=>e[n]=t),e),{});var ui=li;var ci=function(e){let t=e.substring(e.length-3);if(!0===ui.hasOwnProperty(t))return ui[t];let n=e.substring(e.length-2);return!0===ui.hasOwnProperty(n)?ui[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const hi={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=ci(e)),hi.hasOwnProperty(e))c=hi[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 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: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 mi=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 gi="ically",fi=new Set(["analyt"+gi,"chem"+gi,"class"+gi,"clin"+gi,"crit"+gi,"ecolog"+gi,"electr"+gi,"empir"+gi,"frant"+gi,"grammat"+gi,"ident"+gi,"ideolog"+gi,"log"+gi,"mag"+gi,"mathemat"+gi,"mechan"+gi,"med"+gi,"method"+gi,"method"+gi,"mus"+gi,"phys"+gi,"phys"+gi,"polit"+gi,"pract"+gi,"rad"+gi,"satir"+gi,"statist"+gi,"techn"+gi,"technolog"+gi,"theoret"+gi,"typ"+gi,"vert"+gi,"whims"+gi]),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"}],bi=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"]),yi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var wi=function(e){return e.endsWith("ly")?fi.has(e)?e.replace(/ically/,"ical"):bi.has(e)?null:yi.hasOwnProperty(e)?yi[e]:mi(e,vi)||e:null};const ki=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Pi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ai=function(e){if(Pi.hasOwnProperty(e))return Pi[e];let t=mi(e,ki);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"},Ei=new Set(["terrible","annoying"]);const xi=function(e,t){const n=t.two.models.toSuperlative;return Jo(e,n)},Ii=function(e,t){const n=t.two.models.toComparative;return Jo(e,n)};var Gi={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 Ti={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===Gi.hasOwnProperty(i)&&Gi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:ja,nounToSingular:si,verbToInfinitive:di,getTense:ci,verbConjugate:pi,adjToSuperlative:xi,adjToComparative:Ii,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:wi,adjToAdverb:Ai,adjToNoun:function(e){if(Ni.hasOwnProperty(e))return Ni[e];if(Ei.has(e))return null;let t=mi(e,ji);return t||e+"ness"}}}};var Ci=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 Di=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Oi=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=Di(n,"Infinitive","PastTense"),Object.assign(s,l),l=Di(r,"Infinitive","Verb"),Object.assign(s,l),l=Di(a,"Infinitive","Gerund"),Object.assign(s,l),l=Di(o,"Adjective","Superlative"),Object.assign(s,l),l=Di(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Bi={two:{models:ai}};const Vi={"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"},zi=function(e,t){const n={model:t,methods:Ti};let{lex:r,_multi:a}=Ti.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=pi(e,Bi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Fi=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Vi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||$i(a,r,!1),"Adj|Present"===o&&($i(a,r,!0),function(e,t,n){let r=xi(e,n);t[r]=t[r]||"Superlative";let a=Ii(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=di(a,Bi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=di(a,Bi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=zi(n,t)};let Si={one:{_multiCache:{},lexicon:Ea},two:{irregularPlurals:pa,models:ai,suffixPatterns:Po,prefixPatterns:jo,endsWith:Do,neighbours:Vo,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:co,uncountable:{},orgWords:oi}};Si=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=zi(e.one.lexicon,e)).one.lexicon,e),e=Fi(e.two.switches,e),e=Oi(e),e=Ci(e)}(Si);var Hi=Si;const Mi=/^(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(Mi.test(a.normal)){let e=a.normal.replace(Mi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Li=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 Wi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},qi=new Set(["formulas","koalas","israelis","menus"]),Ki=["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 Ui=function(e){if(!e||e.length<=3)return!1;if(qi.has(e))return!0;let t=e[e.length-1];return Wi.hasOwnProperty(t)?Wi[t].find(t=>e.endsWith(t)):"s"===t&&!Ki.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Qi=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Ui(e.normal)?Li(e,"Plural","3-plural-guess"):Li(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&&Li(e,t,"3-verb-tense-guess")}}(r)};const Zi=/^\p{Lu}[\p{Ll}'’]/u,_i=/[0-9]/,Yi=["Date","Month","WeekDay","Unit"],Xi=/^[IVXLCDM]{2,}$/,es=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ts={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ns=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===Zi.test(o)&&!1===_i.test(o)?Yi.find(e=>r.tags.has(e))?null:(Qi(e,t,n),r.tags.has("Noun")||r.tags.clear(),Li(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Xi.test(o)&&es.test(o)&&!ts[r.normal]?(Li(r,"RomanNumeral","2-xvii"),!0):null};const rs=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=rs(r.normal,n.two.suffixPatterns);if(null!==e)return Li(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=rs(r.implicit,n.two.suffixPatterns),null!==e))return Li(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const os=/['‘’‛‵′`´]/,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 Li(r,e,"2-prefix"),r.confidence=.5,!0}return null};const us=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!!us.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},hs=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 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(cs(a)||cs(o))return Li(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(hs(a)||hs(o))return Li(n,"Year","2-tagYear-close");if(ds(e[t-2])||ds(e[t+2]))return Li(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 Li(n,"Year","2-tagYear-noun")}}}return null};const ms=/^[A-Z]('s|,)?$/,gs=/^[A-Z-]+$/,fs=/([A-Z]\.)+[A-Z]?,?$/,vs=/[A-Z]{2,}('s|,)?$/,bs=/([a-z]\.)+[a-z]\.?$/,ys={I:!0,A:!0};var ws=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===gs.test(n)||n.length>5||ys.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==fs.test(n)&&!0!==bs.test(n)&&!0!==ms.test(n)&&!0!==vs.test(n))}(r,n)?(r.tags.clear(),Li(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!ys.hasOwnProperty(r.text)&&ms.test(r.text)?(r.tags.clear(),Li(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Li(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&gs.test(r.text)&&r.text.length<=6?(Li(r,"Acronym","3-titlecase-acronym"),!0):null};const ks=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ps=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var As=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||ks(e[t-1],a),l=l||ks(e[t+1],o),l=l||Ps(e[t-1],r),l=l||Ps(e[t+1],i),l)return Li(s,l,"3-[neighbour]"),Qi(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 r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&js(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&js(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Es=function(e,t,n){0===e[t].tags.size&&(Li(e[t],"Noun","3-[fallback]"),Qi(e,t,n),e[t].confidence=.1)};const xs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Is=(e,t,n)=>0!==t||e[1]?null:n;var Gs={"Adj|Gerund":(e,t)=>xs(e,t),"Adj|Noun":(e,t)=>xs(e,t),"Adj|Past":(e,t)=>xs(e,t),"Adj|Present":(e,t)=>xs(e,t),"Noun|Gerund":(e,t)=>xs(e,t),"Noun|Verb":(e,t)=>xs(e,t)||Is(e,t,"Infinitive"),"Plural|Verb":(e,t)=>xs(e,t)||Is(e,t,"PresentTense"),"Person|Noun":(e,t)=>xs(e,t),"Person|Verb":(e,t)=>0!==t&&xs(e,t)};const Ts="undefined"!=typeof process&&process.env?process.env:self.env||{},Cs=/^(under|over|mis|re|un|dis|semi)-?/,Ds=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ts.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Os=(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&&Ts.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Bs={tagSwitch:Ji,checkSuffix:as,checkRegex:ss,checkCase:ns,checkPrefix:ls,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")&&(Li(o,"Verb","3-[prefix]"),Li(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Li(o,"Adjective","3-[prefix]"),Li(o,"Prefix","3-[prefix]")))},checkYear:ps},Vs={checkAcronym:ws,neighbours:As,orgWords:Ns,nounFallback:Es,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(Cs.test(l)&&!o[l]&&(l=l.replace(Cs,"")),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=Ds(e[t+1],n.afterWords);return o=o||Ds(e[t-1],n.beforeWords),o=o||Os(e[t-1],n.beforeTags,a),o=o||Os(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Gs[o]&&(u=Gs[o](e,t)||u),u?(Ts.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):Ts.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},zs=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 Ss={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 Hs={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 _s=/'/;var Ys=function(e,t){let n=e[t].normal.split(_s)[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 Xs=/'/;var el=function(e,t){let n=e[t].normal.split(Xs)[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 tl=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 nl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},rl={in:!0,by:!0,for:!0};var al=(e,t)=>{let n=e[t];if(nl.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===rl[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 ol=/'/,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)},sl={d:(e,t)=>el(e,t),t:(e,t)=>tl(e,t),s:(e,t,n)=>al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Ys(e,t)},ll=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ul={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===ol.test(r[o].normal)&&([,i]=r[o].normal.split(ol));let s=null;sl.hasOwnProperty(i)&&(s=sl[i](r,o,t)),s&&(s=ll(s,e),Zs(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=Qs.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=Rs},hooks:["contractionTwo"]};const cl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const hl=["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:"[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:"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)",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: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:"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:"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:hl,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:hl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:hl,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 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;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}},model:{two:{matches:dl}},hooks:["postTagger"]};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 fl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?gl(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 vl={api:function(e){e.prototype.swap=fl}};m.plugin(qs),m.plugin(ul),m.plugin(ml),m.plugin(vl);var bl=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 yl=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 wl={this:"Noun",then:"Pivot"};var kl=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 Gl={compute:{chunks:function(e){const{document:t,world:n}=e;kl(t),Pl(t),Nl(e,t,n),xl(t),Il(t)}},api:function(e){e.prototype.chunks=yl,e.prototype.clauses=bl},hooks:["chunks"]};const Tl=/'s$/;var Cl=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(Tl,""),e.normal=e.normal.replace(Tl,"")})}),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 Dl=/\(/,Ol=/\)/,Bl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Dl,"");let t=e[e.length-1];t.post=t.post.replace(Ol,"")}),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 zl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},$l=RegExp("("+Object.keys(zl).join("|")+")"),Fl=RegExp("("+Object.values(zl).join("|")+")"),Sl=function(e,t){const n=e[t].pre.match($l)[0]||"";if(!n||!zl[n])return null;const r=zl[n];for(;t{e[0].pre=e[0].pre.replace($l,"");let t=e[e.length-1];t.post=t.post.replace(Fl,"")})}(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 Ml=/\./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(Ml,""),e.normal=e.normal.replace(Ml,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Ml,""),e.normal=e.normal.replace(Ml,""),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 Ll=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 Wl=(e,t)=>"number"==typeof t?e.eq(t):e,ql=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 Kl=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=ql(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 Wl(this,e).map(e=>{let n=ql(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=ql(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=ql(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=ql(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Wl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Wl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Wl(t,e),new Adjectives(t.document,t.pointer)}};const Ul=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},Rl=[["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 Ql=[["emojis","emoji"],["atmentions","atMentions"]];var Zl=function(e){Rl.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=Ul,Ql.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},_l={api:function(e){Zl(e),Cl(e),Vl(e),Hl(e),Kl(e),Ll(e),Jl(e)}};const Yl=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var Xl={case:e=>{Yl(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Yl(e,e=>e.text=n(e.text,t))},whitespace:e=>{Yl(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=>{Yl(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 eu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),tu="unicode|punctuation|whitespace|acronyms",nu="|case|contractions|parentheses|quotations|emoji|honorifics",ru={light:eu(tu),medium:eu(tu+nu),heavy:eu(tu+nu+"|possessives|adverbs|nouns|verbs")};var au={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=ru[e]),Object.keys(e).forEach(t=>{Xl.hasOwnProperty(t)&&Xl[t](this,e[t])}),this}}};var ou=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 iu=["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 su=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 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:lu(e,t),isSubordinate:su(e),root:t}};const cu=e=>e.text(),hu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),du=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var pu=function(e){let t=uu(e);return{root:cu(t.root),number:du(t.number),determiner:cu(t.determiner),adjectives:hu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const mu={tags:!0};var gu=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 fu={tags:!0};var vu=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,fu).tag("Singular","toPlural"),e};const bu=(e,t)=>"number"==typeof t?e.eq(t):e;var yu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return bu(this,e).map(uu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=pu(t)),n},[])}isPlural(e){let t=this.filter(e=>uu(e).isPlural);return bu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=uu(e).adjectives;n.found&&(t=t.concat(n))}),bu(t,e)}toPlural(e){return bu(this,e).map(e=>gu(e,uu(e)))}toSingular(e){return bu(this,e).map(e=>{let t=uu(e);return vu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=ou(this);return t=bu(t,e),new Nouns(this.document,t.pointer)}}};var wu=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 ku=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(Pu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Pu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Pu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var ju=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 Eu=/^([0-9,. ]+)\/([0-9,. ]+)$/,xu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Iu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Gu=function(e){if(!0===xu.hasOwnProperty(e))return xu[e];if("a"===e||"an"===e)return 1;const t=ku(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=Cu(n),r=Cu(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:Cu(n);let a=r.text("reduced");return Tu.test(a)&&(a=a.replace(Tu,""),r=r.replaceWith(a)),r=Du.hasOwnProperty(a)?Du[a]:Cu(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:Cu(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 Bu=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 Vu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],zu=["","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"]],Fu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Vu[n][1]&&(e-=Vu[n][1],t.push(Vu[n][0]));return zu[e]&&t.push(zu[e]),t};var Su=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Bu(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(Fu(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=Bu(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 Hu=function(e){if(!e.numerator||!e.denominator)return"";return`${Su({num:e.numerator})} out of ${Su({num:e.denominator})}`};const Mu={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=Su(e).split(" "),n=t[t.length-1];return Mu.hasOwnProperty(n)?t[t.length-1]=Mu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Lu=function(e){if(!e.numerator||!e.denominator)return"";let t=Su({num:e.numerator}),n=Ju({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Wu=(e,t)=>"number"==typeof t?e.eq(t):e;var qu=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Wu(this,e).map(Ou)}get(e){return Wu(this,e).map(Ou)}json(e){return Wu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ou(t);return n.fraction=r,n},[])}toDecimal(e){return Wu(this,e).forEach(e=>{let{decimal:t}=Ou(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Wu(this,e).forEach(e=>{let t=Ou(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 Wu(this,e).forEach(e=>{let t=Ou(e),n=Lu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Wu(this,e).forEach(e=>{let t=Ou(e),n=Hu(t);e.replaceWith(n)}),this}toPercentage(e){return Wu(this,e).forEach(e=>{let{decimal:t}=Ou(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=wu(this);return t=Wu(t,e),new Fractions(this.document,t.pointer)}};const Ku="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Uu=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("("+Ku+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ku+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ku+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ku+")"));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) (${Ku})`),r=e.has("("+Ku+") #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("("+Ku+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ku+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Ru=function(e){if("string"==typeof e)return{num:Gu(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=Ou(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Gu(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 Qu=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=Bu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Zu={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},_u={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var Yu=function(e){let t={suffix:"",prefix:e.prefix};return Zu.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Zu[e.prefix],t.prefix=""),_u.hasOwnProperty(e.suffix)&&(t.suffix+=" "+_u[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Xu=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Yu(e);return t+Ju(e)+n}if("Ordinal"===t)return e.prefix+Qu(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Yu(e);return t+Su(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const ec=(e,t)=>"number"==typeof t?e.eq(t):e;var tc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return ec(this,e).map(Ru)}get(e){return ec(this,e).map(Ru).map(e=>e.num)}json(e){return ec(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ru(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=Ru(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Xu(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=Ru(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Xu(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=Ru(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Xu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Xu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Xu(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=>Ru(t).num===e)}greaterThan(e){return this.filter(t=>Ru(t).num>e)}lessThan(e){return this.filter(t=>Ru(t).num{let r=Ru(n).num;return r>e&&r{let n=Ru(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=Xu(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=Ru(e).num);let t=this.map(t=>{let n=Ru(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=Xu(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=Uu(this);return t=ec(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Uu(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=ec(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Uu(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=ec(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var nc={api:function(e){qu(e),tc(e)}};const rc={people:!0,emails:!0,phoneNumbers:!0,places:!0},ac=function(e={}){return!1!==(e=Object.assign({},rc,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 oc={api:function(e){e.prototype.redact=ac}};var ic=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 sc=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 lc=function(e){let t=e.clauses(),n=sc(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 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};var cc=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 hc=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 dc=function(e){return e.verbs().toInfinitive(),e};const pc=(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}=lc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return pc(this,e).map(e=>(lc(e),uc(e)))}toPresentTense(e){return pc(this,e).map(e=>(lc(e),cc(e)))}toFutureTense(e){return pc(this,e).map(e=>(lc(e),e=hc(e)))}toInfinitive(e){return pc(this,e).map(e=>(lc(e),dc(e)))}toNegative(e){return pc(this,e).map(e=>(lc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return pc(this,e).map(e=>(lc(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 pc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return pc(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=pc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=ic(this);return pc(t,e)}};Object.assign(e.prototype,t)}};var gc=function(e){return e.match("#Honorific+? #Person+")};var fc=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 vc="male",bc="female",yc={mr:vc,mrs:bc,miss:bc,madam:bc,king:vc,queen:bc,duke:vc,duchess:bc,baron:vc,baroness:bc,count:vc,countess:bc,prince:vc,princess:bc,sire:vc,dame:bc,lady:bc,ayatullah:vc,congressman:vc,congresswoman:bc,"first lady":bc,mx:null};var wc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return bc;if(n.has("#MaleName"))return vc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),yc.hasOwnProperty(e))return yc[e];if(/^her /.test(e))return bc;if(/^his /.test(e))return vc}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 vc;if(n&&!t)return bc}return null};const kc=(e,t)=>"number"==typeof t?e.eq(t):e;var Pc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return kc(this,e).map(fc)}json(e){return kc(this,e).map(t=>{let n=t.toView().json(e)[0],r=fc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:wc(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=gc(this);return t=kc(t,e),new People(this.document,t.pointer)}};var Ac=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 jc=function(e){e.prototype.places=function(t){let n=Ac(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var Nc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Ec=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 xc=function(e){e.prototype.topics=Ec};var Ic={api:function(e){Pc(e),jc(e),Nc(e),xc(e)}};var Gc=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 Tc=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 Cc=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 Dc=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},Oc=function(e){return e.match("#Negative")},Bc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Vc=function(e){let t=e.clone();t.contractions().expand();const n=Tc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Cc(t,n),auxiliary:Dc(t,n),negative:Oc(t),phrasal:Bc(n)}};const zc={tense:"PresentTense"},$c={conditional:!0},Fc={tense:"FutureTense"},Sc={progressive:!0},Hc={tense:"PastTense"},Mc={complete:!0,progressive:!1},Jc={passive:!0},Lc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Wc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[zc]],["^wanted to #Infinitive$",[Hc]],["^will want to #Infinitive$",[Fc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Hc]],["^#PresentTense #Gerund$",[zc]],["^#Infinitive #Gerund$",[zc]],["^will #Infinitive #Gerund$",[Fc]],["^have #PastTense #Gerund$",[Hc]],["^will have #PastTense #Gerund$",[Hc]]],"simple-present":[["^#PresentTense$",[zc]],["^#Infinitive$",[zc]]],"simple-past":[["^#PastTense$",[Hc]]],"simple-future":[["^will #Adverb? #Infinitive",[Fc]]],"present-progressive":[["^(is|are|am) #Gerund$",[zc,Sc]]],"past-progressive":[["^(was|were) #Gerund$",[Hc,Sc]]],"future-progressive":[["^will be #Gerund$",[Fc,Sc]]],"present-perfect":[["^(has|have) #PastTense$",[Hc,Mc]]],"past-perfect":[["^had #PastTense$",[Hc,Mc]],["^had #PastTense to #Infinitive",[Hc,Mc]]],"future-perfect":[["^will have #PastTense$",[Fc,Mc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Hc,Sc]]],"past-perfect-progressive":[["^had been #Gerund$",[Hc,Sc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Fc,Sc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Hc,Jc]],["^(was|were) being (#PastTense|#Participle)",[Hc,Jc]],["^(had|have) been (#PastTense|#Participle)",[Hc,Jc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[zc,Jc]],["^(is|are|am) being (#PastTense|#Participle)",[zc,Jc]],["^has been (#PastTense|#Participle)",[zc,Jc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Fc,Jc,$c]],["will be being? (#PastTense|#Participle)",[Fc,Jc,$c]]],"present-conditional":[["would be #PastTense",[zc,$c]]],"past-conditional":[["would have been #PastTense",[Hc,$c]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Fc]]],"auxiliary-past":[["^did #Infinitive$",[Hc,{plural:!1}]],["^used to #Infinitive$",[Hc,Mc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[zc,Mc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Hc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let qc=[];Object.keys(Wc).map(e=>{Wc[e].forEach(t=>{qc.push({name:e,match:t[0],data:Lc(t[1])})})});var Kc=qc;var Uc=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(),Rc(r)&&(n.remove(r),r=n.last()),Rc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Qc(t,e)}};const _c=e=>e,Yc=(e,t)=>{let n=Zc(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Xc=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Zc(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},eh=function(e,t){let n=Zc(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},th=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},nh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,th(e)),r&&e.replace(t.root,r),e},rh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),ah=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},oh=function(e){return e&&e.isView?e.text("normal"):""},ih=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,th(e))};var sh=function(e){let t=Vc(e);e=e.clone().toView();const n=Uc(e,t);return{root:t.root.text(),preAdverbs:ah(t.adverbs.pre),postAdverbs:ah(t.adverbs.post),auxiliary:oh(t.auxiliary),negative:t.negative.found,prefix:oh(t.prefix),infinitive:ih(t.root),grammar:n}};const lh={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,th(r)),i&&e.replace(r,i,lh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=eh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const ch={tags:!0},hh={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,th(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Zc(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,ch),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=hh.simple(e,t),e=hh.noAux(e,t))},hasHad:e=>(e.replace("has","had",ch),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,th(a)),n(o,e.model).Participle}},dh={infinitive:hh.simple,"simple-present":hh.simple,"simple-past":_c,"simple-future":hh.both,"present-progressive":e=>(e.replace("are","were",ch),e.replace("(is|are|am)","was",ch),e),"past-progressive":_c,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":hh.hasHad,"past-perfect":_c,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=rh(e)),e.remove("have"),e),"present-perfect-progressive":hh.hasHad,"past-perfect-progressive":_c,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",ch),e),"passive-past":e=>(e.replace("have","had",ch),e),"passive-present":e=>(e.replace("(is|are)","was",ch),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",ch),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":_c,"auxiliary-future":e=>(e.replace("(is|are|am)","was",ch),e),"auxiliary-past":_c,"auxiliary-present":e=>(e.replace("(do|does)","did",ch),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",ch):(hh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":_c,"want-infinitive":e=>(e.replace("(want|wants)","wanted",ch),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),hh.simple(e,t),rh(e),e)};var ph=function(e,t,n){return dh.hasOwnProperty(n)?((e=dh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const mh={tags:!0},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,th(a)),!1===Yc(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Xc(e)),o&&(e=e.replace(a,o,mh)).not("#Particle").tag("PresentTense"),e},fh=(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,th(a)),!1===Yc(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,mh)).not("#Particle").tag("Gerund"),e},vh={infinitive:gh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return gh(e,t);{let t=Zc(e).subject;if(Yc(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":gh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Xc(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else gh(e,t),e=e.remove("will");return e},"present-progressive":_c,"past-progressive":(e,t)=>{let n=Xc(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)=>(gh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Zc(e).subject;return Yc(e)||n.has("i")?((e=nh(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":_c,"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=Xc(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":_c,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":_c,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(fh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=eh(e);return e.replace(t.auxiliary,n),e}return fh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":_c,"modal-infinitive":_c,"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,th(r)),a&&(e=e.replace(t.root,a,mh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),gh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Yc(e)&&(n="want"),e.replace("(want|wanted|wants)",n,mh),e.remove("will"),e}};var bh=function(e,t,n){return vh.hasOwnProperty(n)?((e=vh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const yh={tags:!0},wh=(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,th(r)),o&&(e=e.replace(r,o,yh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},kh=(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,th(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,yh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Ph={infinitive:wh,"simple-present":wh,"simple-past":wh,"simple-future":_c,"present-progressive":kh,"past-progressive":kh,"future-progressive":_c,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":_c,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":_c,"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":_c,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":_c,"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":_c,"modal-past":_c,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),wh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Ah=function(e,t,n){return e.has("will")||e.has("going to")?e:Ph.hasOwnProperty(n)?((e=Ph[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const jh={tags:!0};var Nh=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,th(a));let s=r(i,e.model).Gerund;return s&&(s=`${Xc(e)} ${s}`,e.replace(a,s,jh)),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 Eh={tags:!0},xh=function(e,t){let n=eh(e);return e.prepend(n+" not"),e},Ih=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)},Gh=e=>e.has("(is|was|am|are|will|were|be)"),Th={"simple-present":(e,t)=>!0===Gh(e)?Ih(e):(e=nh(e,t),e=xh(e)),"simple-past":(e,t)=>!0===Gh(e)?Ih(e):((e=nh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Gh(e)?Ih(e):xh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Eh),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=xh(e)).replace("wants","want",Eh)};var Ch=function(e,t,n){if(e.has("#Negative"))return e;if(Th.hasOwnProperty(n))return e=Th[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Gh(e)?Ih(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Dh=(e,t)=>"number"==typeof t?e.eq(t):e;var Oh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Dh(this,e).map(Vc)}json(e,t){return Dh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=sh(t),n},[])}subjects(e){return Dh(this,e).map(e=>(Vc(e),Zc(e).subject))}adverbs(e){return Dh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Dh(this,e).filter(e=>!0!==Zc(e).plural)}isPlural(e){return Dh(this,e).filter(e=>!0===Zc(e).plural)}isImperative(e){return Dh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return uh(e,t,n.form)})}toPresentTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return bh(e,t,n.form)})}toPastTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return ph(e,t,n.form)})}toFutureTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return Ah(e,t,n.form)})}toGerund(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return Nh(e,t,n.form)})}conjugate(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:uh(e.clone(),t,n.form).text("normal"),PastTense:ph(e.clone(),t,n.form).text("normal"),PresentTense:bh(e.clone(),t,n.form).text("normal"),FutureTense:Ah(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 Dh(this,e).map(e=>{let t=Vc(e),n=Uc(e,t);return Ch(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=Gc(this);return t=Dh(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Gl),m.plugin(_l),m.plugin(au),m.plugin(yu),m.plugin(nc),m.plugin(oc),m.plugin(mc),m.plugin(Ic),m.plugin(Oh);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]);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.0";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(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},C.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 D=C;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;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 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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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 Ge={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 Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\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(We),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 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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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 Tt=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 Ct=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 Dt=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 Bt=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]&&Ct(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(!Dt(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 Vt=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(!Tt(a))return null}if(!0!==e.optional)return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Gt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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(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||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&_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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var bn=function(e,t){let n=vn(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 yn={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:vn,splitAll:bn}}};var wn=function(e,t){let n=e.concat(t),r=vn(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=>fn(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 Pn=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},jn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Nn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=jn(e,this.document),this.update(e)};var En={methods:yn,api:function(e){Object.assign(e.prototype,Nn)}};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 In=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),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(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)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Gn=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 Tn=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.find(e=>r.has(e)))})};var Cn=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 Dn=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=In(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);t.hooks||console.log(t);let o=Gn(a,t.hooks);return o=Tn(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),Cn(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===Dn(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 Bn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},zn=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(),Bn.test(t))!function(e,t,n,r){let a=t.split(Bn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),zn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,r))};var Fn=$n;var Sn=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=>Hn({id:e})),t}return[Hn({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},Wn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Kn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Jn(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Ln(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ln(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},Un=function(e){let t=Ln(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},Qn={text:Rn,txt:Rn,array:Un,flat:Un},Zn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},_n=e=>{Ln(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Wn(e))return e.forEach(e=>this.add(qn(e),t)),this;e=qn(e);let n=Hn({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 Ln(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Ln(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 Ln(this.json)}fillDown(){var e;return e=this.json,Ln(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 Wn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){_n(this.json);let e=Ln(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 _n(this.json),Zn(this.json,e)}debug(){return _n(this.json),Zn(this.json,"debug"),this}}const Xn=function(e){let t=Kn(e);return new g$1(t)};Xn.prototype.plugin=function(e){e(this)};var er={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const tr=function(e){if(er.hasOwnProperty(e.id))return er[e.id];if(er.hasOwnProperty(e.is))return er[e.is];let t=e._cache.parents.find(e=>er[e]);return er[t]};var nr=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:tr(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 rr=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=rr(e[t].children),e[t].not=rr(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 or={one:{setTag:Fn,unTag:Sn,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 Xn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return nr(n)}}};const ir=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sr={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||""),ir(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 ir(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 lr=function(e){Object.assign(e.prototype,sr)};var ur={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 cr=new Set(["Auxiliary","Possessive"]);var hr={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(cr.has(e)||!t.hasOwnProperty(n))return 1;if(cr.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:or,api:lr,lib:ur};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,pr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var mr=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 Dr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Or=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Br=/['’]/,Vr=/^[a-z]\.([a-z]\.)+/i,zr=/^[-+.][0-9]/,$r=/^'[0-9]{2}/;var Fr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Dr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!zr.test(e)?"'"===n&&$r.test(e)?(n="",t):"":(n="",t)))).replace(Or,a=>(r=a,Br.test(a)&&/[sn]['’]$/.test(t)&&!1===Br.test(n)?(r=r.replace(Br,""),"'"):!0===Vr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Sr=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 Hr=/([A-Z]\.)+[A-Z]?,?$/,Mr=/^[A-Z]\.,?$/,Jr=/[A-Z]{2,}('s|,)?$/,Lr=/([a-z]\.)+[a-z]\.?$/;var Wr=function(e){return function(e){return!0===Hr.test(e)||!0===Lr.test(e)||!0===Mr.test(e)||!0===Jr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var qr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Sr(r),r=n(r,t),r=Wr(r),e.normal=r};var Kr={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:Pr,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(Tr);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=xr(n),n=Nr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Fr(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})}}}};var Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ur={},Qr={};[[["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=>{Ur[t]=!0,Qr[t]="Abbreviation",void 0!==e[1]&&(Qr[t]=[Qr[t],e[1]])})});var Zr=["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 _r={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(_r).forEach((function(e){_r[e].split("").forEach((function(t){Yr[t]=e}))}));const Xr=/\//,ea=/[a-z]\.[a-z]/i,ta=/[0-9]/;var na=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])),Xr.test(n)&&!ea.test(n)&&!ta.test(n)){let t=n.split(Xr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ra=/^\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"),ra.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var oa=function(e){let t=0,n=0,r=e.document;for(let e=0;eia(e,na),machine:e=>ia(e,aa),normal:e=>ia(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 ca={safe:!0,min:3};var ha={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=la},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ca,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ua(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(gn),m.extend(St),m.extend(En),m.extend(hr),m.plugin(ve),m.extend(sa),m.plugin(f),m.extend(Ge),m.extend(ha),m.extend(Pe),m.extend(On);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"},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",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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ma="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ga=ma.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var fa=function(e){if(void 0!==ga[e])return ga[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 va=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=ya(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=wa(pa[e]);ja.test(e)?Object.keys(t).forEach(t=>{if(Ea[t]=e,"Noun|Verb"===e){let e=Aa(t,xa);Ea[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ia="Adjective";var Ga={beforeTags:{Determiner:Ia,Possessive:Ia},afterTags:{Adjective:Ia},beforeWords:{seem:Ia,seemed:Ia,seems:Ia,feel:Ia,feels:Ia,felt:Ia,appear:Ia,appears:Ia,appeared:Ia,also:Ia,over:Ia,under:Ia,too:Ia,it:Ia,but:Ia,still:Ia,really:Ia,quite:Ia,well:Ia,very:Ia,deeply:Ia,profoundly:Ia,extremely:Ia,so:Ia,badly:Ia,mostly:Ia,totally:Ia,awfully:Ia,rather:Ia,nothing:Ia,something:Ia,anything:Ia},afterWords:{too:Ia,also:Ia,or:Ia}};const Ta="Gerund";var Ca={beforeTags:{Adverb:Ta,Preposition:Ta,Conjunction:Ta},afterTags:{Adverb:Ta,Possessive:Ta,Person:Ta,Pronoun:Ta,Determiner:Ta,Copula:Ta,Preposition:Ta,Conjunction:Ta,Comparative:Ta},beforeWords:{been:Ta,keep:Ta,continue:Ta,stop:Ta,am:Ta,be:Ta,me:Ta,began:Ta,start:Ta,starts:Ta,started:Ta,stops:Ta,stopped:Ta,help:Ta,helps:Ta,avoid:Ta,avoids:Ta,love:Ta,loves:Ta,loved:Ta,hate:Ta,hates:Ta,hated:Ta},afterWords:{you:Ta,me:Ta,her:Ta,him:Ta,them:Ta,their:Ta,it:Ta,this:Ta,there:Ta,on:Ta,about:Ta,for:Ta}};var Da={beforeTags:Object.assign({},Ga.beforeTags,Ca.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ga.afterTags,Ca.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ga.beforeWords,Ca.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ga.afterWords,Ca.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Oa="Singular";var Ba={beforeTags:{Determiner:Oa,Possessive:Oa,Acronym:Oa,Noun:Oa,Adjective:Oa,PresentTense:Oa,Gerund:Oa,PastTense:Oa,Infinitive:Oa,Date:Oa},afterTags:{Value:Oa,Modal:Oa,Copula:Oa,PresentTense:Oa,PastTense:Oa,Demonym:Oa},beforeWords:{the:Oa,with:Oa,without:Oa,of:Oa,for:Oa,any:Oa,all:Oa,on:Oa,cut:Oa,cuts:Oa,save:Oa,saved:Oa,saves:Oa,make:Oa,makes:Oa,made:Oa,minus:Oa,plus:Oa,than:Oa,another:Oa,versus:Oa,neither:Oa,favorite:Oa,best:Oa,daily:Oa,weekly:Oa,linear:Oa,binary:Oa,mobile:Oa,lexical:Oa,technical:Oa,computer:Oa,scientific:Oa,formal:Oa},afterWords:{of:Oa,system:Oa,aid:Oa,method:Oa,utility:Oa,tool:Oa,reform:Oa,therapy:Oa,philosophy:Oa,room:Oa,authority:Oa,says:Oa,said:Oa,wants:Oa,wanted:Oa}};const Va={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var za={beforeTags:Object.assign({},Ga.beforeTags,Ba.beforeTags,Va.beforeTags),afterTags:Object.assign({},Ga.afterTags,Ba.afterTags),beforeWords:Object.assign({},Ga.beforeWords,Ba.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ga.afterWords,Ba.afterWords)};const $a={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Fa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Sa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ha={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ma={beforeTags:Object.assign({},Ga.beforeTags,$a),afterTags:Object.assign({},Ga.afterTags,Fa),beforeWords:Object.assign({},Ga.beforeWords,Sa),afterWords:Object.assign({},Ga.afterWords,Ha)};const Ja="Infinitive";var La={beforeTags:{Modal:Ja,Adverb:Ja,Negative:Ja,Plural:Ja},afterTags:{Determiner:Ja,Adverb:Ja,Possessive:Ja,Preposition:Ja},beforeWords:{i:Ja,we:Ja,you:Ja,they:Ja,to:Ja,please:Ja,will:Ja,have:Ja,had:Ja,would:Ja,could:Ja,should:Ja,do:Ja,did:Ja,does:Ja,can:Ja,must:Ja,us:Ja,me:Ja,he:Ja,she:Ja,it:Ja,being:Ja},afterWords:{the:Ja,me:Ja,you:Ja,him:Ja,her:Ja,them:Ja,it:Ja,a:Ja,an:Ja,up:Ja,down:Ja,by:Ja,out:Ja,off:Ja,when:Ja,all:Ja,to:Ja,because:Ja,although:Ja,before:Ja,how:Ja,otherwise:Ja,though:Ja,yet:Ja}};const Wa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var qa={beforeTags:Object.assign({},Ga.beforeTags,La.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ga.afterTags,La.afterTags,Wa.afterTags),beforeWords:Object.assign({},Ga.beforeWords,La.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ga.afterWords,La.afterWords,{to:void 0})};const Ka={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Ra={},Ua={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Qa={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Za={beforeTags:Object.assign({},Ca.beforeTags,Ba.beforeTags,Ka),afterTags:Object.assign({},Ca.afterTags,Ba.afterTags,Ra),beforeWords:Object.assign({},Ca.beforeWords,Ba.beforeWords,Ua),afterWords:Object.assign({},Ca.afterWords,Ba.afterWords,Qa)};var _a={beforeTags:Object.assign({},La.beforeTags,Ba.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},La.afterTags,Ba.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},La.beforeWords,Ba.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},La.afterWords,Ba.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Ya="Person";var Xa={beforeTags:{Honorific:Ya,Person:Ya,Preposition:Ya},afterTags:{Person:Ya,ProperNoun:Ya,Verb:Ya},ownTags:{ProperNoun:Ya},beforeWords:{hi:Ya,hey:Ya,yo:Ya,dear:Ya,hello:Ya},afterWords:{said:Ya,says:Ya,told:Ya,tells:Ya,feels:Ya,felt:Ya,seems:Ya,thinks:Ya,thought:Ya,spends:Ya,spendt:Ya,plays:Ya,played:Ya,sing:Ya,sang:Ya,learn:Ya,learned:Ya,wants:Ya,wanted:Ya}};const eo="Month",to={beforeTags:{Date:eo,Value:eo},afterTags:{Date:eo,Value:eo},beforeWords:{by:eo,in:eo,on:eo,during:eo,after:eo,before:eo,between:eo,until:eo,til:eo,sometime:eo,of:eo,this:eo,next:eo,last:eo,previous:eo,following:eo},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Xa.beforeTags,to.beforeTags),afterTags:Object.assign({},Xa.afterTags,to.afterTags),beforeWords:Object.assign({},Xa.beforeWords,to.beforeWords),afterWords:Object.assign({},Xa.afterWords,to.afterWords)};const ro={Place:"Place"},ao={Place:"Place",Abbreviation:"Place"},oo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const so={"Adj|Gerund":Da,"Adj|Noun":za,"Adj|Past":Ma,"Adj|Present":qa,"Noun|Verb":_a,"Noun|Gerund":Za,"Person|Noun":{beforeTags:Object.assign({},Ba.beforeTags,Xa.beforeTags),afterTags:Object.assign({},Ba.afterTags,Xa.afterTags),beforeWords:Object.assign({},Ba.beforeWords,Xa.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ba.afterWords,Xa.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Xa.beforeTags,La.beforeTags),afterTags:Object.assign({},Xa.afterTags,La.afterTags),beforeWords:Object.assign({},Xa.beforeWords,La.beforeWords),afterWords:Object.assign({},Xa.afterWords,La.afterWords)},"Person|Place":{beforeTags:Object.assign({},ro,Xa.beforeTags),afterTags:Object.assign({},ao,Xa.afterTags),beforeWords:Object.assign({},oo,Xa.beforeWords),afterWords:Object.assign({},io,Xa.afterWords)}},lo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};so["Plural|Verb"]={beforeWords:lo(so["Noun|Verb"].beforeWords,{}),afterWords:lo(so["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:lo(so["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:lo(so["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var uo=so;const co="Adjective",ho="Infinitive",po="PresentTense",mo="Singular",go="PastTense",fo="Adverb",vo="Plural",bo="Verb",yo="LastName",wo="Participle";var ko=[null,null,{ea:mo,ia:"Noun",ic:co,ly:fo,"'n":bo,"'t":bo},{oed:go,ued:go,xed:go," so":fo,"'ll":"Modal","'re":"Copula",azy:co,eer:"Noun",end:bo,ped:go,ffy:co,ify:ho,ing:"Gerund",ize:ho,ibe:ho,lar:co,mum:co,nes:po,nny:co,ous:co,que:co,rol:mo,sis:mo,ogy:mo,oid:mo,ian:mo,zes:po,eld:go,ken:wo,ven:wo,ten:wo,ect:ho,ict:ho,ign:ho,ful:co,bal:co},{amed:go,aped:go,ched:go,lked:go,rked:go,reed:go,nded:go,mned:co,cted:go,dged:go,ield:mo,akis:yo,cede:ho,chuk:yo,czyk:yo,ects:po,ends:bo,enko:yo,ette:mo,wner:mo,fies:po,fore:fo,gate:ho,gone:co,ices:vo,ints:vo,ruct:ho,ines:vo,ions:vo,less:co,llen:co,made:co,nsen:yo,oses:po,ould:"Modal",some:co,sson:yo,tion:mo,tage:"Noun",ique:mo,tive:co,tors:"Noun",vice:mo,lier:mo,fier:mo,wned:go,gent:mo,tist:mo,pist:mo,rist:mo,mist:mo,yist:mo,vist:mo,lite:mo,site:mo,rite:mo,mite:mo,bite:mo,mate:mo,date:mo,ndal:mo,vent:mo,uist:mo,gist:mo,note:mo,cide:mo,wide:co,vide:ho,ract:ho,duce:ho,pose:ho,eive:ho,lyze:ho,lyse:ho,iant:co,nary:co},{elist:mo,holic:mo,phite:mo,tized:go,urned:go,eased:go,ances:vo,bound:co,ettes:vo,fully:fo,ishes:po,ities:vo,marek:yo,nssen:yo,ology:"Noun",osome:mo,tment:mo,ports:vo,rough:co,tches:po,tieth:"Ordinal",tures:vo,wards:fo,where:fo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:mo,scent:mo,onist:mo,anist:mo,alist:mo,olist:mo,icist:mo,ounce:ho,iable:co,borne:co,gnant:co,inant:co,igent:co,atory:co,rient:mo,dient:mo},{auskas:yo,parent:mo,cedent:mo,ionary:mo,cklist:mo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:yo,borough:"Place",sdottir:yo}];const Po="Adjective";var Ao=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Po,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Po,tele:"Noun","pro-":Po,"mis-":"Verb","dis-":"Verb","pre-":Po},{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:Po,radio:"Noun",tetra:"Noun","omni-":Po,"post-":Po},{pseudo:Po,"extra-":Po,"hyper-":Po,"inter-":Po,"intra-":Po,"deca-":Po},{electro:"Noun"}];const jo="Adjective",No="Infinitive",Eo="PresentTense",xo="Singular",Io="PastTense",Go="Expression",To="LastName";var Co={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,To],[/.[^aeiou]ica$/,xo,"harmonica"],[/^([hyj]a+)+$/,Go,"haha"]],c:[[/.[^aeiou]ic$/,jo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Io,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Io,"rammed"],[/.[aeiou][sg]hed$/,Io,"gushed"],[/.[aeiou]red$/,Io,"hired"],[/.[aeiou]r?ried$/,Io,"hurried"],[/[^aeiou]ard$/,xo,"steward"],[/[aeiou][^aeiou]id$/,jo,""],[/.[vrl]id$/,jo,"livid"],[/..led$/,Io,"hurled"],[/.[iao]sed$/,Io,""],[/[aeiou]n?[cs]ed$/,Io,""],[/[aeiou][rl]?[mnf]ed$/,Io,""],[/[aeiou][ns]?c?ked$/,Io,"bunked"],[/[aeiou]gned$/,Io],[/[aeiou][nl]?ged$/,Io],[/.[tdbwxyz]ed$/,Io],[/[^aeiou][aeiou][tvx]ed$/,Io],[/.[cdflmnprstv]ied$/,Io,"emptied"]],e:[[/.[lnr]ize$/,No,"antagonize"],[/.[^aeiou]ise$/,No,"antagonise"],[/.[aeiou]te$/,No,"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$/,To,"..ovich"],[/^ug?h+$/,Go,"ughh"],[/^uh[ -]?oh$/,Go,"uhoh"],[/[a-z]-ish$/,jo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,To,"polish-male"]],k:[[/^(k){2}$/,Go,"kkkk"]],l:[[/.[gl]ial$/,jo,"familial"],[/.[^aeiou]ful$/,jo,"fitful"],[/.[nrtumcd]al$/,jo,"natal"],[/.[^aeiou][ei]al$/,jo,"familial"]],m:[[/.[^aeiou]ium$/,xo,"magnesium"],[/[^aeiou]ism$/,xo,"schism"],[/^[hu]m+$/,Go,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,jo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Go,"noooo"],[/^(yo)+$/,Go,"yoo"],[/^wo{2,}[pt]?$/,Go,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,xo],[/[^i]fer$/,No],[/.[^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$/,Eo],[/.[rln]ates$/,Eo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,xo],[/.[aeiou]sks$/,Eo],[/.[aeiou]kes$/,Eo],[/[aeiou][^aeiou]is$/,xo],[/[a-z]'s$/,"Noun"],[/^yes+$/,Go]],v:[[/.[^aeiou][ai][kln]ov$/,To]],y:[[/.[cts]hy$/,jo],[/.[st]ty$/,jo],[/.[tnl]ary$/,jo],[/.[oe]ry$/,xo],[/[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$/,xo]]};const Do="Verb",Oo="Noun";var Bo={leftTags:[["Adjective",Oo],["Possessive",Oo],["Determiner",Oo],["Adverb",Do],["Pronoun",Do],["Value",Oo],["Ordinal",Oo],["Modal",Do],["Superlative",Oo],["Demonym",Oo],["Honorific","Person"]],leftWords:[["i",Do],["first",Oo],["it",Do],["there",Do],["not",Do],["because",Oo],["if",Oo],["but",Oo],["who",Do],["this",Oo],["his",Oo],["when",Oo],["you",Do],["very","Adjective"],["old",Oo],["never",Do],["before",Oo],["a","Singular"],["the",Oo],["been",Do]],rightTags:[["Copula",Oo],["PastTense",Oo],["Conjunction",Oo],["Modal",Oo]],rightWords:[["there",Do],["me",Do],["man","Adjective"],["only",Do],["him",Do],["it",Do],["were",Oo],["took",Oo],["himself",Do],["went",Oo],["who",Oo],["jr","Person"]]},Vo={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"},Fo={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"},So={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 Ho=/^.([0-9]+)/;var Mo=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(Ho);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Ho,"")}(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},Lo=/^([0-9]+)/,Wo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Lo);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Lo,"")]}(n[0],n[1])})};var qo=function(e={}){return(e=Object.assign({},e)).rules=Wo(e.rules),e.rules=Jo(e.rules),e.rev&&(e.rev=Wo(e.rev),e.rev=Jo(e.rev)),e.exceptions=Wo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Ko=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 Ro=qo({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"}),Uo=qo(Fo),Qo=qo(zo),Zo=qo($o),_o=Ko(Ro),Yo=Ko(Uo),Xo=Ko(Qo),ei=Ko(Zo),ti=qo(Vo),ni=qo(So);var ri={fromPast:Ro,fromPresent:Uo,fromGerund:Qo,fromParticiple:Zo,toPast:_o,toPresent:Yo,toGerund:Xo,toParticiple:ei,toComparative:ti,toSuperlative:ni,fromComparative:Ko(ti),fromSuperlative:Ko(ni)},ai=["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),{}),oi=[[/([^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 ii=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(si[t].forEach(n=>e[n]=t),e),{});var li=si;var ui=function(e){let t=e.substring(e.length-3);if(!0===li.hasOwnProperty(t))return li[t];let n=e.substring(e.length-2);return!0===li.hasOwnProperty(n)?li[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ci={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=ui(e)),ci.hasOwnProperty(e))c=ci[e];else if("Participle"===n)c=Mo(l,i);else if("PastTense"===n)c=Mo(l,r);else if("PresentTense"===n)c=Mo(l,a);else{if("Gerund"!==n)return e;c=Mo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var di=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:Mo(i,n),PresentTense:Mo(i,r),Gerund:Mo(i,a),FutureTense:"will "+e},u=Mo(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 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 mi="ically",gi=new Set(["analyt"+mi,"chem"+mi,"class"+mi,"clin"+mi,"crit"+mi,"ecolog"+mi,"electr"+mi,"empir"+mi,"frant"+mi,"grammat"+mi,"ident"+mi,"ideolog"+mi,"log"+mi,"mag"+mi,"mathemat"+mi,"mechan"+mi,"med"+mi,"method"+mi,"method"+mi,"mus"+mi,"phys"+mi,"phys"+mi,"polit"+mi,"pract"+mi,"rad"+mi,"satir"+mi,"statist"+mi,"techn"+mi,"technolog"+mi,"theoret"+mi,"typ"+mi,"vert"+mi,"whims"+mi]),fi=[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"}],vi=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"]),bi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var yi=function(e){return e.endsWith("ly")?gi.has(e)?e.replace(/ically/,"ical"):vi.has(e)?null:bi.hasOwnProperty(e)?bi[e]:pi(e,fi)||e:null};const wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ki={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Pi=function(e){if(ki.hasOwnProperty(e))return ki[e];let t=pi(e,wi);return t||e+"ly"};const Ai=[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"},Ni=new Set(["terrible","annoying"]);const Ei=function(e,t){const n=t.two.models.toSuperlative;return Mo(e,n)},xi=function(e,t){const n=t.two.models.toComparative;return Mo(e,n)};var Ii={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 Gi={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===Ii.hasOwnProperty(i)&&Ii[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Aa,nounToSingular:ii,verbToInfinitive:hi,getTense:ui,verbConjugate:di,adjToSuperlative:Ei,adjToComparative:xi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Mo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Mo(e,n)},advToAdjective:yi,adjToAdverb:Pi,adjToNoun:function(e){if(ji.hasOwnProperty(e))return ji[e];if(Ni.has(e))return null;let t=pi(e,Ai);return t||e+"ness"}}}};var Ti=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 Ci=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Di=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=Ci(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ci(r,"Infinitive","Verb"),Object.assign(s,l),l=Ci(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ci(o,"Adjective","Superlative"),Object.assign(s,l),l=Ci(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Oi={two:{models:ri}};const Bi={"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"},Vi=function(e,t){const n={model:t,methods:Gi};let{lex:r,_multi:a}=Gi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},zi=function(e,t,n){let r=di(e,Oi);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]=Bi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||zi(a,r,!1),"Adj|Present"===o&&(zi(a,r,!0),function(e,t,n){let r=Ei(e,n);t[r]=t[r]||"Superlative";let a=xi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=hi(a,Oi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=hi(a,Oi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Vi(n,t)};let Fi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:da,models:ri,suffixPatterns:ko,prefixPatterns:Ao,endsWith:Co,neighbours:Bo,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:Ea,clues:uo,uncountable:{},orgWords:ai}};Fi=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=Vi(e.one.lexicon,e)).one.lexicon,e),e=$i(e.two.switches,e),e=Di(e),e=Ti(e)}(Fi);var Si=Fi;const Hi=/^(under|over|mis|re|un|dis|semi)-?/;var Mi=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(Hi.test(a.normal)){let e=a.normal.replace(Hi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Ji=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 Li={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Wi=new Set(["formulas","koalas","israelis","menus"]),qi=["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 Ki=function(e){if(!e||e.length<=3)return!1;if(Wi.has(e))return!0;let t=e[e.length-1];return Li.hasOwnProperty(t)?Li[t].find(t=>e.endsWith(t)):"s"===t&&!qi.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Ui=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Ki(e.normal)?Ji(e,"Plural","3-plural-guess"):Ji(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ui(e.normal);t&&Ji(e,t,"3-verb-tense-guess")}}(r)};const Qi=/^\p{Lu}[\p{Ll}'’]/u,Zi=/[0-9]/,_i=["Date","Month","WeekDay","Unit"],Yi=/^[IVXLCDM]{2,}$/,Xi=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,es={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===Qi.test(o)&&!1===Zi.test(o)?_i.find(e=>r.tags.has(e))?null:(Ui(e,t,n),r.tags.has("Noun")||r.tags.clear(),Ji(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Yi.test(o)&&Xi.test(o)&&!es[r.normal]?(Ji(r,"RomanNumeral","2-xvii"),!0):null};const ns=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 rs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ns(r.normal,n.two.suffixPatterns);if(null!==e)return Ji(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ns(r.implicit,n.two.suffixPatterns),null!==e))return Ji(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const as=/['‘’‛‵′`´]/,os=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 Ji(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ls=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"]),us=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ls.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},cs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},hs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ds=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(us(a)||us(o))return Ji(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(cs(a)||cs(o))return Ji(n,"Year","2-tagYear-close");if(hs(e[t-2])||hs(e[t+2]))return Ji(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 Ji(n,"Year","2-tagYear-noun")}}}return null};const ps=/^[A-Z]('s|,)?$/,ms=/^[A-Z-]+$/,gs=/([A-Z]\.)+[A-Z]?,?$/,fs=/[A-Z]{2,}('s|,)?$/,vs=/([a-z]\.)+[a-z]\.?$/,bs={I:!0,A:!0};var ys=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===ms.test(n)||n.length>5||bs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==gs.test(n)&&!0!==vs.test(n)&&!0!==ps.test(n)&&!0!==fs.test(n))}(r,n)?(r.tags.clear(),Ji(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!bs.hasOwnProperty(r.text)&&ps.test(r.text)?(r.tags.clear(),Ji(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Ji(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&ms.test(r.text)&&r.text.length<=6?(Ji(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},ks=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ps=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||ks(e[t-1],r),l=l||ks(e[t+1],i),l)return Ji(s,l,"3-[neighbour]"),Ui(e,t,n),e[t].confidence=.2,!0}return null};const As=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]&&As(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&As(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Ns=function(e,t,n){0===e[t].tags.size&&(Ji(e[t],"Noun","3-[fallback]"),Ui(e,t,n),e[t].confidence=.1)};const Es=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,xs=(e,t,n)=>0!==t||e[1]?null:n;var Is={"Adj|Gerund":(e,t)=>Es(e,t),"Adj|Noun":(e,t)=>Es(e,t),"Adj|Past":(e,t)=>Es(e,t),"Adj|Present":(e,t)=>Es(e,t),"Noun|Gerund":(e,t)=>Es(e,t),"Noun|Verb":(e,t)=>Es(e,t)||xs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Es(e,t)||xs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Es(e,t),"Person|Verb":(e,t)=>0!==t&&Es(e,t)};const Gs="undefined"!=typeof process&&process.env?process.env:self.env||{},Ts=/^(under|over|mis|re|un|dis|semi)-?/,Cs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Gs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ds=(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&&Gs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Os={tagSwitch:Mi,checkSuffix:rs,checkRegex:is,checkCase:ts,checkPrefix:ss,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")&&(Ji(o,"Verb","3-[prefix]"),Ji(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Ji(o,"Adjective","3-[prefix]"),Ji(o,"Prefix","3-[prefix]")))},checkYear:ds},Bs={checkAcronym:ys,neighbours:Ps,orgWords:js,nounFallback:Ns,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(Ts.test(l)&&!o[l]&&(l=l.replace(Ts,"")),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=Cs(e[t+1],n.afterWords);return o=o||Cs(e[t-1],n.beforeWords),o=o||Ds(e[t-1],n.beforeTags,a),o=o||Ds(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Is[o]&&(u=Is[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Gs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Vs=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 Fs={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 Ss={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 Zs=/'/;var _s=function(e,t){let n=e[t].normal.split(Zs)[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 Ys=/'/;var Xs=function(e,t){let n=e[t].normal.split(Ys)[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 el=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 tl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},nl={in:!0,by:!0,for:!0};var rl=(e,t)=>{let n=e[t];if(tl.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===nl[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 al=/'/,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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},il={d:(e,t)=>Xs(e,t),t:(e,t)=>el(e,t),s:(e,t,n)=>rl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):_s(e,t)},sl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ll={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===al.test(r[o].normal)&&([,i]=r[o].normal.split(al));let s=null;il.hasOwnProperty(i)&&(s=il[i](r,o,t)),s&&(s=sl(s,e),Qs(n,[a,o],s),ol(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=Us.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=Rs},hooks:["contractionTwo"]};const ul="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const cl=["i","we","they"];let hl=[].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:"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:ul+" #Person",tag:"Person",reason:"randy-smith"},{match:ul+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${ul}]`,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:"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:cl,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:cl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:cl,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 dl=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(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;dl=dl||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(dl),e.uncache(),e}},model:{two:{matches:hl}},hooks:["postTagger"]};var ml=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")?ml(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=gl}};m.plugin(Ws),m.plugin(ll),m.plugin(pl),m.plugin(fl);var vl=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 bl=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 yl={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 Il={compute:{chunks:function(e){const{document:t,world:n}=e;wl(t),kl(t),jl(e,t,n),El(t),xl(t)}},api:function(e){e.prototype.chunks=bl,e.prototype.clauses=vl},hooks:["chunks"]};const Gl=/'s$/;var Tl=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(Gl,""),e.normal=e.normal.replace(Gl,"")})}),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 Cl=/\(/,Dl=/\)/,Ol=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Cl,"");let t=e[e.length-1];t.post=t.post.replace(Dl,"")}),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 Vl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},zl=RegExp("("+Object.keys(Vl).join("|")+")"),$l=RegExp("("+Object.values(Vl).join("|")+")"),Fl=function(e,t){const n=e[t].pre.match(zl)[0]||"";if(!n||!Vl[n])return null;const r=Vl[n];for(;t{e[0].pre=e[0].pre.replace(zl,"");let t=e[e.length-1];t.post=t.post.replace($l,"")})}(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 Hl=/\./g;var Ml=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(Hl,""),e.normal=e.normal.replace(Hl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Hl,""),e.normal=e.normal.replace(Hl,""),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 Jl=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 Ll=(e,t)=>"number"==typeof t?e.eq(t):e,Wl=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 ql=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=Wl(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 Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Ll(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Ll(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Ll(t,e),new Adjectives(t.document,t.pointer)}};const Kl=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},Rl=[["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 Ul=[["emojis","emoji"],["atmentions","atMentions"]];var Ql=function(e){Rl.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=Kl,Ul.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},Zl={api:function(e){Ql(e),Tl(e),Bl(e),Sl(e),ql(e),Jl(e),Ml(e)}};const _l=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var Yl={case:e=>{_l(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;_l(e,e=>e.text=n(e.text,t))},whitespace:e=>{_l(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=>{_l(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 Xl=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),eu="unicode|punctuation|whitespace|acronyms",tu="|case|contractions|parentheses|quotations|emoji|honorifics",nu={light:Xl(eu),medium:Xl(eu+tu),heavy:Xl(eu+tu+"|possessives|adverbs|nouns|verbs")};var ru={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=nu[e]),Object.keys(e).forEach(t=>{Yl.hasOwnProperty(t)&&Yl[t](this,e[t])}),this}}};var au=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 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 lu=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:su(e,t),isSubordinate:iu(e),root:t}};const uu=e=>e.text(),cu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),hu=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var du=function(e){let t=lu(e);return{root:uu(t.root),number:hu(t.number),determiner:uu(t.determiner),adjectives:cu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const pu={tags:!0};var mu=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,pu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",pu),e};const gu={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,gu).tag("Singular","toPlural"),e};const vu=(e,t)=>"number"==typeof t?e.eq(t):e;var bu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return vu(this,e).map(lu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=du(t)),n},[])}isPlural(e){let t=this.filter(e=>lu(e).isPlural);return vu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=lu(e).adjectives;n.found&&(t=t.concat(n))}),vu(t,e)}toPlural(e){return vu(this,e).map(e=>mu(e,lu(e)))}toSingular(e){return vu(this,e).map(e=>{let t=lu(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=au(this);return t=vu(t,e),new Nouns(this.document,t.pointer)}}};var yu=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(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};var Au=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 Nu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Eu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},xu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Iu=function(e){if(!0===Eu.hasOwnProperty(e))return Eu[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=Tu(n),r=Tu(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:Tu(n);let a=r.text("reduced");return Gu.test(a)&&(a=a.replace(Gu,""),r=r.replaceWith(a)),r=Cu.hasOwnProperty(a)?Cu[a]:Tu(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:Tu(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 Ou=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 Bu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Vu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],zu=[[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"]],$u=function(e){let t=[];if(e>100)return t;for(let n=0;n=Bu[n][1]&&(e-=Bu[n][1],t.push(Bu[n][0]));return Vu[e]&&t.push(Vu[e]),t};var Fu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ou(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return zu.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($u(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=Ou(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 Su=function(e){if(!e.numerator||!e.denominator)return"";return`${Fu({num:e.numerator})} out of ${Fu({num:e.denominator})}`};const Hu={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 Mu=e=>{let t=Fu(e).split(" "),n=t[t.length-1];return Hu.hasOwnProperty(n)?t[t.length-1]=Hu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Ju=function(e){if(!e.numerator||!e.denominator)return"";let t=Fu({num:e.numerator}),n=Mu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Lu=(e,t)=>"number"==typeof t?e.eq(t):e;var Wu=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Lu(this,e).map(Du)}get(e){return Lu(this,e).map(Du)}json(e){return Lu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Du(t);return n.fraction=r,n},[])}toDecimal(e){return Lu(this,e).forEach(e=>{let{decimal:t}=Du(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Lu(this,e).forEach(e=>{let t=Du(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 Lu(this,e).forEach(e=>{let t=Du(e),n=Ju(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Lu(this,e).forEach(e=>{let t=Du(e),n=Su(t);e.replaceWith(n)}),this}toPercentage(e){return Lu(this,e).forEach(e=>{let{decimal:t}=Du(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=yu(this);return t=Lu(t,e),new Fractions(this.document,t.pointer)}};const qu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Ku=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("("+qu+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+qu+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+qu+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+qu+")"));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) (${qu})`),r=e.has("("+qu+") #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("("+qu+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+qu+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Ru=function(e){if("string"==typeof e)return{num:Iu(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=Du(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Iu(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 Uu=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=Ou(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Qu={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Zu={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var _u=function(e){let t={suffix:"",prefix:e.prefix};return Qu.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Qu[e.prefix],t.prefix=""),Zu.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Zu[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Yu=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=_u(e);return t+Mu(e)+n}if("Ordinal"===t)return e.prefix+Uu(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=_u(e);return t+Fu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Xu=(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 Xu(this,e).map(Ru)}get(e){return Xu(this,e).map(Ru).map(e=>e.num)}json(e){return Xu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ru(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=Ru(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Yu(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=Ru(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Yu(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=>Ru(t).num===e)}greaterThan(e){return this.filter(t=>Ru(t).num>e)}lessThan(e){return this.filter(t=>Ru(t).num{let r=Ru(n).num;return r>e&&r{let n=Ru(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=Yu(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=Ru(e).num);let t=this.map(t=>{let n=Ru(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=Yu(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=Ku(this);return t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Ku(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Ku(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var tc={api:function(e){Wu(e),ec(e)}};const nc={people:!0,emails:!0,phoneNumbers:!0,places:!0},rc=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 ac={api:function(e){e.prototype.redact=rc}};var 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))})};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 sc=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 lc=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 uc=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 hc=function(e){return e.verbs().toInfinitive(),e};const dc=(e,t)=>"number"==typeof t?e.eq(t):e;var pc={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}=sc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return dc(this,e).map(e=>(sc(e),lc(e)))}toPresentTense(e){return dc(this,e).map(e=>(sc(e),uc(e)))}toFutureTense(e){return dc(this,e).map(e=>(sc(e),e=cc(e)))}toInfinitive(e){return dc(this,e).map(e=>(sc(e),hc(e)))}toNegative(e){return dc(this,e).map(e=>(sc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return dc(this,e).map(e=>(sc(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 dc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return dc(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=dc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=oc(this);return dc(t,e)}};Object.assign(e.prototype,t)}};var mc=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 fc="male",vc="female",bc={mr:fc,mrs:vc,miss:vc,madam:vc,king:fc,queen:vc,duke:fc,duchess:vc,baron:fc,baroness:vc,count:fc,countess:vc,prince:fc,princess:vc,sire:fc,dame:vc,lady:vc,ayatullah:fc,congressman:fc,congresswoman:vc,"first lady":vc,mx:null};var yc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return vc;if(n.has("#MaleName"))return fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),bc.hasOwnProperty(e))return bc[e];if(/^her /.test(e))return vc;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 vc}return null};const wc=(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 wc(this,e).map(gc)}json(e){return wc(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:yc(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=mc(this);return t=wc(t,e),new People(this.document,t.pointer)}};var Pc=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 Ac=function(e){e.prototype.places=function(t){let n=Pc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var jc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Nc=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 Ec=function(e){e.prototype.topics=Nc};var xc={api:function(e){kc(e),Ac(e),jc(e),Ec(e)}};var Ic=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 Gc=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 Tc=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 Cc=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},Dc=function(e){return e.match("#Negative")},Oc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Bc=function(e){let t=e.clone();t.contractions().expand();const n=Gc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Tc(t,n),auxiliary:Cc(t,n),negative:Dc(t),phrasal:Oc(n)}};const Vc={tense:"PresentTense"},zc={conditional:!0},$c={tense:"FutureTense"},Fc={progressive:!0},Sc={tense:"PastTense"},Hc={complete:!0,progressive:!1},Mc={passive:!0},Jc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Lc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Vc]],["^wanted to #Infinitive$",[Sc]],["^will want to #Infinitive$",[$c]]],"gerund-phrase":[["^#PastTense #Gerund$",[Sc]],["^#PresentTense #Gerund$",[Vc]],["^#Infinitive #Gerund$",[Vc]],["^will #Infinitive #Gerund$",[$c]],["^have #PastTense #Gerund$",[Sc]],["^will have #PastTense #Gerund$",[Sc]]],"simple-present":[["^#PresentTense$",[Vc]],["^#Infinitive$",[Vc]]],"simple-past":[["^#PastTense$",[Sc]]],"simple-future":[["^will #Adverb? #Infinitive",[$c]]],"present-progressive":[["^(is|are|am) #Gerund$",[Vc,Fc]]],"past-progressive":[["^(was|were) #Gerund$",[Sc,Fc]]],"future-progressive":[["^will be #Gerund$",[$c,Fc]]],"present-perfect":[["^(has|have) #PastTense$",[Sc,Hc]]],"past-perfect":[["^had #PastTense$",[Sc,Hc]],["^had #PastTense to #Infinitive",[Sc,Hc]]],"future-perfect":[["^will have #PastTense$",[$c,Hc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Sc,Fc]]],"past-perfect-progressive":[["^had been #Gerund$",[Sc,Fc]]],"future-perfect-progressive":[["^will have been #Gerund$",[$c,Fc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Sc,Mc]],["^(was|were) being (#PastTense|#Participle)",[Sc,Mc]],["^(had|have) been (#PastTense|#Participle)",[Sc,Mc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Vc,Mc]],["^(is|are|am) being (#PastTense|#Participle)",[Vc,Mc]],["^has been (#PastTense|#Participle)",[Vc,Mc]]],"passive-future":[["will have been (#PastTense|#Participle)",[$c,Mc,zc]],["will be being? (#PastTense|#Participle)",[$c,Mc,zc]]],"present-conditional":[["would be #PastTense",[Vc,zc]]],"past-conditional":[["would have been #PastTense",[Sc,zc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[$c]]],"auxiliary-past":[["^did #Infinitive$",[Sc,{plural:!1}]],["^used to #Infinitive$",[Sc,Hc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Vc,Hc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Sc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Wc=[];Object.keys(Lc).map(e=>{Lc[e].forEach(t=>{Wc.push({name:e,match:t[0],data:Jc(t[1])})})});var qc=Wc;var Kc=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(),Rc(r)&&(n.remove(r),r=n.last()),Rc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Uc(t,e)}};const Zc=e=>e,_c=(e,t)=>{let n=Qc(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Yc=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Qc(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Xc=function(e,t){let n=Qc(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},th=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"),rh=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},ah=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,eh(e))};var ih=function(e){let t=Bc(e);e=e.clone().toView();const n=Kc(e,t);return{root:t.root.text(),preAdverbs:rh(t.adverbs.pre),postAdverbs:rh(t.adverbs.post),auxiliary:ah(t.auxiliary),negative:t.negative.found,prefix:ah(t.prefix),infinitive:oh(t.root),grammar:n}};const sh={tags:!0};var lh=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,sh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Xc(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const uh={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,eh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Qc(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,uh),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",uh),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}},hh={infinitive:ch.simple,"simple-present":ch.simple,"simple-past":Zc,"simple-future":ch.both,"present-progressive":e=>(e.replace("are","were",uh),e.replace("(is|are|am)","was",uh),e),"past-progressive":Zc,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":ch.hasHad,"past-perfect":Zc,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=nh(e)),e.remove("have"),e),"present-perfect-progressive":ch.hasHad,"past-perfect-progressive":Zc,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",uh),e),"passive-past":e=>(e.replace("have","had",uh),e),"passive-present":e=>(e.replace("(is|are)","was",uh),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",uh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Zc,"auxiliary-future":e=>(e.replace("(is|are|am)","was",uh),e),"auxiliary-past":Zc,"auxiliary-present":e=>(e.replace("(do|does)","did",uh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",uh):(ch.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Zc,"want-infinitive":e=>(e.replace("(want|wants)","wanted",uh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ch.simple(e,t),nh(e),e)};var dh=function(e,t,n){return hh.hasOwnProperty(n)?((e=hh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const ph={tags:!0},mh=(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===_c(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Yc(e)),o&&(e=e.replace(a,o,ph)).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,eh(a)),!1===_c(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,ph)).not("#Particle").tag("Gerund"),e},fh={infinitive:mh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return mh(e,t);{let t=Qc(e).subject;if(_c(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,ph)}return e},"simple-past":mh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Yc(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else mh(e,t),e=e.remove("will");return e},"present-progressive":Zc,"past-progressive":(e,t)=>{let n=Yc(e);return e.replace("(were|was)",n,ph)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(mh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Qc(e).subject;return _c(e)||n.has("i")?((e=th(e,t)).remove("had"),e):(e.replace("had","has",ph),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Zc,"past-perfect-progressive":e=>e.replace("had","has",ph),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Yc(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,ph),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Zc,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Zc,"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=Xc(e);return e.replace(t.auxiliary,n),e}return gh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Zc,"modal-infinitive":Zc,"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,ph))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),mh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return _c(e)&&(n="want"),e.replace("(want|wanted|wants)",n,ph),e.remove("will"),e}};var vh=function(e,t,n){return fh.hasOwnProperty(n)?((e=fh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const bh={tags:!0},yh=(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,bh)).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,eh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,bh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},kh={infinitive:yh,"simple-present":yh,"simple-past":yh,"simple-future":Zc,"present-progressive":wh,"past-progressive":wh,"future-progressive":Zc,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Zc,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Zc,"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":Zc,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Zc,"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":Zc,"modal-past":Zc,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),yh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Ph=function(e,t,n){return e.has("will")||e.has("going to")?e:kh.hasOwnProperty(n)?((e=kh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Ah={tags:!0};var jh=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=`${Yc(e)} ${s}`,e.replace(a,s,Ah)),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 Nh={tags:!0},Eh=function(e,t){let n=Xc(e);return e.prepend(n+" not"),e},xh=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)},Ih=e=>e.has("(is|was|am|are|will|were|be)"),Gh={"simple-present":(e,t)=>!0===Ih(e)?xh(e):(e=th(e,t),e=Eh(e)),"simple-past":(e,t)=>!0===Ih(e)?xh(e):((e=th(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Ih(e)?xh(e):Eh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Nh),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=Eh(e)).replace("wants","want",Nh)};var Th=function(e,t,n){if(e.has("#Negative"))return e;if(Gh.hasOwnProperty(n))return e=Gh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Ih(e)?xh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Ch=(e,t)=>"number"==typeof t?e.eq(t):e;var Dh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Ch(this,e).map(Bc)}json(e,t){return Ch(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=ih(t),n},[])}subjects(e){return Ch(this,e).map(e=>(Bc(e),Qc(e).subject))}adverbs(e){return Ch(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Ch(this,e).filter(e=>!0!==Qc(e).plural)}isPlural(e){return Ch(this,e).filter(e=>!0===Qc(e).plural)}isImperative(e){return Ch(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return lh(e,t,n.form)})}toPresentTense(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return vh(e,t,n.form)})}toPastTense(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return dh(e,t,n.form)})}toFutureTense(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return Ph(e,t,n.form)})}toGerund(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return jh(e,t,n.form)})}conjugate(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:lh(e.clone(),t,n.form).text("normal"),PastTense:dh(e.clone(),t,n.form).text("normal"),PresentTense:vh(e.clone(),t,n.form).text("normal"),FutureTense:Ph(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 Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return Th(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=Ic(this);return t=Ch(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Il),m.plugin(Zl),m.plugin(ru),m.plugin(bu),m.plugin(tc),m.plugin(ac),m.plugin(pc),m.plugin(xc),m.plugin(Dh);export{m as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index 0443b04b3..5a74e5ec8 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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;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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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 T=C,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;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 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,T,z,F,M,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"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e))return e.fullPointer.length>0;if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Ze=function(e){let t=e.split(We),n=[];t.forEach(e=>{Ue(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Re(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?a.push(e):a=a.concat(e.split(qe))}),a=Re(a),a};const Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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&&(jt(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&&(jt(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},Ct=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)}},Tt=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},Bt=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)}},Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Tt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else if(!Ot(r))return null}else if(!Ot(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!It(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,""),Ut.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&&Rt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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},yn=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=yn(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},wn={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:yn,splitAll:vn}}},kn=function(e,t){let n=e.concat(t),a=yn(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=>bn(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},An=function(e,t){let n=yn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},jn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},In={union:function(e){e=En(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=jn(e,this.document),this.update(e)};var Gn={methods:wn,api:function(e){Object.assign(e.prototype,In)}};const Nn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Nn(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e},xn=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})},Cn=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.find(e=>a.has(e)))})},Tn=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},Bn=function(e,t){let[n,a,r]=e.pointer,o=t[n],i=a>4?a-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const d=e=>""+e+"";for(;ir+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>a&&i{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=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 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=xn(r,t.hooks);return o=Cn(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),Tn(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;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 r=e.reason||e.match;l.DEBUG_TAGS&&Bn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===On(u,e.tag,a))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,r),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,r),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const Vn=/ /,Fn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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.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[0],t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Vn.test(t))!function(e,t,n,a){let r=t.split(Vn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nSn(e,t,n,a))};var Hn=Sn,Jn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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=Mn({});return e.forEach(e=>{if((e=Mn(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(Mn),t);var t},Zn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Kn(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},Qn=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},_n={text:Zn,txt:Zn,array:Qn,flat:Qn},Xn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Zn(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Yn=e=>{Kn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},ea=/\//;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),!ea.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Mn({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 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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(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 Yn(this.json),Xn(this.json,e)}debug(){return Yn(this.json),Xn(this.json,"debug"),this}}const ta=function(e){let t=Rn(e);return new g$1(t)};ta.prototype.plugin=function(e){e(this)};var na={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const aa=function(e){if(na.hasOwnProperty(e.id))return na[e.id];if(na.hasOwnProperty(e.is))return na[e.is];let t=e._cache.parents.find(e=>na[e]);return na[t]};var ra=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:aa(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 oa=function(e){return e?"string"==typeof e?[e]:e:[]};var ia=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=oa(e[t].children),e[t].not=oa(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},sa={one:{setTag:Hn,unTag:Jn,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=ia(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 ta(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ra(n)}}};const la=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ua={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||""),la(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 la(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)}},ca=function(e){Object.assign(e.prototype,ua)},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 ha=new Set(["Auxiliary","Possessive"]);var ga={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(ha.has(e)||!t.hasOwnProperty(n))return 1;if(ha.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:sa,api:ca,lib:da};const ma=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,pa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var fa=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 Oa=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,za=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Va=/['’]/,Fa=/^[a-z]\.([a-z]\.)+/i,$a=/^[-+.][0-9]/,Sa=/^'[0-9]{2}/;var Ha=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Oa,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$a.test(e)?"'"===n&&Sa.test(e)?(n="",t):"":(n="",t)))).replace(za,r=>(a=r,Va.test(r)&&/[sn]['’]$/.test(t)&&!1===Va.test(n)?(a=a.replace(Va,""),"'"):!0===Fa.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},Ja=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 Ma=/([A-Z]\.)+[A-Z]?,?$/,La=/^[A-Z]\.,?$/,Wa=/[A-Z]{2,}('s|,)?$/,Ka=/([a-z]\.)+[a-z]\.?$/;var qa=function(e){return function(e){return!0===Ma.test(e)||!0===Ka.test(e)||!0===La.test(e)||!0===Wa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Ua=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ja(a),a=n(a,t),a=qa(a),e.normal=a},Ra={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:Ea,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(Ta);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=Da(n),n=Ga(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ha(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})}}}},Za={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},_a={};[[["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=>{Qa[t]=!0,_a[t]="Abbreviation",void 0!==e[1]&&(_a[t]=[_a[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 Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},er={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){er[t]=e}))}));const tr=/\//,nr=/[a-z]\.[a-z]/i,ar=/[0-9]/;var rr=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])),tr.test(n)&&!nr.test(n)&&!ar.test(n)){let t=n.split(tr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const or=/^\p{Letter}+-\p{Letter}+$/u;var ir=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"),or.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},sr=function(e){let t=0,n=0,a=e.document;for(let e=0;elr(e,rr),machine:e=>lr(e,ir),normal:e=>lr(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 hr={safe:!0,min:3};var gr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=cr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},hr,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(U),m.extend(fn),m.extend(St),m.extend(Gn),m.extend(ga),m.plugin(be),m.extend(ur),m.plugin(f),m.extend(De),m.extend(gr),m.extend(Pe),m.extend(zn);var mr={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",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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 fr=36,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=fr,r=1;for(;n=0;n--,r*=fr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},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(pr[e]);Gr.test(e)?Object.keys(t).forEach(t=>{if(Dr[t]=e,"Noun|Verb"===e){let e=Ir(t,xr);Dr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Nr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Nr[e]="Emoticon"),delete Nr[""],delete Nr.null,delete Nr[" "];const Cr="Adjective";var Tr={beforeTags:{Determiner:Cr,Possessive:Cr},afterTags:{Adjective:Cr},beforeWords:{seem:Cr,seemed:Cr,seems:Cr,feel:Cr,feels:Cr,felt:Cr,appear:Cr,appears:Cr,appeared:Cr,also:Cr,over:Cr,under:Cr,too:Cr,it:Cr,but:Cr,still:Cr,really:Cr,quite:Cr,well:Cr,very:Cr,deeply:Cr,profoundly:Cr,extremely:Cr,so:Cr,badly:Cr,mostly:Cr,totally:Cr,awfully:Cr,rather:Cr,nothing:Cr,something:Cr,anything:Cr},afterWords:{too:Cr,also:Cr,or:Cr}};const Br="Gerund";var Or={beforeTags:{Adverb:Br,Preposition:Br,Conjunction:Br},afterTags:{Adverb:Br,Possessive:Br,Person:Br,Pronoun:Br,Determiner:Br,Copula:Br,Preposition:Br,Conjunction:Br,Comparative:Br},beforeWords:{been:Br,keep:Br,continue:Br,stop:Br,am:Br,be:Br,me:Br,began:Br,start:Br,starts:Br,started:Br,stops:Br,stopped:Br,help:Br,helps:Br,avoid:Br,avoids:Br,love:Br,loves:Br,loved:Br,hate:Br,hates:Br,hated:Br},afterWords:{you:Br,me:Br,her:Br,him:Br,them:Br,their:Br,it:Br,this:Br,there:Br,on:Br,about:Br,for:Br}},zr={beforeTags:Object.assign({},Tr.beforeTags,Or.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Tr.afterTags,Or.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Tr.beforeWords,Or.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Tr.afterWords,Or.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({},Tr.beforeTags,Fr.beforeTags,$r.beforeTags),afterTags:Object.assign({},Tr.afterTags,Fr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Fr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.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({},Tr.beforeTags,Hr),afterTags:Object.assign({},Tr.afterTags,Jr),beforeWords:Object.assign({},Tr.beforeWords,Mr),afterWords:Object.assign({},Tr.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,when:Kr,all:Kr,to:Kr,because:Kr,although:Kr,before:Kr,how:Kr,otherwise:Kr,though:Kr,yet:Kr}};const Ur={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Rr={beforeTags:Object.assign({},Tr.beforeTags,qr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Tr.afterTags,qr.afterTags,Ur.afterTags),beforeWords:Object.assign({},Tr.beforeWords,qr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,qr.afterWords,{to:void 0})};const Zr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qr={},_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"},Xr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Yr={beforeTags:Object.assign({},Or.beforeTags,Fr.beforeTags,Zr),afterTags:Object.assign({},Or.afterTags,Fr.afterTags,Qr),beforeWords:Object.assign({},Or.beforeWords,Fr.beforeWords,_r),afterWords:Object.assign({},Or.afterWords,Fr.afterWords,Xr)},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"},co={"Adj|Gerund":zr,"Adj|Noun":Sr,"Adj|Past":Wr,"Adj|Present":Rr,"Noun|Verb":eo,"Noun|Gerund":Yr,"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="Actor",Po="Verb",Ao="Noun",Eo="LastName",jo="Modal",Io="Participle";var Go=[null,null,{ea:bo,ia:Ao,ic:mo,ly:vo,"'n":Po,"'t":Po},{oed:yo,ued:yo,xed:yo," so":vo,"'ll":jo,"'re":"Copula",azy:mo,eer:Ao,end:Po,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:Io,ven:Io,ten:Io,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:Eo,cede:po,chuk:Eo,czyk:Eo,ects:fo,ends:Po,enko:Eo,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:Eo,oses:fo,ould:jo,some:mo,sson:Eo,tion:bo,tage:Ao,ique:bo,tive:mo,tors:Ao,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:Eo,nssen:Eo,ology:Ao,osome:bo,tment:bo,ports:wo,rough:mo,tches:fo,tieth:"Ordinal",tures:wo,wards:vo,where:vo,archy:Ao,pathy:Ao,opoly:Ao,embly:Ao,phate:Ao,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:Eo,parent:bo,cedent:bo,ionary:bo,cklist:bo,keeper:ko,logist:ko,teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const No="Adjective",Do="Noun",xo="Verb";var Co=[null,null,{},{neo:Do,bio:Do,"de-":xo,"re-":xo,"un-":xo},{anti:Do,auto:Do,faux:No,hexa:Do,kilo:Do,mono:Do,nano:Do,octa:Do,poly:Do,semi:No,tele:Do,"pro-":No,"mis-":xo,"dis-":xo,"pre-":No},{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:No,radio:Do,tetra:Do,"omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:Do}];const To="Adjective",Bo="Infinitive",Oo="PresentTense",zo="Singular",Vo="PastTense",Fo="Adverb",$o="Expression",So="Actor",Ho="Verb",Jo="Noun",Mo="LastName";var Lo={a:[[/.[aeiou]na$/,Jo,"tuna"],[/.[oau][wvl]ska$/,Mo],[/.[^aeiou]ica$/,zo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,To]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Vo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Vo,"rammed"],[/.[aeiou][sg]hed$/,Vo,"gushed"],[/.[aeiou]red$/,Vo,"hired"],[/.[aeiou]r?ried$/,Vo,"hurried"],[/[^aeiou]ard$/,zo,"steward"],[/[aeiou][^aeiou]id$/,To,""],[/.[vrl]id$/,To,"livid"],[/..led$/,Vo,"hurled"],[/.[iao]sed$/,Vo,""],[/[aeiou]n?[cs]ed$/,Vo,""],[/[aeiou][rl]?[mnf]ed$/,Vo,""],[/[aeiou][ns]?c?ked$/,Vo,"bunked"],[/[aeiou]gned$/,Vo],[/[aeiou][nl]?ged$/,Vo],[/.[tdbwxyz]ed$/,Vo],[/[^aeiou][aeiou][tvx]ed$/,Vo],[/.[cdflmnprstv]ied$/,Vo,"emptied"]],e:[[/.[lnr]ize$/,Bo,"antagonize"],[/.[^aeiou]ise$/,Bo,"antagonise"],[/.[aeiou]te$/,Bo,"bite"],[/.[^aeiou][ai]ble$/,To,"fixable"],[/.[^aeiou]eable$/,To,"maleable"],[/.[ts]ive$/,To,"festive"],[/[a-z]-like$/,To,"woman-like"]],h:[[/.[^aeiouf]ish$/,To,"cornish"],[/.v[iy]ch$/,Mo,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,To,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Mo,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,To,"familial"],[/.[^aeiou]ful$/,To,"fitful"],[/.[nrtumcd]al$/,To,"natal"],[/.[^aeiou][ei]al$/,To,"familial"]],m:[[/.[^aeiou]ium$/,zo,"magnesium"],[/[^aeiou]ism$/,zo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,To,"republican"],[/[^aeiou]ician$/,So,"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$/,zo],[/[^i]fer$/,Bo],[/.[^aeiou][ao]pher$/,So],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,To],[/[aeiou].*ist$/,To],[/^[a-z]et$/,Ho]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,Ho],[/.[lstrn]us$/,zo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,zo],[/[a-z]'s$/,Jo],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,Mo]],y:[[/.[cts]hy$/,To],[/.[st]ty$/,To],[/.[tnl]ary$/,To],[/.[oe]ry$/,zo],[/[rdntkbhs]ly$/,Fo],[/.(gg|bb|zz)ly$/,To],[/...lly$/,Fo],[/.[gk]y$/,To],[/[bszmp]{2}y$/,To],[/.[ai]my$/,To],[/[ea]{2}zy$/,To],[/.[^aeiou]ity$/,zo]]};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 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],a=n.match(Xo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Xo,"")}(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},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,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=ai(Qo),si=ai(Ro),li=ai(Zo),ui=ri(oi),ci=ri(ii),di=ri(si),hi=ri(li),gi=ai(Uo),mi=ai(_o);var pi={fromPast:oi,fromPresent:ii,fromGerund:si,fromParticiple:li,toPast:ui,toPresent:ci,toGerund:di,toParticiple:hi,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,""]],yi=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(vi[t].forEach(n=>e[n]=t),e),{});var wi=vi,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=Yo(l,i);else if("PastTense"===n)c=Yo(l,a);else if("PresentTense"===n)c=Yo(l,r);else{if("Gerund"!==n)return e;c=Yo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},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:Yo(i,n),PresentTense:Yo(i,a),Gerund:Yo(i,r),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},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",Gi=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]),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"}],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 Ci=function(e){return e.endsWith("ly")?Gi.has(e)?e.replace(/ically/,"ical"):Di.has(e)?null:xi.hasOwnProperty(e)?xi[e]:ji(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"},{},{},{}],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,Ti);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"]),$i=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,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"]}},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.toLowerCase().trim()).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:Ir,nounToSingular:yi,verbToInfinitive:Ai,getTense:ki,verbConjugate:Ei,adjToSuperlative:$i,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: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"}}}},Mi=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 Li=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(a,"Infinitive","Verb"),Object.assign(s,l),l=Li(r,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(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"},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:Nr},two:{irregularPlurals:mr,models:pi,suffixPatterns:Go,prefixPatterns:Co,endsWith:Lo,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:Dr,clues:go,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=Mi(e)}(Qi);var _i=Qi;const Xi=/^(under|over|mis|re|un|dis|semi)-?/;var Yi=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(Xi.test(r.normal)){let e=r.normal.replace(Xi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},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"]},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,}$/,ds=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hs={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)&&ds.test(o)&&!hs[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-]+$/,Gs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[A-Z]{2,}('s|,)?$/,Ds=/([a-z]\.)+[a-z]\.?$/,xs={I:!0,A:!0};var Cs=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!==Gs.test(n)&&!0!==Ds.test(n)&&!0!==js.test(n)&&!0!==Ns.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 Ts=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||Ts(e[t-1],r),l=l||Ts(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},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),"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||{},Ms=/^(under|over|mis|re|un|dis|semi)-?/,Ls=(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(`\n  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},Ks={tagSwitch:Yi,checkSuffix:ps,checkRegex:ys,checkCase:gs,checkPrefix:vs,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:Cs,neighbours:Os,orgWords:Vs,nounFallback:Fs,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(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,a){if(!n)return null;const r=a.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,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?(Js.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),r([s],u,n,null,"3-[variable]")):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)},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 dl=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"]},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 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)},yl={d:(e,t)=>dl(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"):ul(e,t)},vl=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;yl.hasOwnProperty(i)&&(s=yl[i](a,o,t)),s&&(s=vl(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)",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:"[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:"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)",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: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:"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:"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"}]),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(["preTagger","contractionTwo","postTagger"])}},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}},model:{two:{matches:Al}},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)},Gl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Il(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},Nl={api:function(e){e.prototype.swap=Gl}};return m.plugin(nl),m.plugin(wl),m.plugin(jl),m.plugin(Nl),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]);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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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;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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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 T=C,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;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 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,T,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 Q=/'/,_=new Set(["what","how","when","where","why"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e))return e.fullPointer.length>0;if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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 Ze=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 Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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&&(jt(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&&(jt(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},Ct=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)}},Tt=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},Bt=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)}},Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Tt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else if(!Ot(r))return null}else if(!Ot(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!It(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},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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},yn=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=yn(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},wn={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:yn,splitAll:vn}}},kn=function(e,t){let n=e.concat(t),a=yn(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=>bn(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},An=function(e,t){let n=yn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},jn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},In={union:function(e){e=En(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=jn(e,this.document),this.update(e)};var Gn={methods:wn,api:function(e){Object.assign(e.prototype,In)}};const Nn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Nn(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e},xn=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})},Cn=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.find(e=>a.has(e)))})},Tn=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},Bn=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=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 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=xn(r,t.hooks);return o=Cn(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),Tn(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===Bn(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 zn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(),zn.test(t))!function(e,t,n,a){let r=t.split(zn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Fn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,a))};var Sn=$n,Hn=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=>Jn({id:e})),t}return[Jn({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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Ln(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=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):(Wn(t=e).forEach(Jn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Wn(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},Zn=function(e){let t=Wn(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},Qn={text:Un,txt:Un,array:Zn,flat:Zn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},Xn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Jn({});return new g$1(t)}add(e,t={}){if(Kn(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 Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(this.json);let e=Wn(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 Xn(this.json),_n(this.json,e)}debug(){return Xn(this.json),_n(this.json,"debug"),this}}const ea=function(e){let t=Rn(e);return new g$1(t)};ea.prototype.plugin=function(e){e(this)};var ta={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const na=function(e){if(ta.hasOwnProperty(e.id))return ta[e.id];if(ta.hasOwnProperty(e.is))return ta[e.is];let t=e._cache.parents.find(e=>ta[e]);return ta[t]};var aa=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:na(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 ra=function(e){return e?"string"==typeof e?[e]:e:[]};var oa=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=ra(e[t].children),e[t].not=ra(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ia={one:{setTag:Sn,unTag:Hn,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=oa(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 ea(t).cache().fillDown().out("array")}(Object.assign({},t,e));return aa(n)}}};const sa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var la={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||""),sa(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 sa(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)}},ua=function(e){Object.assign(e.prototype,la)},ca={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 da=new Set(["Auxiliary","Possessive"]);var ha={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(da.has(e)||!t.hasOwnProperty(n))return 1;if(da.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:ia,api:ua,lib:ca};const ga=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ma=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var pa=function(e){let t=[],n=e.split(ma);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 Ba=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Oa=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,za=/['’]/,Va=/^[a-z]\.([a-z]\.)+/i,Fa=/^[-+.][0-9]/,$a=/^'[0-9]{2}/;var Sa=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ba,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fa.test(e)?"'"===n&&$a.test(e)?(n="",t):"":(n="",t)))).replace(Oa,r=>(a=r,za.test(r)&&/[sn]['’]$/.test(t)&&!1===za.test(n)?(a=a.replace(za,""),"'"):!0===Va.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},Ha=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 Ja=/([A-Z]\.)+[A-Z]?,?$/,Ma=/^[A-Z]\.,?$/,La=/[A-Z]{2,}('s|,)?$/,Wa=/([a-z]\.)+[a-z]\.?$/;var Ka=function(e){return function(e){return!0===Ja.test(e)||!0===Wa.test(e)||!0===Ma.test(e)||!0===La.test(e)}(e)&&(e=e.replace(/\./g,"")),e},qa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ha(a),a=n(a,t),a=Ka(a),e.normal=a},Ra={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:Aa,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(Ca);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=Na(n),n=Ia(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Sa(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})}}}},Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Za={},Qa={};[[["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=>{Za[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])})});var _a=["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 Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Ya={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){Ya[t]=e}))}));const er=/\//,tr=/[a-z]\.[a-z]/i,nr=/[0-9]/;var ar=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])),er.test(n)&&!tr.test(n)&&!nr.test(n)){let t=n.split(er);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const rr=/^\p{Letter}+-\p{Letter}+$/u;var or=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"),rr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ir=function(e){let t=0,n=0,a=e.document;for(let e=0;esr(e,ar),machine:e=>sr(e,or),normal:e=>sr(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 dr={safe:!0,min:3};var hr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ur},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},dr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=cr(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(fn),m.extend(St),m.extend(Gn),m.extend(ha),m.plugin(be),m.extend(lr),m.plugin(f),m.extend(De),m.extend(hr),m.extend(Pe),m.extend(On);var gr={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"},mr={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 pr=36,fr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",br=fr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var yr=function(e){if(void 0!==br[e])return br[e];let t=0,n=1,a=pr,r=1;for(;n=0;n--,r*=pr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},vr=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=kr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Pr(mr[e]);Ir.test(e)?Object.keys(t).forEach(t=>{if(Nr[t]=e,"Noun|Verb"===e){let e=jr(t,Dr);Nr[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 xr="Adjective";var Cr={beforeTags:{Determiner:xr,Possessive:xr},afterTags:{Adjective:xr},beforeWords:{seem:xr,seemed:xr,seems:xr,feel:xr,feels:xr,felt:xr,appear:xr,appears:xr,appeared:xr,also:xr,over:xr,under:xr,too:xr,it:xr,but:xr,still:xr,really:xr,quite:xr,well:xr,very:xr,deeply:xr,profoundly:xr,extremely:xr,so:xr,badly:xr,mostly:xr,totally:xr,awfully:xr,rather:xr,nothing:xr,something:xr,anything:xr},afterWords:{too:xr,also:xr,or:xr}};const Tr="Gerund";var Br={beforeTags:{Adverb:Tr,Preposition:Tr,Conjunction:Tr},afterTags:{Adverb:Tr,Possessive:Tr,Person:Tr,Pronoun:Tr,Determiner:Tr,Copula:Tr,Preposition:Tr,Conjunction:Tr,Comparative:Tr},beforeWords:{been:Tr,keep:Tr,continue:Tr,stop:Tr,am:Tr,be:Tr,me:Tr,began:Tr,start:Tr,starts:Tr,started:Tr,stops:Tr,stopped:Tr,help:Tr,helps:Tr,avoid:Tr,avoids:Tr,love:Tr,loves:Tr,loved:Tr,hate:Tr,hates:Tr,hated:Tr},afterWords:{you:Tr,me:Tr,her:Tr,him:Tr,them:Tr,their:Tr,it:Tr,this:Tr,there:Tr,on:Tr,about:Tr,for:Tr}},Or={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 zr="Singular";var Vr={beforeTags:{Determiner:zr,Possessive:zr,Acronym:zr,Noun:zr,Adjective:zr,PresentTense:zr,Gerund:zr,PastTense:zr,Infinitive:zr,Date:zr},afterTags:{Value:zr,Modal:zr,Copula:zr,PresentTense:zr,PastTense:zr,Demonym:zr},beforeWords:{the:zr,with:zr,without:zr,of:zr,for:zr,any:zr,all:zr,on:zr,cut:zr,cuts:zr,save:zr,saved:zr,saves:zr,make:zr,makes:zr,made:zr,minus:zr,plus:zr,than:zr,another:zr,versus:zr,neither:zr,favorite:zr,best:zr,daily:zr,weekly:zr,linear:zr,binary:zr,mobile:zr,lexical:zr,technical:zr,computer:zr,scientific:zr,formal:zr},afterWords:{of:zr,system:zr,aid:zr,method:zr,utility:zr,tool:zr,reform:zr,therapy:zr,philosophy:zr,room:zr,authority:zr,says:zr,said:zr,wants:zr,wanted:zr}};const Fr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var $r={beforeTags:Object.assign({},Cr.beforeTags,Vr.beforeTags,Fr.beforeTags),afterTags:Object.assign({},Cr.afterTags,Vr.afterTags),beforeWords:Object.assign({},Cr.beforeWords,Vr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Cr.afterWords,Vr.afterWords)};const Sr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Hr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Jr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Mr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Lr={beforeTags:Object.assign({},Cr.beforeTags,Sr),afterTags:Object.assign({},Cr.afterTags,Hr),beforeWords:Object.assign({},Cr.beforeWords,Jr),afterWords:Object.assign({},Cr.afterWords,Mr)};const Wr="Infinitive";var Kr={beforeTags:{Modal:Wr,Adverb:Wr,Negative:Wr,Plural:Wr},afterTags:{Determiner:Wr,Adverb:Wr,Possessive:Wr,Preposition:Wr},beforeWords:{i:Wr,we:Wr,you:Wr,they:Wr,to:Wr,please:Wr,will:Wr,have:Wr,had:Wr,would:Wr,could:Wr,should:Wr,do:Wr,did:Wr,does:Wr,can:Wr,must:Wr,us:Wr,me:Wr,he:Wr,she:Wr,it:Wr,being:Wr},afterWords:{the:Wr,me:Wr,you:Wr,him:Wr,her:Wr,them:Wr,it:Wr,a:Wr,an:Wr,up:Wr,down:Wr,by:Wr,out:Wr,off:Wr,when:Wr,all:Wr,to:Wr,because:Wr,although:Wr,before:Wr,how:Wr,otherwise:Wr,though:Wr,yet:Wr}};const qr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Rr={beforeTags:Object.assign({},Cr.beforeTags,Kr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Cr.afterTags,Kr.afterTags,qr.afterTags),beforeWords:Object.assign({},Cr.beforeWords,Kr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Cr.afterWords,Kr.afterWords,{to:void 0})};const Ur={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Zr={},Qr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},_r={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Xr={beforeTags:Object.assign({},Br.beforeTags,Vr.beforeTags,Ur),afterTags:Object.assign({},Br.afterTags,Vr.afterTags,Zr),beforeWords:Object.assign({},Br.beforeWords,Vr.beforeWords,Qr),afterWords:Object.assign({},Br.afterWords,Vr.afterWords,_r)},Yr={beforeTags:Object.assign({},Kr.beforeTags,Vr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Kr.afterTags,Vr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Kr.beforeWords,Vr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Kr.afterWords,Vr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ao={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ro={beforeTags:Object.assign({},to.beforeTags,ao.beforeTags),afterTags:Object.assign({},to.afterTags,ao.afterTags),beforeWords:Object.assign({},to.beforeWords,ao.beforeWords),afterWords:Object.assign({},to.afterWords,ao.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Or,"Adj|Noun":$r,"Adj|Past":Lr,"Adj|Present":Rr,"Noun|Verb":Yr,"Noun|Gerund":Xr,"Person|Noun":{beforeTags:Object.assign({},Vr.beforeTags,to.beforeTags),afterTags:Object.assign({},Vr.afterTags,to.afterTags),beforeWords:Object.assign({},Vr.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Vr.afterWords,to.afterWords)},"Person|Date":ro,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,Kr.beforeTags),afterTags:Object.assign({},to.afterTags,Kr.afterTags),beforeWords:Object.assign({},to.beforeWords,Kr.beforeWords),afterWords:Object.assign({},to.afterWords,Kr.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const go="Adjective",mo="Infinitive",po="PresentTense",fo="Singular",bo="PastTense",yo="Adverb",vo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",Eo="Modal",jo="Participle";var Io=[null,null,{ea:fo,ia:Po,ic:go,ly:yo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":yo,"'ll":Eo,"'re":"Copula",azy:go,eer:Po,end:ko,ped:bo,ffy:go,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:go,mum:go,nes:po,nny:go,ous:go,que:go,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:po,eld:bo,ken:jo,ven:jo,ten:jo,ect:mo,ict:mo,ign:mo,ful:go,bal:go},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:go,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:po,ends:ko,enko:Ao,ette:fo,wner:fo,fies:po,fore:yo,gate:mo,gone:go,ices:vo,ints:vo,ruct:mo,ines:vo,ions:vo,less:go,llen:go,made:go,nsen:Ao,oses:po,ould:Eo,some:go,sson:Ao,tion:fo,tage:Po,ique:fo,tive:go,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:go,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:go,nary:go},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:vo,bound:go,ettes:vo,fully:yo,ishes:po,ities:vo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:vo,rough:go,tches:po,tieth:"Ordinal",tures:vo,wards:yo,where:yo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:go,borne:go,gnant:go,inant:go,igent:go,atory:go,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const Go="Adjective",No="Noun",Do="Verb";var xo=[null,null,{},{neo:No,bio:No,"de-":Do,"re-":Do,"un-":Do},{anti:No,auto:No,faux:Go,hexa:No,kilo:No,mono:No,nano:No,octa:No,poly:No,semi:Go,tele:No,"pro-":Go,"mis-":Do,"dis-":Do,"pre-":Go},{anglo:No,centi:No,ethno:No,ferro:No,grand:No,hepta:No,hydro:No,intro:No,macro:No,micro:No,milli:No,nitro:No,penta:No,quasi:Go,radio:No,tetra:No,"omni-":Go,"post-":Go},{pseudo:Go,"extra-":Go,"hyper-":Go,"inter-":Go,"intra-":Go,"deca-":Go},{electro:No}];const Co="Adjective",To="Infinitive",Bo="PresentTense",Oo="Singular",zo="PastTense",Vo="Adverb",Fo="Expression",$o="Actor",So="Verb",Ho="Noun",Jo="LastName";var Mo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,Oo,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Oo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,To,"antagonize"],[/.[^aeiou]ise$/,To,"antagonise"],[/.[aeiou]te$/,To,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Fo,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Oo,"magnesium"],[/[^aeiou]ism$/,Oo,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,$o,"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$/,Oo],[/[^i]fer$/,To],[/.[^aeiou][ao]pher$/,$o],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Oo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,Oo],[/[a-z]'s$/,Ho],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Oo],[/[rdntkbhs]ly$/,Vo],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,Vo],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Oo]]};const Lo="Verb",Wo="Noun";var Ko={leftTags:[["Adjective",Wo],["Possessive",Wo],["Determiner",Wo],["Adverb",Lo],["Pronoun",Lo],["Value",Wo],["Ordinal",Wo],["Modal",Lo],["Superlative",Wo],["Demonym",Wo],["Honorific","Person"]],leftWords:[["i",Lo],["first",Wo],["it",Lo],["there",Lo],["not",Lo],["because",Wo],["if",Wo],["but",Wo],["who",Lo],["this",Wo],["his",Wo],["when",Wo],["you",Lo],["very","Adjective"],["old",Wo],["never",Lo],["before",Wo],["a","Singular"],["the",Wo],["been",Lo]],rightTags:[["Copula",Wo],["PastTense",Wo],["Conjunction",Wo],["Modal",Wo]],rightWords:[["there",Lo],["me",Lo],["man","Adjective"],["only",Lo],["him",Lo],["it",Lo],["were",Wo],["took",Wo],["himself",Lo],["went",Wo],["who",Wo],["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"},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"},Uo={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"},Zo={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"},Qo={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 _o=/^.([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(_o);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(_o,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Yo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Yo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ai=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 ri=ni({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"}),oi=ni(Zo),ii=ni(Ro),si=ni(Uo),li=ai(ri),ui=ai(oi),ci=ai(ii),di=ai(si),hi=ni(qo),gi=ni(Qo);var mi={fromPast:ri,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:di,toComparative:hi,toSuperlative:gi,fromComparative:ai(hi),fromSuperlative:ai(gi)},pi=["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),{}),fi=[[/([^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,""]],bi=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 vi=yi,wi=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 ki={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},Ei=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 ji="ically",Ii=new Set(["analyt"+ji,"chem"+ji,"class"+ji,"clin"+ji,"crit"+ji,"ecolog"+ji,"electr"+ji,"empir"+ji,"frant"+ji,"grammat"+ji,"ident"+ji,"ideolog"+ji,"log"+ji,"mag"+ji,"mathemat"+ji,"mechan"+ji,"med"+ji,"method"+ji,"method"+ji,"mus"+ji,"phys"+ji,"phys"+ji,"polit"+ji,"pract"+ji,"rad"+ji,"satir"+ji,"statist"+ji,"techn"+ji,"technolog"+ji,"theoret"+ji,"typ"+ji,"vert"+ji,"whims"+ji]),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"}],Ni=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"]),Di={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var xi=function(e){return e.endsWith("ly")?Ii.has(e)?e.replace(/ically/,"ical"):Ni.has(e)?null:Di.hasOwnProperty(e)?Di[e]:Ei(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"},{},{},{}],Ti={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Bi=function(e){if(Ti.hasOwnProperty(e))return Ti[e];let t=Ei(e,Ci);return t||e+"ly"};const Oi=[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"},Vi=new Set(["terrible","annoying"]),Fi=function(e,t){const n=t.two.models.toSuperlative;return Xo(e,n)},$i=function(e,t){const n=t.two.models.toComparative;return Xo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:Fi,adjToComparative:$i,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:xi,adjToAdverb:Bi,adjToNoun:function(e){if(zi.hasOwnProperty(e))return zi[e];if(Vi.has(e))return null;let t=Ei(e,Oi);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 Mi=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=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 Wi={two:{models:mi}};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"},qi=function(e,t){const n={model:t,methods:Hi};let{lex:a,_multi:r}=Hi.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=Ai(e,Wi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Ki[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(r,a,!1),"Adj|Present"===o&&(Ri(r,a,!0),function(e,t,n){let a=Fi(e,n);t[a]=t[a]||"Superlative";let r=$i(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(r,Wi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(r,Wi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=qi(n,t)};let Zi={one:{_multiCache:{},lexicon:Gr},two:{irregularPlurals:gr,models:mi,suffixPatterns:Io,prefixPatterns:xo,endsWith:Mo,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:Nr,clues:ho,uncountable:{},orgWords:pi}};Zi=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=Ui(e.two.switches,e),e=Li(e),e=Ji(e)}(Zi);var Qi=Zi;const _i=/^(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(_i.test(r.normal)){let e=r.normal.replace(_i,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},Yi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const rs=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(as(e.normal)?Yi(e,"Plural","3-plural-guess"):Yi(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Yi(e,t,"3-verb-tense-guess")}}(a)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^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 hs=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>a.tags.has(e))?null:(os(e,t,n),a.tags.has("Noun")||a.tags.clear(),Yi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!ds[a.normal]?(Yi(a,"RomanNumeral","2-xvii"),!0):null};const gs=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 ms=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=gs(a.normal,n.two.suffixPatterns);if(null!==e)return Yi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=gs(a.implicit,n.two.suffixPatterns),null!==e))return Yi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ps=/['‘’‛‵′`´]/,fs=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 Yi(a,e,"2-prefix"),a.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"]),ws=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")},ks=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var As=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(ws(r)||ws(o))return Yi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(ks(r)||ks(o))return Yi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Yi(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 Yi(n,"Year","2-tagYear-noun")}}}return null};const Es=/^[A-Z]('s|,)?$/,js=/^[A-Z-]+$/,Is=/([A-Z]\.)+[A-Z]?,?$/,Gs=/[A-Z]{2,}('s|,)?$/,Ns=/([a-z]\.)+[a-z]\.?$/,Ds={I:!0,A:!0};var xs=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===js.test(n)||n.length>5||Ds.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Is.test(n)&&!0!==Ns.test(n)&&!0!==Es.test(n)&&!0!==Gs.test(n))}(a,n)?(a.tags.clear(),Yi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ds.hasOwnProperty(a.text)&&Es.test(a.text)?(a.tags.clear(),Yi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Yi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&js.test(a.text)&&a.text.length<=6?(Yi(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},Ts=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: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||Ts(e[t-1],a),l=l||Ts(e[t+1],i),l)return Yi(s,l,"3-[neighbour]"),os(e,t,n),e[t].confidence=.2,!0}return null};const Os=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 a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Os(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Os(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Vs=function(e,t,n){0===e[t].tags.size&&(Yi(e[t],"Noun","3-[fallback]"),os(e,t,n),e[t].confidence=.1)};const Fs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,$s=(e,t,n)=>0!==t||e[1]?null:n;var Ss={"Adj|Gerund":(e,t)=>Fs(e,t),"Adj|Noun":(e,t)=>Fs(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)||$s(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Fs(e,t)||$s(e,t,"PresentTense"),"Person|Noun":(e,t)=>Fs(e,t),"Person|Verb":(e,t)=>0!==t&&Fs(e,t)};const Hs="undefined"!=typeof process&&process.env?process.env:self.env||{},Js=/^(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&&Hs.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&&Hs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},Ws={tagSwitch:Xi,checkSuffix:ms,checkRegex:bs,checkCase:hs,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")&&(Yi(o,"Verb","3-[prefix]"),Yi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Yi(o,"Adjective","3-[prefix]"),Yi(o,"Prefix","3-[prefix]")))},checkYear:As},Ks={checkAcronym:xs,neighbours:Bs,orgWords:zs,nounFallback:Vs,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(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,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||Ls(e[t-1],n.beforeTags,r),o=o||Ls(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Ss[o]&&(u=Ss[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Hs.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)},Zs={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: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 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 a=e[t+1];if(a&&a.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"]},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 hl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},gl={in:!0,by:!0,for:!0};var ml=(e,t)=>{let n=e[t];if(hl.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===gl[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 pl=/'/,fl=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)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>dl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},yl=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((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===pl.test(a[o].normal)&&([,i]=a[o].normal.split(pl));let s=null;bl.hasOwnProperty(i)&&(s=bl[i](a,o,t)),s&&(s=yl(s,e),il(n,[r,o],s),fl(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=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=rl},hooks:["contractionTwo"]};const wl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",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:"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: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:"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"}]),Al=null;var El={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;Al=Al||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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},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)},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},Gl={api:function(e){e.prototype.swap=Il}};return m.plugin(tl),m.plugin(vl),m.plugin(El),m.plugin(Gl),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 35b52db33..618d69553 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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=(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 j=function(e){if(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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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},C.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 T=C;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;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 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,T,z,F,M,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"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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 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};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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e)){return e.fullPointer.length>0}if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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,Ue=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Re=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Ze=function(e){let t=e.split(We),n=[];t.forEach(e=>{Ue(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Re(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ue(e)?a.push(e):a=a.concat(e.split(qe))}),a=Re(a),a};const Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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){jt(e,e.t).length=a-e.t}return 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){jt(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 Ct=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 Tt=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 Bt=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 Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Tt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Dt(r))return null}else{if(!Nt(r))return null}else{if(!It(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,""),Ut.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&&Rt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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 gn={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},bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=bn(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 vn={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:bn,splitAll:yn}}};var wn=function(e,t){let n=e.concat(t),a=bn(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=>fn(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 Pn=function(e,t){let n=bn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},En=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},jn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.difference=jn.not,jn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},jn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=En(e,this.document),this.update(e)};var In={methods:vn,api:function(e){Object.assign(e.prototype,jn)}};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 Nn=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),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(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)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Dn=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 xn=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.find(e=>a.has(e)))})};var Cn=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 Tn=function(e,t){let[n,a,r]=e.pointer,o=t[n],i=a>4?a-2:0,s=e.tag||"";var l;if(l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #")),!s||o.every(e=>e.tags.has(s)))return;let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const d=e=>""+e+"";for(;ir+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>a&&i{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=Nn(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=Dn(r,t.hooks);return o=xn(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),Cn(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;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 r=e.reason||e.match;l.DEBUG_TAGS&&Tn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Bn(u,e.tag,a))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,r),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,r),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const zn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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.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[0],t,r),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),zn.test(t))!function(e,t,n,a){let r=t.split(zn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Fn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,a))};var Sn=$n;var Hn=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=>Jn({id:e})),t}return[Jn({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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Un=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Ln(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=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):(Wn(t=e).forEach(Jn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Wn(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},Zn=function(e){let t=Wn(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},Qn={text:Rn,txt:Rn,array:Zn,flat:Zn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},Xn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Jn({});return new g$1(t)}add(e,t={}){if(Kn(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 Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(this.json);let e=Wn(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 Xn(this.json),_n(this.json,e)}debug(){return Xn(this.json),_n(this.json,"debug"),this}}const ea=function(e){let t=Un(e);return new g$1(t)};ea.prototype.plugin=function(e){e(this)};var ta={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const na=function(e){if(ta.hasOwnProperty(e.id))return ta[e.id];if(ta.hasOwnProperty(e.is))return ta[e.is];let t=e._cache.parents.find(e=>ta[e]);return ta[t]};var aa=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:na(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 ra=function(e){return e?"string"==typeof e?[e]:e:[]};var oa=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=ra(e[t].children),e[t].not=ra(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 ia={one:{setTag:Sn,unTag:Hn,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=oa(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 ea(t).cache().fillDown().out("array")}(Object.assign({},t,e));return aa(n)}}};const sa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var la={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||""),sa(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 sa(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 ua=function(e){Object.assign(e.prototype,la)};var ca={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 da=new Set(["Auxiliary","Possessive"]);var ha={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(da.has(e)||!t.hasOwnProperty(n))return 1;if(da.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:ia,api:ua,lib:ca};const ga=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ma=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var pa=function(e){let t=[],n=e.split(ma);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 Ba=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Oa=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,za=/['’]/,Va=/^[a-z]\.([a-z]\.)+/i,Fa=/^[-+.][0-9]/,$a=/^'[0-9]{2}/;var Sa=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ba,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fa.test(e)?"'"===n&&$a.test(e)?(n="",t):"":(n="",t)))).replace(Oa,r=>(a=r,za.test(r)&&/[sn]['’]$/.test(t)&&!1===za.test(n)?(a=a.replace(za,""),"'"):!0===Va.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Ha=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 Ja=/([A-Z]\.)+[A-Z]?,?$/,Ma=/^[A-Z]\.,?$/,La=/[A-Z]{2,}('s|,)?$/,Wa=/([a-z]\.)+[a-z]\.?$/;var Ka=function(e){return function(e){return!0===Ja.test(e)||!0===Wa.test(e)||!0===Ma.test(e)||!0===La.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var qa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ha(a),a=n(a,t),a=Ka(a),e.normal=a};var Ua={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:Aa,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(Ca);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=Na(n),n=Ia(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Sa(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})}}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Za={},Qa={};[[["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=>{Za[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])})});var _a=["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 Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Ya={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){Ya[t]=e}))}));const er=/\//,tr=/[a-z]\.[a-z]/i,nr=/[0-9]/;var ar=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])),er.test(n)&&!tr.test(n)&&!nr.test(n)){let t=n.split(er);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const rr=/^\p{Letter}+-\p{Letter}+$/u;var or=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"),rr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var ir=function(e){let t=0,n=0,a=e.document;for(let e=0;esr(e,ar),machine:e=>sr(e,or),normal:e=>sr(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 dr={safe:!0,min:3};var hr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ur},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},dr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=cr(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(pn),m.extend(St),m.extend(In),m.extend(ha),m.plugin(be),m.extend(lr),m.plugin(f),m.extend(De),m.extend(hr),m.extend(Pe),m.extend(On);var gr={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"},mr={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 pr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",fr=pr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var br=function(e){if(void 0!==fr[e])return fr[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 yr=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=wr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=kr(mr[e]);jr.test(e)?Object.keys(t).forEach(t=>{if(Gr[t]=e,"Noun|Verb"===e){let e=Er(t,Nr);Gr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ir[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ir[e]="Emoticon"),delete Ir[""],delete Ir.null,delete Ir[" "];const Dr="Adjective";var xr={beforeTags:{Determiner:Dr,Possessive:Dr},afterTags:{Adjective:Dr},beforeWords:{seem:Dr,seemed:Dr,seems:Dr,feel:Dr,feels:Dr,felt:Dr,appear:Dr,appears:Dr,appeared:Dr,also:Dr,over:Dr,under:Dr,too:Dr,it:Dr,but:Dr,still:Dr,really:Dr,quite:Dr,well:Dr,very:Dr,deeply:Dr,profoundly:Dr,extremely:Dr,so:Dr,badly:Dr,mostly:Dr,totally:Dr,awfully:Dr,rather:Dr,nothing:Dr,something:Dr,anything:Dr},afterWords:{too:Dr,also:Dr,or:Dr}};const Cr="Gerund";var Tr={beforeTags:{Adverb:Cr,Preposition:Cr,Conjunction:Cr},afterTags:{Adverb:Cr,Possessive:Cr,Person:Cr,Pronoun:Cr,Determiner:Cr,Copula:Cr,Preposition:Cr,Conjunction:Cr,Comparative:Cr},beforeWords:{been:Cr,keep:Cr,continue:Cr,stop:Cr,am:Cr,be:Cr,me:Cr,began:Cr,start:Cr,starts:Cr,started:Cr,stops:Cr,stopped:Cr,help:Cr,helps:Cr,avoid:Cr,avoids:Cr,love:Cr,loves:Cr,loved:Cr,hate:Cr,hates:Cr,hated:Cr},afterWords:{you:Cr,me:Cr,her:Cr,him:Cr,them:Cr,their:Cr,it:Cr,this:Cr,there:Cr,on:Cr,about:Cr,for:Cr}};var Br={beforeTags:Object.assign({},xr.beforeTags,Tr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},xr.afterTags,Tr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},xr.beforeWords,Tr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},xr.afterWords,Tr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Or="Singular";var zr={beforeTags:{Determiner:Or,Possessive:Or,Acronym:Or,Noun:Or,Adjective:Or,PresentTense:Or,Gerund:Or,PastTense:Or,Infinitive:Or,Date:Or},afterTags:{Value:Or,Modal:Or,Copula:Or,PresentTense:Or,PastTense:Or,Demonym:Or},beforeWords:{the:Or,with:Or,without:Or,of:Or,for:Or,any:Or,all:Or,on:Or,cut:Or,cuts:Or,save:Or,saved:Or,saves:Or,make:Or,makes:Or,made:Or,minus:Or,plus:Or,than:Or,another:Or,versus:Or,neither:Or,favorite:Or,best:Or,daily:Or,weekly:Or,linear:Or,binary:Or,mobile:Or,lexical:Or,technical:Or,computer:Or,scientific:Or,formal:Or},afterWords:{of:Or,system:Or,aid:Or,method:Or,utility:Or,tool:Or,reform:Or,therapy:Or,philosophy:Or,room:Or,authority:Or,says:Or,said:Or,wants:Or,wanted:Or}};const Vr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fr={beforeTags:Object.assign({},xr.beforeTags,zr.beforeTags,Vr.beforeTags),afterTags:Object.assign({},xr.afterTags,zr.afterTags),beforeWords:Object.assign({},xr.beforeWords,zr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},xr.afterWords,zr.afterWords)};const $r={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Sr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Hr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Jr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Mr={beforeTags:Object.assign({},xr.beforeTags,$r),afterTags:Object.assign({},xr.afterTags,Sr),beforeWords:Object.assign({},xr.beforeWords,Hr),afterWords:Object.assign({},xr.afterWords,Jr)};const Lr="Infinitive";var Wr={beforeTags:{Modal:Lr,Adverb:Lr,Negative:Lr,Plural:Lr},afterTags:{Determiner:Lr,Adverb:Lr,Possessive:Lr,Preposition:Lr},beforeWords:{i:Lr,we:Lr,you:Lr,they:Lr,to:Lr,please:Lr,will:Lr,have:Lr,had:Lr,would:Lr,could:Lr,should:Lr,do:Lr,did:Lr,does:Lr,can:Lr,must:Lr,us:Lr,me:Lr,he:Lr,she:Lr,it:Lr,being:Lr},afterWords:{the:Lr,me:Lr,you:Lr,him:Lr,her:Lr,them:Lr,it:Lr,a:Lr,an:Lr,up:Lr,down:Lr,by:Lr,out:Lr,off:Lr,when:Lr,all:Lr,to:Lr,because:Lr,although:Lr,before:Lr,how:Lr,otherwise:Lr,though:Lr,yet:Lr}};const Kr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var qr={beforeTags:Object.assign({},xr.beforeTags,Wr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},xr.afterTags,Wr.afterTags,Kr.afterTags),beforeWords:Object.assign({},xr.beforeWords,Wr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},xr.afterWords,Wr.afterWords,{to:void 0})};const Ur={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Rr={},Zr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Qr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var _r={beforeTags:Object.assign({},Tr.beforeTags,zr.beforeTags,Ur),afterTags:Object.assign({},Tr.afterTags,zr.afterTags,Rr),beforeWords:Object.assign({},Tr.beforeWords,zr.beforeWords,Zr),afterWords:Object.assign({},Tr.afterWords,zr.afterWords,Qr)};var Xr={beforeTags:Object.assign({},Wr.beforeTags,zr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Wr.afterTags,zr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Wr.beforeWords,zr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Wr.afterWords,zr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Yr="Person";var eo={beforeTags:{Honorific:Yr,Person:Yr,Preposition:Yr},afterTags:{Person:Yr,ProperNoun:Yr,Verb:Yr},ownTags:{ProperNoun:Yr},beforeWords:{hi:Yr,hey:Yr,yo:Yr,dear:Yr,hello:Yr},afterWords:{said:Yr,says:Yr,told:Yr,tells:Yr,feels:Yr,felt:Yr,seems:Yr,thinks:Yr,thought:Yr,spends:Yr,spendt:Yr,plays:Yr,played:Yr,sing:Yr,sang:Yr,learn:Yr,learned:Yr,wants:Yr,wanted:Yr}};const to="Month",no={beforeTags:{Date:to,Value:to},afterTags:{Date:to,Value:to},beforeWords:{by:to,in:to,on:to,during:to,after:to,before:to,between:to,until:to,til:to,sometime:to,of:to,this:to,next:to,last:to,previous:to,following:to},afterWords:{sometime:to,in:to,of:to,until:to,the:to}};var ao={beforeTags:Object.assign({},eo.beforeTags,no.beforeTags),afterTags:Object.assign({},eo.afterTags,no.afterTags),beforeWords:Object.assign({},eo.beforeWords,no.beforeWords),afterWords:Object.assign({},eo.afterWords,no.afterWords)};const ro={Place:"Place"},oo={Place:"Place",Abbreviation:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const lo={"Adj|Gerund":Br,"Adj|Noun":Fr,"Adj|Past":Mr,"Adj|Present":qr,"Noun|Verb":Xr,"Noun|Gerund":_r,"Person|Noun":{beforeTags:Object.assign({},zr.beforeTags,eo.beforeTags),afterTags:Object.assign({},zr.afterTags,eo.afterTags),beforeWords:Object.assign({},zr.beforeWords,eo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},zr.afterWords,eo.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},eo.beforeTags,Wr.beforeTags),afterTags:Object.assign({},eo.afterTags,Wr.afterTags),beforeWords:Object.assign({},eo.beforeWords,Wr.beforeWords),afterWords:Object.assign({},eo.afterWords,Wr.afterWords)},"Person|Place":{beforeTags:Object.assign({},ro,eo.beforeTags),afterTags:Object.assign({},oo,eo.afterTags),beforeWords:Object.assign({},io,eo.beforeWords),afterWords:Object.assign({},so,eo.afterWords)}},uo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};lo["Plural|Verb"]={beforeWords:uo(lo["Noun|Verb"].beforeWords,{}),afterWords:uo(lo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:uo(lo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:uo(lo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var co=lo;const ho="Adjective",go="Infinitive",mo="PresentTense",po="Singular",fo="PastTense",bo="Adverb",yo="Plural",vo="Verb",wo="LastName",ko="Participle";var Po=[null,null,{ea:po,ia:"Noun",ic:ho,ly:bo,"'n":vo,"'t":vo},{oed:fo,ued:fo,xed:fo," so":bo,"'ll":"Modal","'re":"Copula",azy:ho,eer:"Noun",end:vo,ped:fo,ffy:ho,ify:go,ing:"Gerund",ize:go,ibe:go,lar:ho,mum:ho,nes:mo,nny:ho,ous:ho,que:ho,rol:po,sis:po,ogy:po,oid:po,ian:po,zes:mo,eld:fo,ken:ko,ven:ko,ten:ko,ect:go,ict:go,ign:go,ful:ho,bal:ho},{amed:fo,aped:fo,ched:fo,lked:fo,rked:fo,reed:fo,nded:fo,mned:ho,cted:fo,dged:fo,ield:po,akis:wo,cede:go,chuk:wo,czyk:wo,ects:mo,ends:vo,enko:wo,ette:po,wner:po,fies:mo,fore:bo,gate:go,gone:ho,ices:yo,ints:yo,ruct:go,ines:yo,ions:yo,less:ho,llen:ho,made:ho,nsen:wo,oses:mo,ould:"Modal",some:ho,sson:wo,tion:po,tage:"Noun",ique:po,tive:ho,tors:"Noun",vice:po,lier:po,fier:po,wned:fo,gent:po,tist:po,pist:po,rist:po,mist:po,yist:po,vist:po,lite:po,site:po,rite:po,mite:po,bite:po,mate:po,date:po,ndal:po,vent:po,uist:po,gist:po,note:po,cide:po,wide:ho,vide:go,ract:go,duce:go,pose:go,eive:go,lyze:go,lyse:go,iant:ho,nary:ho},{elist:po,holic:po,phite:po,tized:fo,urned:fo,eased:fo,ances:yo,bound:ho,ettes:yo,fully:bo,ishes:mo,ities:yo,marek:wo,nssen:wo,ology:"Noun",osome:po,tment:po,ports:yo,rough:ho,tches:mo,tieth:"Ordinal",tures:yo,wards:bo,where:bo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:po,scent:po,onist:po,anist:po,alist:po,olist:po,icist:po,ounce:go,iable:ho,borne:ho,gnant:ho,inant:ho,igent:ho,atory:ho,rient:po,dient:po},{auskas:wo,parent:po,cedent:po,ionary:po,cklist:po,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:wo,borough:"Place",sdottir:wo}];const Ao="Adjective";var Eo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ao,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ao,tele:"Noun","pro-":Ao,"mis-":"Verb","dis-":"Verb","pre-":Ao},{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:Ao,radio:"Noun",tetra:"Noun","omni-":Ao,"post-":Ao},{pseudo:Ao,"extra-":Ao,"hyper-":Ao,"inter-":Ao,"intra-":Ao,"deca-":Ao},{electro:"Noun"}];const jo="Adjective",Io="Infinitive",Go="PresentTense",No="Singular",Do="PastTense",xo="Expression",Co="LastName";var To={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Co],[/.[^aeiou]ica$/,No,"harmonica"],[/^([hyj]a+)+$/,xo,"haha"]],c:[[/.[^aeiou]ic$/,jo]],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$/,No,"steward"],[/[aeiou][^aeiou]id$/,jo,""],[/.[vrl]id$/,jo,"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$/,jo,"fixable"],[/.[^aeiou]eable$/,jo,"maleable"],[/.[ts]ive$/,jo,"festive"],[/[a-z]-like$/,jo,"woman-like"]],h:[[/.[^aeiouf]ish$/,jo,"cornish"],[/.v[iy]ch$/,Co,"..ovich"],[/^ug?h+$/,xo,"ughh"],[/^uh[ -]?oh$/,xo,"uhoh"],[/[a-z]-ish$/,jo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Co,"polish-male"]],k:[[/^(k){2}$/,xo,"kkkk"]],l:[[/.[gl]ial$/,jo,"familial"],[/.[^aeiou]ful$/,jo,"fitful"],[/.[nrtumcd]al$/,jo,"natal"],[/.[^aeiou][ei]al$/,jo,"familial"]],m:[[/.[^aeiou]ium$/,No,"magnesium"],[/[^aeiou]ism$/,No,"schism"],[/^[hu]m+$/,xo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,jo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,xo,"noooo"],[/^(yo)+$/,xo,"yoo"],[/^wo{2,}[pt]?$/,xo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,No],[/[^i]fer$/,Io],[/.[^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$/,Go],[/.[rln]ates$/,Go],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,No],[/.[aeiou]sks$/,Go],[/.[aeiou]kes$/,Go],[/[aeiou][^aeiou]is$/,No],[/[a-z]'s$/,"Noun"],[/^yes+$/,xo]],v:[[/.[^aeiou][ai][kln]ov$/,Co]],y:[[/.[cts]hy$/,jo],[/.[st]ty$/,jo],[/.[tnl]ary$/,jo],[/.[oe]ry$/,No],[/[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$/,No]]};const Bo="Verb",Oo="Noun";var zo={leftTags:[["Adjective",Oo],["Possessive",Oo],["Determiner",Oo],["Adverb",Bo],["Pronoun",Bo],["Value",Oo],["Ordinal",Oo],["Modal",Bo],["Superlative",Oo],["Demonym",Oo],["Honorific","Person"]],leftWords:[["i",Bo],["first",Oo],["it",Bo],["there",Bo],["not",Bo],["because",Oo],["if",Oo],["but",Oo],["who",Bo],["this",Oo],["his",Oo],["when",Oo],["you",Bo],["very","Adjective"],["old",Oo],["never",Bo],["before",Oo],["a","Singular"],["the",Oo],["been",Bo]],rightTags:[["Copula",Oo],["PastTense",Oo],["Conjunction",Oo],["Modal",Oo]],rightWords:[["there",Bo],["me",Bo],["man","Adjective"],["only",Bo],["him",Bo],["it",Bo],["were",Oo],["took",Oo],["himself",Bo],["went",Oo],["who",Oo],["jr","Person"]]},Vo={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"},Fo={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"},So={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"},Ho={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 Jo=/^.([0-9]+)/;var Mo=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(Jo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Jo,"")}(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},Wo=/^([0-9]+)/,Ko=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Wo);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(Wo,"")]}(n[0],n[1])})};var qo=function(e={}){return(e=Object.assign({},e)).rules=Ko(e.rules),e.rules=Lo(e.rules),e.rev&&(e.rev=Ko(e.rev),e.rev=Lo(e.rev)),e.exceptions=Ko(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Uo=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 Ro=qo({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=qo(So),Qo=qo(Fo),_o=qo($o),Xo=Uo(Ro),Yo=Uo(Zo),ei=Uo(Qo),ti=Uo(_o),ni=qo(Vo),ai=qo(Ho);var ri={fromPast:Ro,fromPresent:Zo,fromGerund:Qo,fromParticiple:_o,toPast:Xo,toPresent:Yo,toGerund:ei,toParticiple:ti,toComparative:ni,toSuperlative:ai,fromComparative:Uo(ni),fromSuperlative:Uo(ai)},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),{}),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,""]];var si=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(li[t].forEach(n=>e[n]=t),e),{});var ui=li;var ci=function(e){let t=e.substring(e.length-3);if(!0===ui.hasOwnProperty(t))return ui[t];let n=e.substring(e.length-2);return!0===ui.hasOwnProperty(n)?ui[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const di={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var hi=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)),di.hasOwnProperty(e))c=di[e];else if("Participle"===n)c=Mo(l,i);else if("PastTense"===n)c=Mo(l,a);else if("PresentTense"===n)c=Mo(l,r);else{if("Gerund"!==n)return e;c=Mo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var gi=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:Mo(i,n),PresentTense:Mo(i,a),Gerund:Mo(i,r),FutureTense:"will "+e},u=Mo(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var mi=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 pi="ically",fi=new Set(["analyt"+pi,"chem"+pi,"class"+pi,"clin"+pi,"crit"+pi,"ecolog"+pi,"electr"+pi,"empir"+pi,"frant"+pi,"grammat"+pi,"ident"+pi,"ideolog"+pi,"log"+pi,"mag"+pi,"mathemat"+pi,"mechan"+pi,"med"+pi,"method"+pi,"method"+pi,"mus"+pi,"phys"+pi,"phys"+pi,"polit"+pi,"pract"+pi,"rad"+pi,"satir"+pi,"statist"+pi,"techn"+pi,"technolog"+pi,"theoret"+pi,"typ"+pi,"vert"+pi,"whims"+pi]),bi=[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"}],yi=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"]),vi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var wi=function(e){return e.endsWith("ly")?fi.has(e)?e.replace(/ically/,"ical"):yi.has(e)?null:vi.hasOwnProperty(e)?vi[e]:mi(e,bi)||e:null};const ki=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Pi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ai=function(e){if(Pi.hasOwnProperty(e))return Pi[e];let t=mi(e,ki);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"}],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"},Ii=new Set(["terrible","annoying"]);const Gi=function(e,t){const n=t.two.models.toSuperlative;return Mo(e,n)},Ni=function(e,t){const n=t.two.models.toComparative;return Mo(e,n)};var Di={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 xi={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===Di.hasOwnProperty(i)&&Di[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Er,nounToSingular:si,verbToInfinitive:hi,getTense:ci,verbConjugate:gi,adjToSuperlative:Gi,adjToComparative:Ni,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Mo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Mo(e,n)},advToAdjective:wi,adjToAdverb:Ai,adjToNoun:function(e){if(ji.hasOwnProperty(e))return ji[e];if(Ii.has(e))return null;let t=mi(e,Ei);return t||e+"ness"}}}};var Ci=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 Ti=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Bi=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=Ti(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ti(a,"Infinitive","Verb"),Object.assign(s,l),l=Ti(r,"Infinitive","Gerund"),Object.assign(s,l),l=Ti(o,"Adjective","Superlative"),Object.assign(s,l),l=Ti(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Oi={two:{models:ri}};const zi={"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"},Vi=function(e,t){const n={model:t,methods:xi};let{lex:a,_multi:r}=xi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Fi=function(e,t,n){let a=gi(e,Oi);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]=zi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Fi(r,a,!1),"Adj|Present"===o&&(Fi(r,a,!0),function(e,t,n){let a=Gi(e,n);t[a]=t[a]||"Superlative";let r=Ni(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=hi(r,Oi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=hi(r,Oi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Vi(n,t)};let Si={one:{_multiCache:{},lexicon:Ir},two:{irregularPlurals:gr,models:ri,suffixPatterns:Po,prefixPatterns:Eo,endsWith:To,neighbours:zo,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:Gr,clues:co,uncountable:{},orgWords:oi}};Si=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=Vi(e.one.lexicon,e)).one.lexicon,e),e=$i(e.two.switches,e),e=Bi(e),e=Ci(e)}(Si);var Hi=Si;const Ji=/^(under|over|mis|re|un|dis|semi)-?/;var Mi=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(Ji.test(r.normal)){let e=r.normal.replace(Ji,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Li=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 Wi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Ki=new Set(["formulas","koalas","israelis","menus"]),qi=["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 Ui=function(e){if(!e||e.length<=3)return!1;if(Ki.has(e))return!0;let t=e[e.length-1];return Wi.hasOwnProperty(t)?Wi[t].find(t=>e.endsWith(t)):"s"===t&&!qi.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Zi=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(Ui(e.normal)?Li(e,"Plural","3-plural-guess"):Li(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&&Li(e,t,"3-verb-tense-guess")}}(a)};const Qi=/^\p{Lu}[\p{Ll}'’]/u,_i=/[0-9]/,Xi=["Date","Month","WeekDay","Unit"],Yi=/^[IVXLCDM]{2,}$/,es=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ts={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ns=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===Qi.test(o)&&!1===_i.test(o)?Xi.find(e=>a.tags.has(e))?null:(Zi(e,t,n),a.tags.has("Noun")||a.tags.clear(),Li(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Yi.test(o)&&es.test(o)&&!ts[a.normal]?(Li(a,"RomanNumeral","2-xvii"),!0):null};const as=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 rs=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=as(a.normal,n.two.suffixPatterns);if(null!==e)return Li(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=as(a.implicit,n.two.suffixPatterns),null!==e))return Li(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const os=/['‘’‛‵′`´]/,is=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 Li(a,e,"2-prefix"),a.confidence=.5,!0}return null};const us=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!!us.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},ds=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},hs=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 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 Li(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(ds(r)||ds(o))return Li(n,"Year","2-tagYear-close");if(hs(e[t-2])||hs(e[t+2]))return Li(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 Li(n,"Year","2-tagYear-noun")}}}return null};const ms=/^[A-Z]('s|,)?$/,ps=/^[A-Z-]+$/,fs=/([A-Z]\.)+[A-Z]?,?$/,bs=/[A-Z]{2,}('s|,)?$/,ys=/([a-z]\.)+[a-z]\.?$/,vs={I:!0,A:!0};var ws=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===ps.test(n)||n.length>5||vs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==fs.test(n)&&!0!==ys.test(n)&&!0!==ms.test(n)&&!0!==bs.test(n))}(a,n)?(a.tags.clear(),Li(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!vs.hasOwnProperty(a.text)&&ms.test(a.text)?(a.tags.clear(),Li(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Li(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&ps.test(a.text)&&a.text.length<=6?(Li(a,"Acronym","3-titlecase-acronym"),!0):null};const ks=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ps=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var As=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||ks(e[t-1],r),l=l||ks(e[t+1],o),l=l||Ps(e[t-1],a),l=l||Ps(e[t+1],i),l)return Li(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 js=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]&&Es(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Es(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Is=function(e,t,n){0===e[t].tags.size&&(Li(e[t],"Noun","3-[fallback]"),Zi(e,t,n),e[t].confidence=.1)};const Gs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ns=(e,t,n)=>0!==t||e[1]?null:n;var Ds={"Adj|Gerund":(e,t)=>Gs(e,t),"Adj|Noun":(e,t)=>Gs(e,t),"Adj|Past":(e,t)=>Gs(e,t),"Adj|Present":(e,t)=>Gs(e,t),"Noun|Gerund":(e,t)=>Gs(e,t),"Noun|Verb":(e,t)=>Gs(e,t)||Ns(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Gs(e,t)||Ns(e,t,"PresentTense"),"Person|Noun":(e,t)=>Gs(e,t),"Person|Verb":(e,t)=>0!==t&&Gs(e,t)};const xs="undefined"!=typeof process&&process.env?process.env:self.env||{},Cs=/^(under|over|mis|re|un|dis|semi)-?/,Ts=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&xs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Bs=(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&&xs.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Os={tagSwitch:Mi,checkSuffix:rs,checkRegex:ss,checkCase:ns,checkPrefix:ls,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")&&(Li(o,"Verb","3-[prefix]"),Li(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Li(o,"Adjective","3-[prefix]"),Li(o,"Prefix","3-[prefix]")))},checkYear:gs},zs={checkAcronym:ws,neighbours:As,orgWords:js,nounFallback:Is,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(Cs.test(l)&&!o[l]&&(l=l.replace(Cs,"")),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=Ts(e[t+1],n.afterWords);return o=o||Ts(e[t-1],n.beforeWords),o=o||Bs(e[t-1],n.beforeTags,r),o=o||Bs(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Ds[o]&&(u=Ds[o](e,t)||u),u?(xs.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),r([s],u,n,null,"3-[variable]")):xs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Vs=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 Ss={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 Hs={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 _s=/'/;var Xs=function(e,t){let n=e[t].normal.split(_s)[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 Ys=/'/;var el=function(e,t){let n=e[t].normal.split(Ys)[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 tl=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 nl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},al={in:!0,by:!0,for:!0};var rl=(e,t)=>{let n=e[t];if(nl.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===al[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 ol=/'/,il=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)},sl={d:(e,t)=>el(e,t),t:(e,t)=>tl(e,t),s:(e,t,n)=>rl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Xs(e,t)},ll=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ul={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===ol.test(a[o].normal)&&([,i]=a[o].normal.split(ol));let s=null;sl.hasOwnProperty(i)&&(s=sl[i](a,o,t)),s&&(s=ll(s,e),Qs(n,[r,o],s),il(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=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=Rs},hooks:["contractionTwo"]};const cl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const dl=["i","we","they"];let hl=[].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:"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)",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: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:"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:"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:dl,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:dl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:dl,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 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:a}=t;gl=gl||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(gl),e.uncache(),e}},model:{two:{matches:hl}},hooks:["postTagger"]};var pl=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 fl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?pl(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 bl={api:function(e){e.prototype.swap=fl}};m.plugin(Ks),m.plugin(ul),m.plugin(ml),m.plugin(bl);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]);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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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=(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 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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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},C.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 T=C;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;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 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,T,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 Q=/'/,_=new Set(["what","how","when","where","why"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e)){return e.fullPointer.length>0}if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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 Ze=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 Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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){jt(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){jt(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 Ct=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 Tt=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 Bt=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 Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Tt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Dt(r))return null}else{if(!Gt(r))return null}else{if(!It(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},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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 gn={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},bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=bn(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 vn={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:bn,splitAll:yn}}};var wn=function(e,t){let n=e.concat(t),a=bn(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=>fn(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 Pn=function(e,t){let n=bn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},En=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},jn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.difference=jn.not,jn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},jn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=En(e,this.document),this.update(e)};var In={methods:vn,api:function(e){Object.assign(e.prototype,jn)}};const Nn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Nn(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Dn=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 xn=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.find(e=>a.has(e)))})};var Cn=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 Tn=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=Gn(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=Dn(r,t.hooks);return o=xn(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),Cn(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===Tn(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 On=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Vn=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(),On.test(t))!function(e,t,n,a){let r=t.split(On);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Vn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,a))};var $n=Fn;var Sn=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=>Hn({id:e})),t}return[Hn({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},Wn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=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:Mn(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Ln(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Ln(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},Un=function(e){let t=Ln(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},Zn={text:Rn,txt:Rn,array:Un,flat:Un},Qn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},_n=e=>{Ln(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Wn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Hn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Ln(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Ln(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 Ln(this.json)}fillDown(){var e;return e=this.json,Ln(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 Wn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){_n(this.json);let e=Ln(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 _n(this.json),Qn(this.json,e)}debug(){return _n(this.json),Qn(this.json,"debug"),this}}const Yn=function(e){let t=qn(e);return new g$1(t)};Yn.prototype.plugin=function(e){e(this)};var ea={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ta=function(e){if(ea.hasOwnProperty(e.id))return ea[e.id];if(ea.hasOwnProperty(e.is))return ea[e.is];let t=e._cache.parents.find(e=>ea[e]);return ea[t]};var na=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:ta(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 aa=function(e){return e?"string"==typeof e?[e]:e:[]};var ra=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=aa(e[t].children),e[t].not=aa(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 oa={one:{setTag:$n,unTag:Sn,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=ra(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 Yn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return na(n)}}};const ia=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sa={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||""),ia(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 ia(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 la=function(e){Object.assign(e.prototype,sa)};var ua={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 ca=new Set(["Auxiliary","Possessive"]);var da={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(ca.has(e)||!t.hasOwnProperty(n))return 1;if(ca.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:oa,api:la,lib:ua};const ha=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ga=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var ma=function(e){let t=[],n=e.split(ga);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 Ta=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ba=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Oa=/['’]/,za=/^[a-z]\.([a-z]\.)+/i,Va=/^[-+.][0-9]/,Fa=/^'[0-9]{2}/;var $a=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ta,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Va.test(e)?"'"===n&&Fa.test(e)?(n="",t):"":(n="",t)))).replace(Ba,r=>(a=r,Oa.test(r)&&/[sn]['’]$/.test(t)&&!1===Oa.test(n)?(a=a.replace(Oa,""),"'"):!0===za.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Sa=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 Ha=/([A-Z]\.)+[A-Z]?,?$/,Ja=/^[A-Z]\.,?$/,Ma=/[A-Z]{2,}('s|,)?$/,La=/([a-z]\.)+[a-z]\.?$/;var Wa=function(e){return function(e){return!0===Ha.test(e)||!0===La.test(e)||!0===Ja.test(e)||!0===Ma.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ka=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Sa(a),a=n(a,t),a=Wa(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:Pa,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(xa);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=Na(n),n=ja(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=$a(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=>{Ka(e,t)}),n})}}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ua={},Za={};[[["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=>{Ua[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])})});var Qa=["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 _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Xa[t]=e}))}));const Ya=/\//,er=/[a-z]\.[a-z]/i,tr=/[0-9]/;var nr=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])),Ya.test(n)&&!er.test(n)&&!tr.test(n)){let t=n.split(Ya);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ar=/^\p{Letter}+-\p{Letter}+$/u;var rr=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"),ar.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var or=function(e){let t=0,n=0,a=e.document;for(let e=0;eir(e,nr),machine:e=>ir(e,rr),normal:e=>ir(e,Ka),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 cr={safe:!0,min:3};var dr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=lr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},cr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=ur(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(pn),m.extend(St),m.extend(In),m.extend(da),m.plugin(be),m.extend(sr),m.plugin(f),m.extend(De),m.extend(dr),m.extend(Pe),m.extend(Bn);var hr={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"},gr={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 mr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",pr=mr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var fr=function(e){if(void 0!==pr[e])return pr[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 br=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=vr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=wr(gr[e]);Er.test(e)?Object.keys(t).forEach(t=>{if(Ir[t]=e,"Noun|Verb"===e){let e=Ar(t,Nr);Ir[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{jr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","jr[e]="Emoticon"),delete jr[""],delete jr.null,delete jr[" "];const Gr="Adjective";var Dr={beforeTags:{Determiner:Gr,Possessive:Gr},afterTags:{Adjective:Gr},beforeWords:{seem:Gr,seemed:Gr,seems:Gr,feel:Gr,feels:Gr,felt:Gr,appear:Gr,appears:Gr,appeared:Gr,also:Gr,over:Gr,under:Gr,too:Gr,it:Gr,but:Gr,still:Gr,really:Gr,quite:Gr,well:Gr,very:Gr,deeply:Gr,profoundly:Gr,extremely:Gr,so:Gr,badly:Gr,mostly:Gr,totally:Gr,awfully:Gr,rather:Gr,nothing:Gr,something:Gr,anything:Gr},afterWords:{too:Gr,also:Gr,or:Gr}};const xr="Gerund";var Cr={beforeTags:{Adverb:xr,Preposition:xr,Conjunction:xr},afterTags:{Adverb:xr,Possessive:xr,Person:xr,Pronoun:xr,Determiner:xr,Copula:xr,Preposition:xr,Conjunction:xr,Comparative:xr},beforeWords:{been:xr,keep:xr,continue:xr,stop:xr,am:xr,be:xr,me:xr,began:xr,start:xr,starts:xr,started:xr,stops:xr,stopped:xr,help:xr,helps:xr,avoid:xr,avoids:xr,love:xr,loves:xr,loved:xr,hate:xr,hates:xr,hated:xr},afterWords:{you:xr,me:xr,her:xr,him:xr,them:xr,their:xr,it:xr,this:xr,there:xr,on:xr,about:xr,for:xr}};var Tr={beforeTags:Object.assign({},Dr.beforeTags,Cr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Dr.afterTags,Cr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Dr.beforeWords,Cr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Dr.afterWords,Cr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Br="Singular";var Or={beforeTags:{Determiner:Br,Possessive:Br,Acronym:Br,Noun:Br,Adjective:Br,PresentTense:Br,Gerund:Br,PastTense:Br,Infinitive:Br,Date:Br},afterTags:{Value:Br,Modal:Br,Copula:Br,PresentTense:Br,PastTense:Br,Demonym:Br},beforeWords:{the:Br,with:Br,without:Br,of:Br,for:Br,any:Br,all:Br,on:Br,cut:Br,cuts:Br,save:Br,saved:Br,saves:Br,make:Br,makes:Br,made:Br,minus:Br,plus:Br,than:Br,another:Br,versus:Br,neither:Br,favorite:Br,best:Br,daily:Br,weekly:Br,linear:Br,binary:Br,mobile:Br,lexical:Br,technical:Br,computer:Br,scientific:Br,formal:Br},afterWords:{of:Br,system:Br,aid:Br,method:Br,utility:Br,tool:Br,reform:Br,therapy:Br,philosophy:Br,room:Br,authority:Br,says:Br,said:Br,wants:Br,wanted:Br}};const zr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Vr={beforeTags:Object.assign({},Dr.beforeTags,Or.beforeTags,zr.beforeTags),afterTags:Object.assign({},Dr.afterTags,Or.afterTags),beforeWords:Object.assign({},Dr.beforeWords,Or.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Dr.afterWords,Or.afterWords)};const Fr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},$r={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Sr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Hr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Jr={beforeTags:Object.assign({},Dr.beforeTags,Fr),afterTags:Object.assign({},Dr.afterTags,$r),beforeWords:Object.assign({},Dr.beforeWords,Sr),afterWords:Object.assign({},Dr.afterWords,Hr)};const Mr="Infinitive";var Lr={beforeTags:{Modal:Mr,Adverb:Mr,Negative:Mr,Plural:Mr},afterTags:{Determiner:Mr,Adverb:Mr,Possessive:Mr,Preposition:Mr},beforeWords:{i:Mr,we:Mr,you:Mr,they:Mr,to:Mr,please:Mr,will:Mr,have:Mr,had:Mr,would:Mr,could:Mr,should:Mr,do:Mr,did:Mr,does:Mr,can:Mr,must:Mr,us:Mr,me:Mr,he:Mr,she:Mr,it:Mr,being:Mr},afterWords:{the:Mr,me:Mr,you:Mr,him:Mr,her:Mr,them:Mr,it:Mr,a:Mr,an:Mr,up:Mr,down:Mr,by:Mr,out:Mr,off:Mr,when:Mr,all:Mr,to:Mr,because:Mr,although:Mr,before:Mr,how:Mr,otherwise:Mr,though:Mr,yet:Mr}};const Wr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Kr={beforeTags:Object.assign({},Dr.beforeTags,Lr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Dr.afterTags,Lr.afterTags,Wr.afterTags),beforeWords:Object.assign({},Dr.beforeWords,Lr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Dr.afterWords,Lr.afterWords,{to:void 0})};const qr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Rr={},Ur={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Zr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Qr={beforeTags:Object.assign({},Cr.beforeTags,Or.beforeTags,qr),afterTags:Object.assign({},Cr.afterTags,Or.afterTags,Rr),beforeWords:Object.assign({},Cr.beforeWords,Or.beforeWords,Ur),afterWords:Object.assign({},Cr.afterWords,Or.afterWords,Zr)};var _r={beforeTags:Object.assign({},Lr.beforeTags,Or.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Lr.afterTags,Or.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Lr.beforeWords,Or.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Lr.afterWords,Or.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Xr="Person";var Yr={beforeTags:{Honorific:Xr,Person:Xr,Preposition:Xr},afterTags:{Person:Xr,ProperNoun:Xr,Verb:Xr},ownTags:{ProperNoun:Xr},beforeWords:{hi:Xr,hey:Xr,yo:Xr,dear:Xr,hello:Xr},afterWords:{said:Xr,says:Xr,told:Xr,tells:Xr,feels:Xr,felt:Xr,seems:Xr,thinks:Xr,thought:Xr,spends:Xr,spendt:Xr,plays:Xr,played:Xr,sing:Xr,sang:Xr,learn:Xr,learned:Xr,wants:Xr,wanted:Xr}};const eo="Month",to={beforeTags:{Date:eo,Value:eo},afterTags:{Date:eo,Value:eo},beforeWords:{by:eo,in:eo,on:eo,during:eo,after:eo,before:eo,between:eo,until:eo,til:eo,sometime:eo,of:eo,this:eo,next:eo,last:eo,previous:eo,following:eo},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Yr.beforeTags,to.beforeTags),afterTags:Object.assign({},Yr.afterTags,to.afterTags),beforeWords:Object.assign({},Yr.beforeWords,to.beforeWords),afterWords:Object.assign({},Yr.afterWords,to.afterWords)};const ao={Place:"Place"},ro={Place:"Place",Abbreviation:"Place"},oo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const so={"Adj|Gerund":Tr,"Adj|Noun":Vr,"Adj|Past":Jr,"Adj|Present":Kr,"Noun|Verb":_r,"Noun|Gerund":Qr,"Person|Noun":{beforeTags:Object.assign({},Or.beforeTags,Yr.beforeTags),afterTags:Object.assign({},Or.afterTags,Yr.afterTags),beforeWords:Object.assign({},Or.beforeWords,Yr.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Or.afterWords,Yr.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Yr.beforeTags,Lr.beforeTags),afterTags:Object.assign({},Yr.afterTags,Lr.afterTags),beforeWords:Object.assign({},Yr.beforeWords,Lr.beforeWords),afterWords:Object.assign({},Yr.afterWords,Lr.afterWords)},"Person|Place":{beforeTags:Object.assign({},ao,Yr.beforeTags),afterTags:Object.assign({},ro,Yr.afterTags),beforeWords:Object.assign({},oo,Yr.beforeWords),afterWords:Object.assign({},io,Yr.afterWords)}},lo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};so["Plural|Verb"]={beforeWords:lo(so["Noun|Verb"].beforeWords,{}),afterWords:lo(so["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:lo(so["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:lo(so["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var uo=so;const co="Adjective",ho="Infinitive",go="PresentTense",mo="Singular",po="PastTense",fo="Adverb",bo="Plural",yo="Verb",vo="LastName",wo="Participle";var ko=[null,null,{ea:mo,ia:"Noun",ic:co,ly:fo,"'n":yo,"'t":yo},{oed:po,ued:po,xed:po," so":fo,"'ll":"Modal","'re":"Copula",azy:co,eer:"Noun",end:yo,ped:po,ffy:co,ify:ho,ing:"Gerund",ize:ho,ibe:ho,lar:co,mum:co,nes:go,nny:co,ous:co,que:co,rol:mo,sis:mo,ogy:mo,oid:mo,ian:mo,zes:go,eld:po,ken:wo,ven:wo,ten:wo,ect:ho,ict:ho,ign:ho,ful:co,bal:co},{amed:po,aped:po,ched:po,lked:po,rked:po,reed:po,nded:po,mned:co,cted:po,dged:po,ield:mo,akis:vo,cede:ho,chuk:vo,czyk:vo,ects:go,ends:yo,enko:vo,ette:mo,wner:mo,fies:go,fore:fo,gate:ho,gone:co,ices:bo,ints:bo,ruct:ho,ines:bo,ions:bo,less:co,llen:co,made:co,nsen:vo,oses:go,ould:"Modal",some:co,sson:vo,tion:mo,tage:"Noun",ique:mo,tive:co,tors:"Noun",vice:mo,lier:mo,fier:mo,wned:po,gent:mo,tist:mo,pist:mo,rist:mo,mist:mo,yist:mo,vist:mo,lite:mo,site:mo,rite:mo,mite:mo,bite:mo,mate:mo,date:mo,ndal:mo,vent:mo,uist:mo,gist:mo,note:mo,cide:mo,wide:co,vide:ho,ract:ho,duce:ho,pose:ho,eive:ho,lyze:ho,lyse:ho,iant:co,nary:co},{elist:mo,holic:mo,phite:mo,tized:po,urned:po,eased:po,ances:bo,bound:co,ettes:bo,fully:fo,ishes:go,ities:bo,marek:vo,nssen:vo,ology:"Noun",osome:mo,tment:mo,ports:bo,rough:co,tches:go,tieth:"Ordinal",tures:bo,wards:fo,where:fo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:mo,scent:mo,onist:mo,anist:mo,alist:mo,olist:mo,icist:mo,ounce:ho,iable:co,borne:co,gnant:co,inant:co,igent:co,atory:co,rient:mo,dient:mo},{auskas:vo,parent:mo,cedent:mo,ionary:mo,cklist:mo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:vo,borough:"Place",sdottir:vo}];const Po="Adjective";var Ao=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Po,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Po,tele:"Noun","pro-":Po,"mis-":"Verb","dis-":"Verb","pre-":Po},{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:Po,radio:"Noun",tetra:"Noun","omni-":Po,"post-":Po},{pseudo:Po,"extra-":Po,"hyper-":Po,"inter-":Po,"intra-":Po,"deca-":Po},{electro:"Noun"}];const Eo="Adjective",jo="Infinitive",Io="PresentTense",No="Singular",Go="PastTense",Do="Expression",xo="LastName";var Co={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,xo],[/.[^aeiou]ica$/,No,"harmonica"],[/^([hyj]a+)+$/,Do,"haha"]],c:[[/.[^aeiou]ic$/,Eo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Go,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Go,"rammed"],[/.[aeiou][sg]hed$/,Go,"gushed"],[/.[aeiou]red$/,Go,"hired"],[/.[aeiou]r?ried$/,Go,"hurried"],[/[^aeiou]ard$/,No,"steward"],[/[aeiou][^aeiou]id$/,Eo,""],[/.[vrl]id$/,Eo,"livid"],[/..led$/,Go,"hurled"],[/.[iao]sed$/,Go,""],[/[aeiou]n?[cs]ed$/,Go,""],[/[aeiou][rl]?[mnf]ed$/,Go,""],[/[aeiou][ns]?c?ked$/,Go,"bunked"],[/[aeiou]gned$/,Go],[/[aeiou][nl]?ged$/,Go],[/.[tdbwxyz]ed$/,Go],[/[^aeiou][aeiou][tvx]ed$/,Go],[/.[cdflmnprstv]ied$/,Go,"emptied"]],e:[[/.[lnr]ize$/,jo,"antagonize"],[/.[^aeiou]ise$/,jo,"antagonise"],[/.[aeiou]te$/,jo,"bite"],[/.[^aeiou][ai]ble$/,Eo,"fixable"],[/.[^aeiou]eable$/,Eo,"maleable"],[/.[ts]ive$/,Eo,"festive"],[/[a-z]-like$/,Eo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Eo,"cornish"],[/.v[iy]ch$/,xo,"..ovich"],[/^ug?h+$/,Do,"ughh"],[/^uh[ -]?oh$/,Do,"uhoh"],[/[a-z]-ish$/,Eo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,xo,"polish-male"]],k:[[/^(k){2}$/,Do,"kkkk"]],l:[[/.[gl]ial$/,Eo,"familial"],[/.[^aeiou]ful$/,Eo,"fitful"],[/.[nrtumcd]al$/,Eo,"natal"],[/.[^aeiou][ei]al$/,Eo,"familial"]],m:[[/.[^aeiou]ium$/,No,"magnesium"],[/[^aeiou]ism$/,No,"schism"],[/^[hu]m+$/,Do,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Eo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Do,"noooo"],[/^(yo)+$/,Do,"yoo"],[/^wo{2,}[pt]?$/,Do,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,No],[/[^i]fer$/,jo],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Eo],[/[aeiou].*ist$/,Eo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Io],[/.[rln]ates$/,Io],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,No],[/.[aeiou]sks$/,Io],[/.[aeiou]kes$/,Io],[/[aeiou][^aeiou]is$/,No],[/[a-z]'s$/,"Noun"],[/^yes+$/,Do]],v:[[/.[^aeiou][ai][kln]ov$/,xo]],y:[[/.[cts]hy$/,Eo],[/.[st]ty$/,Eo],[/.[tnl]ary$/,Eo],[/.[oe]ry$/,No],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Eo],[/...lly$/,"Adverb"],[/.[gk]y$/,Eo],[/[bszmp]{2}y$/,Eo],[/.[ai]my$/,Eo],[/[ea]{2}zy$/,Eo],[/.[^aeiou]ity$/,No]]};const To="Verb",Bo="Noun";var Oo={leftTags:[["Adjective",Bo],["Possessive",Bo],["Determiner",Bo],["Adverb",To],["Pronoun",To],["Value",Bo],["Ordinal",Bo],["Modal",To],["Superlative",Bo],["Demonym",Bo],["Honorific","Person"]],leftWords:[["i",To],["first",Bo],["it",To],["there",To],["not",To],["because",Bo],["if",Bo],["but",Bo],["who",To],["this",Bo],["his",Bo],["when",Bo],["you",To],["very","Adjective"],["old",Bo],["never",To],["before",Bo],["a","Singular"],["the",Bo],["been",To]],rightTags:[["Copula",Bo],["PastTense",Bo],["Conjunction",Bo],["Modal",Bo]],rightWords:[["there",To],["me",To],["man","Adjective"],["only",To],["him",To],["it",To],["were",Bo],["took",Bo],["himself",To],["went",Bo],["who",Bo],["jr","Person"]]},zo={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"},Vo={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"},Fo={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"},$o={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"},So={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 Ho=/^.([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],a=n.match(Ho);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Ho,"")}(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},Lo=/^([0-9]+)/,Wo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Lo);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(Lo,"")]}(n[0],n[1])})};var Ko=function(e={}){return(e=Object.assign({},e)).rules=Wo(e.rules),e.rules=Mo(e.rules),e.rev&&(e.rev=Wo(e.rev),e.rev=Mo(e.rev)),e.exceptions=Wo(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 Ro=Ko({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"}),Uo=Ko($o),Zo=Ko(Vo),Qo=Ko(Fo),_o=qo(Ro),Xo=qo(Uo),Yo=qo(Zo),ei=qo(Qo),ti=Ko(zo),ni=Ko(So);var ai={fromPast:Ro,fromPresent:Uo,fromGerund:Zo,fromParticiple:Qo,toPast:_o,toPresent:Xo,toGerund:Yo,toParticiple:ei,toComparative:ti,toSuperlative:ni,fromComparative:qo(ti),fromSuperlative:qo(ni)},ri=["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),{}),oi=[[/([^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 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(si[t].forEach(n=>e[n]=t),e),{});var li=si;var ui=function(e){let t=e.substring(e.length-3);if(!0===li.hasOwnProperty(t))return li[t];let n=e.substring(e.length-2);return!0===li.hasOwnProperty(n)?li[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ci={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var di=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=ui(e)),ci.hasOwnProperty(e))c=ci[e];else if("Participle"===n)c=Jo(l,i);else if("PastTense"===n)c=Jo(l,a);else if("PresentTense"===n)c=Jo(l,r);else{if("Gerund"!==n)return e;c=Jo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var hi=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:Jo(i,n),PresentTense:Jo(i,a),Gerund:Jo(i,r),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 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 mi="ically",pi=new Set(["analyt"+mi,"chem"+mi,"class"+mi,"clin"+mi,"crit"+mi,"ecolog"+mi,"electr"+mi,"empir"+mi,"frant"+mi,"grammat"+mi,"ident"+mi,"ideolog"+mi,"log"+mi,"mag"+mi,"mathemat"+mi,"mechan"+mi,"med"+mi,"method"+mi,"method"+mi,"mus"+mi,"phys"+mi,"phys"+mi,"polit"+mi,"pract"+mi,"rad"+mi,"satir"+mi,"statist"+mi,"techn"+mi,"technolog"+mi,"theoret"+mi,"typ"+mi,"vert"+mi,"whims"+mi]),fi=[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"}],bi=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"]),yi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var vi=function(e){return e.endsWith("ly")?pi.has(e)?e.replace(/ically/,"ical"):bi.has(e)?null:yi.hasOwnProperty(e)?yi[e]:gi(e,fi)||e:null};const wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ki={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Pi=function(e){if(ki.hasOwnProperty(e))return ki[e];let t=gi(e,wi);return t||e+"ly"};const Ai=[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"}],Ei={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"},ji=new Set(["terrible","annoying"]);const Ii=function(e,t){const n=t.two.models.toSuperlative;return Jo(e,n)},Ni=function(e,t){const n=t.two.models.toComparative;return Jo(e,n)};var Gi={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 Di={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===Gi.hasOwnProperty(i)&&Gi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Ar,nounToSingular:ii,verbToInfinitive:di,getTense:ui,verbConjugate:hi,adjToSuperlative:Ii,adjToComparative:Ni,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:vi,adjToAdverb:Pi,adjToNoun:function(e){if(Ei.hasOwnProperty(e))return Ei[e];if(ji.has(e))return null;let t=gi(e,Ai);return t||e+"ness"}}}};var 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 Ci=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Ti=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=Ci(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ci(a,"Infinitive","Verb"),Object.assign(s,l),l=Ci(r,"Infinitive","Gerund"),Object.assign(s,l),l=Ci(o,"Adjective","Superlative"),Object.assign(s,l),l=Ci(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Bi={two:{models:ai}};const Oi={"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"},zi=function(e,t){const n={model:t,methods:Di};let{lex:a,_multi:r}=Di.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Vi=function(e,t,n){let a=hi(e,Bi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Fi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Oi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Vi(r,a,!1),"Adj|Present"===o&&(Vi(r,a,!0),function(e,t,n){let a=Ii(e,n);t[a]=t[a]||"Superlative";let r=Ni(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=di(r,Bi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=di(r,Bi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=zi(n,t)};let $i={one:{_multiCache:{},lexicon:jr},two:{irregularPlurals:hr,models:ai,suffixPatterns:ko,prefixPatterns:Ao,endsWith:Co,neighbours:Oo,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:Ir,clues:uo,uncountable:{},orgWords:ri}};$i=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=zi(e.one.lexicon,e)).one.lexicon,e),e=Fi(e.two.switches,e),e=Ti(e),e=xi(e)}($i);var Si=$i;const Hi=/^(under|over|mis|re|un|dis|semi)-?/;var Ji=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(Hi.test(r.normal)){let e=r.normal.replace(Hi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Mi=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 Li={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Wi=new Set(["formulas","koalas","israelis","menus"]),Ki=["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(Wi.has(e))return!0;let t=e[e.length-1];return Li.hasOwnProperty(t)?Li[t].find(t=>e.endsWith(t)):"s"===t&&!Ki.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Ui=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(qi(e.normal)?Mi(e,"Plural","3-plural-guess"):Mi(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ui(e.normal);t&&Mi(e,t,"3-verb-tense-guess")}}(a)};const Zi=/^\p{Lu}[\p{Ll}'’]/u,Qi=/[0-9]/,_i=["Date","Month","WeekDay","Unit"],Xi=/^[IVXLCDM]{2,}$/,Yi=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,es={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ts=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===Zi.test(o)&&!1===Qi.test(o)?_i.find(e=>a.tags.has(e))?null:(Ui(e,t,n),a.tags.has("Noun")||a.tags.clear(),Mi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Xi.test(o)&&Yi.test(o)&&!es[a.normal]?(Mi(a,"RomanNumeral","2-xvii"),!0):null};const ns=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=ns(a.normal,n.two.suffixPatterns);if(null!==e)return Mi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=ns(a.implicit,n.two.suffixPatterns),null!==e))return Mi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const rs=/['‘’‛‵′`´]/,os=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 Mi(a,e,"2-prefix"),a.confidence=.5,!0}return null};const ls=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"]),us=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ls.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},cs=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 hs=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(us(r)||us(o))return Mi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(cs(r)||cs(o))return Mi(n,"Year","2-tagYear-close");if(ds(e[t-2])||ds(e[t+2]))return Mi(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 Mi(n,"Year","2-tagYear-noun")}}}return null};const gs=/^[A-Z]('s|,)?$/,ms=/^[A-Z-]+$/,ps=/([A-Z]\.)+[A-Z]?,?$/,fs=/[A-Z]{2,}('s|,)?$/,bs=/([a-z]\.)+[a-z]\.?$/,ys={I:!0,A:!0};var vs=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===ms.test(n)||n.length>5||ys.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==ps.test(n)&&!0!==bs.test(n)&&!0!==gs.test(n)&&!0!==fs.test(n))}(a,n)?(a.tags.clear(),Mi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!ys.hasOwnProperty(a.text)&&gs.test(a.text)?(a.tags.clear(),Mi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Mi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&ms.test(a.text)&&a.text.length<=6?(Mi(a,"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},ks=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ps=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||ws(e[t-1],r),l=l||ws(e[t+1],o),l=l||ks(e[t-1],a),l=l||ks(e[t+1],i),l)return Mi(s,l,"3-[neighbour]"),Ui(e,t,n),e[t].confidence=.2,!0}return null};const As=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 Es=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]&&As(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&As(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var js=function(e,t,n){0===e[t].tags.size&&(Mi(e[t],"Noun","3-[fallback]"),Ui(e,t,n),e[t].confidence=.1)};const Is=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ns=(e,t,n)=>0!==t||e[1]?null:n;var Gs={"Adj|Gerund":(e,t)=>Is(e,t),"Adj|Noun":(e,t)=>Is(e,t),"Adj|Past":(e,t)=>Is(e,t),"Adj|Present":(e,t)=>Is(e,t),"Noun|Gerund":(e,t)=>Is(e,t),"Noun|Verb":(e,t)=>Is(e,t)||Ns(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Is(e,t)||Ns(e,t,"PresentTense"),"Person|Noun":(e,t)=>Is(e,t),"Person|Verb":(e,t)=>0!==t&&Is(e,t)};const Ds="undefined"!=typeof process&&process.env?process.env:self.env||{},xs=/^(under|over|mis|re|un|dis|semi)-?/,Cs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Ds.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ts=(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&&Ds.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Bs={tagSwitch:Ji,checkSuffix:as,checkRegex:is,checkCase:ts,checkPrefix:ss,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")&&(Mi(o,"Verb","3-[prefix]"),Mi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Mi(o,"Adjective","3-[prefix]"),Mi(o,"Prefix","3-[prefix]")))},checkYear:hs},Os={checkAcronym:vs,neighbours:Ps,orgWords:Es,nounFallback:js,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(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=Cs(e[t+1],n.afterWords);return o=o||Cs(e[t-1],n.beforeWords),o=o||Ts(e[t-1],n.beforeTags,r),o=o||Ts(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Gs[o]&&(u=Gs[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Ds.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},zs=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 $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 Ss={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 Qs=/'/;var _s=function(e,t){let n=e[t].normal.split(Qs)[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 Xs=/'/;var Ys=function(e,t){let n=e[t].normal.split(Xs)[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 el=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 tl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},nl={in:!0,by:!0,for:!0};var al=(e,t)=>{let n=e[t];if(tl.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===nl[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 rl=/'/,ol=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)=>Ys(e,t),t:(e,t)=>el(e,t),s:(e,t,n)=>al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):_s(e,t)},sl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ll={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===rl.test(a[o].normal)&&([,i]=a[o].normal.split(rl));let s=null;il.hasOwnProperty(i)&&(s=il[i](a,o,t)),s&&(s=sl(s,e),Zs(n,[r,o],s),ol(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=Us.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=Rs},hooks:["contractionTwo"]};const ul="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const cl=["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:"[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:"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:ul+" #Person",tag:"Person",reason:"randy-smith"},{match:ul+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${ul}]`,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:"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:cl,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:cl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:cl,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 hl=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;hl=hl||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(hl),e.uncache(),e}},model:{two:{matches:dl}},hooks:["postTagger"]};var ml=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 pl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?ml(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 fl={api:function(e){e.prototype.swap=pl}};m.plugin(Ws),m.plugin(ll),m.plugin(gl),m.plugin(fl);export{m as default}; diff --git a/scratch.js b/scratch.js index 1000f0fe2..b659dbafd 100644 --- a/scratch.js +++ b/scratch.js @@ -1,9 +1,9 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/three.js' +import nlp from './src/one.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -nlp.verbose('tagger') +// nlp.verbose('tagger') // tagging/root issues June 10 // "Okay, okay, okay should I be scared?" // "This is when I started to get scared." @@ -38,9 +38,20 @@ nlp.verbose('tagger') // Upload documents required to verify your eligibility +let matches = [ + // { match: '(he|she|they|and|but|#Patient|#Noun|#Honorific|#ProperNoun+) #ProperNoun+? (will|shall|should|would) be followed up .{0,3}?$' } + { match: '(one|two) and (three|four)' } +] + + +let net = nlp.buildNet(matches) +let doc = nlp('one and foo') +// doc.debug() +// doc.verbs().toFutureTense() +doc.match(net).debug() // let doc = nlp(`he will have been walking`).debug() -let doc = nlp(`Bob has handled`).debug() +// let doc = nlp(`Bob has handled`).debug() // doc.match('have').tag('Auxiliary') // doc.verbs().toPresent() // console.log(doc.has('he has really walked')) @@ -116,14 +127,14 @@ let doc = nlp(`Bob has handled`).debug() // doc.match('#Person').debug() // let net = nlp.buildNet([ -// { match: 'every single #Noun' }, -// { match: 'not (a|one) #Singular' }, +// { 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' }, +// { match: 'third' }, // ] // let net = nlp.buildNet(matches) // let doc = nlp(`first. second. third`) diff --git a/src/1-one/sweep/methods/buildNet/01-parse.js b/src/1-one/sweep/methods/buildNet/01-parse.js index 20c264cd5..4974d592e 100644 --- a/src/1-one/sweep/methods/buildNet/01-parse.js +++ b/src/1-one/sweep/methods/buildNet/01-parse.js @@ -34,6 +34,7 @@ const getNeeds = function (regs) { const getWants = function (regs) { let wants = [] + let count = 0 regs.forEach(reg => { if (reg.operator === 'or' && !reg.optional) { // add fast-or terms @@ -53,9 +54,10 @@ const getWants = function (regs) { }) }) } + count += 1 } }) - return wants + return { wants, count } } const parse = function (matches, world) { @@ -68,7 +70,9 @@ const parse = function (matches, world) { } // cache any requirements up-front obj.needs = getNeeds(obj.regs) - obj.wants = getWants(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 }) diff --git a/src/1-one/sweep/methods/sweep/02-trim-down.js b/src/1-one/sweep/methods/sweep/02-trim-down.js index 4850c9cce..792aa2c6a 100644 --- a/src/1-one/sweep/methods/sweep/02-trim-down.js +++ b/src/1-one/sweep/methods/sweep/02-trim-down.js @@ -19,7 +19,8 @@ const localTrim = function (maybeList, docCache) { return true } // ensure there's one cache-hit - return obj.wants.find(str => haves.has(str)) + let found = obj.wants.filter(str => haves.has(str)).length + return found >= obj.minWant }) return list }) diff --git a/src/1-one/sweep/methods/tagger/_logger.js b/src/1-one/sweep/methods/tagger/_logger.js deleted file mode 100644 index 51fca5597..000000000 --- a/src/1-one/sweep/methods/tagger/_logger.js +++ /dev/null @@ -1,32 +0,0 @@ - -const isArray = 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(todo.tag)) { - tag = todo.tag.join(' #') - } - // don't show if it's already there - if (!tag || terms.every(t => t.tags.has(tag))) { - return - } - 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 -} -export default logger diff --git a/src/1-one/sweep/methods/tagger/index.js b/src/1-one/sweep/methods/tagger/index.js index a75d95d9d..16cc548de 100644 --- a/src/1-one/sweep/methods/tagger/index.js +++ b/src/1-one/sweep/methods/tagger/index.js @@ -1,4 +1,3 @@ -import logger from './_logger.js' import canBe from './canBe.js' const tagger = function (list, document, world) { From 9615ba35951a26c49c22b5b1c781b4dc40248c4f Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 13 Jun 2022 17:20:29 -0400 Subject: [PATCH 09/13] catch bug for optional cache --- builds/compromise.js | 2 +- builds/one/compromise-one.cjs | 2 +- builds/one/compromise-one.mjs | 2 +- builds/three/compromise-three.cjs | 18345 +---------------- builds/three/compromise-three.mjs | 2 +- builds/two/compromise-two.cjs | 2 +- builds/two/compromise-two.mjs | 2 +- scratch.js | 13 +- src/1-one/sweep/methods/buildNet/01-parse.js | 2 +- 9 files changed, 18 insertions(+), 18354 deletions(-) diff --git a/builds/compromise.js b/builds/compromise.js index 33e9b5468..ff007dc88 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.0";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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\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(We),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 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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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(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||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=In(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Tn=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})},Cn=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.find(e=>r.has(e)))})},Dn=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},On=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=Gn(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=Tn(a,t.hooks);return o=Cn(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),Dn(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===On(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 Vn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Vn.test(t))!function(e,t,n,r){let a=t.split(Vn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn,Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Rn=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:Ln(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Wn(t=e).forEach(Mn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Wn(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},Qn=function(e){let t=Wn(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},Zn={text:Un,txt:Un,array:Qn,flat:Qn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Yn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Wn(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 Yn(this.json),_n(this.json,e)}debug(){return Yn(this.json),_n(this.json,"debug"),this}}const er=function(e){let t=Rn(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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)}},ur=function(e){Object.assign(e.prototype,lr)},cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\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.0";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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\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(We),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 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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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(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||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(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=In(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},Tn=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})},Cn=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)})},Dn=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},On=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=Gn(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=Tn(a,t.hooks);return o=Cn(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),Dn(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===On(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 Vn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Vn.test(t))!function(e,t,n,r){let a=t.split(Vn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn,Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Rn=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:Ln(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Wn(t=e).forEach(Mn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Wn(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},Qn=function(e){let t=Wn(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},Zn={text:Un,txt:Un,array:Qn,flat:Qn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Yn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Wn(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 Yn(this.json),_n(this.json,e)}debug(){return Yn(this.json),_n(this.json,"debug"),this}}const er=function(e){let t=Rn(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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)}},ur=function(e){Object.assign(e.prototype,lr)},cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var gr=function(e){let t=[],n=e.split(mr);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 Or=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Br=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Vr=/['’]/,zr=/^[a-z]\.([a-z]\.)+/i,$r=/^[-+.][0-9]/,Fr=/^'[0-9]{2}/;var Sr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Or,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$r.test(e)?"'"===n&&Fr.test(e)?(n="",t):"":(n="",t)))).replace(Br,a=>(r=a,Vr.test(a)&&/[sn]['’]$/.test(t)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Hr=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,Lr=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var qr=function(e){return function(e){return!0===Mr.test(e)||!0===Wr.test(e)||!0===Jr.test(e)||!0===Lr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Kr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Hr(r),r=n(r,t),r=qr(r),e.normal=r},Rr={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:Ar,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(Cr);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=Ir(n),n=xr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Sr(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=>{Kr(e,t)}),n})}}}},Ur={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["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=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])})});var _r=["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 Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xr={};Object.keys(Yr).forEach((function(e){Yr[e].split("").forEach((function(t){Xr[t]=e}))}));const ea=/\//,ta=/[a-z]\.[a-z]/i,na=/[0-9]/;var ra=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])),ea.test(n)&&!ta.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 aa=/^\p{Letter}+-\p{Letter}+$/u;var oa=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"),aa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ia=function(e){let t=0,n=0,r=e.document;for(let e=0;esa(e,ra),machine:e=>sa(e,oa),normal:e=>sa(e,Kr),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 ha={safe:!0,min:3};var da={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ua},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ha,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ca(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(fn),m.extend(St),m.extend(Nn),m.extend(dr),m.plugin(be),m.extend(la),m.plugin(f),m.extend(Ge),m.extend(da),m.extend(Pe),m.extend(Bn);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"},ma={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ga=36,fa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ba=fa.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=ga,a=1;for(;n=0;n--,a*=ga){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ya=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=Pa(ma[e]);xa.test(e)?Object.keys(t).forEach(t=>{if(Ia[t]=e,"Noun|Verb"===e){let e=Ea(t,Ga);Ia[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ta="Adjective";var Ca={beforeTags:{Determiner:Ta,Possessive:Ta},afterTags:{Adjective:Ta},beforeWords:{seem:Ta,seemed:Ta,seems:Ta,feel:Ta,feels:Ta,felt:Ta,appear:Ta,appears:Ta,appeared:Ta,also:Ta,over:Ta,under:Ta,too:Ta,it:Ta,but:Ta,still:Ta,really:Ta,quite:Ta,well:Ta,very:Ta,deeply:Ta,profoundly:Ta,extremely:Ta,so:Ta,badly:Ta,mostly:Ta,totally:Ta,awfully:Ta,rather:Ta,nothing:Ta,something:Ta,anything:Ta},afterWords:{too:Ta,also:Ta,or:Ta}};const Da="Gerund";var Oa={beforeTags:{Adverb:Da,Preposition:Da,Conjunction:Da},afterTags:{Adverb:Da,Possessive:Da,Person:Da,Pronoun:Da,Determiner:Da,Copula:Da,Preposition:Da,Conjunction:Da,Comparative:Da},beforeWords:{been:Da,keep:Da,continue:Da,stop:Da,am:Da,be:Da,me:Da,began:Da,start:Da,starts:Da,started:Da,stops:Da,stopped:Da,help:Da,helps:Da,avoid:Da,avoids:Da,love:Da,loves:Da,loved:Da,hate:Da,hates:Da,hated:Da},afterWords:{you:Da,me:Da,her:Da,him:Da,them:Da,their:Da,it:Da,this:Da,there:Da,on:Da,about:Da,for:Da}},Ba={beforeTags:Object.assign({},Ca.beforeTags,Oa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ca.afterTags,Oa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ca.beforeWords,Oa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ca.afterWords,Oa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Va="Singular";var za={beforeTags:{Determiner:Va,Possessive:Va,Acronym:Va,Noun:Va,Adjective:Va,PresentTense:Va,Gerund:Va,PastTense:Va,Infinitive:Va,Date:Va},afterTags:{Value:Va,Modal:Va,Copula:Va,PresentTense:Va,PastTense:Va,Demonym:Va},beforeWords:{the:Va,with:Va,without:Va,of:Va,for:Va,any:Va,all:Va,on:Va,cut:Va,cuts:Va,save:Va,saved:Va,saves:Va,make:Va,makes:Va,made:Va,minus:Va,plus:Va,than:Va,another:Va,versus:Va,neither:Va,favorite:Va,best:Va,daily:Va,weekly:Va,linear:Va,binary:Va,mobile:Va,lexical:Va,technical:Va,computer:Va,scientific:Va,formal:Va},afterWords:{of:Va,system:Va,aid:Va,method:Va,utility:Va,tool:Va,reform:Va,therapy:Va,philosophy:Va,room:Va,authority:Va,says:Va,said:Va,wants:Va,wanted:Va}};const $a={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fa={beforeTags:Object.assign({},Ca.beforeTags,za.beforeTags,$a.beforeTags),afterTags:Object.assign({},Ca.afterTags,za.afterTags),beforeWords:Object.assign({},Ca.beforeWords,za.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,za.afterWords)};const Sa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ha={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ma={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ja={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var La={beforeTags:Object.assign({},Ca.beforeTags,Sa),afterTags:Object.assign({},Ca.afterTags,Ha),beforeWords:Object.assign({},Ca.beforeWords,Ma),afterWords:Object.assign({},Ca.afterWords,Ja)};const Wa="Infinitive";var qa={beforeTags:{Modal:Wa,Adverb:Wa,Negative:Wa,Plural:Wa},afterTags:{Determiner:Wa,Adverb:Wa,Possessive:Wa,Preposition:Wa},beforeWords:{i:Wa,we:Wa,you:Wa,they:Wa,to:Wa,please:Wa,will:Wa,have:Wa,had:Wa,would:Wa,could:Wa,should:Wa,do:Wa,did:Wa,does:Wa,can:Wa,must:Wa,us:Wa,me:Wa,he:Wa,she:Wa,it:Wa,being:Wa},afterWords:{the:Wa,me:Wa,you:Wa,him:Wa,her:Wa,them:Wa,it:Wa,a:Wa,an:Wa,up:Wa,down:Wa,by:Wa,out:Wa,off:Wa,when:Wa,all:Wa,to:Wa,because:Wa,although:Wa,before:Wa,how:Wa,otherwise:Wa,though:Wa,yet:Wa}};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Ca.beforeTags,qa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ca.afterTags,qa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Ca.beforeWords,qa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,qa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qa={},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"},_a={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Ya={beforeTags:Object.assign({},Oa.beforeTags,za.beforeTags,Ua),afterTags:Object.assign({},Oa.afterTags,za.afterTags,Qa),beforeWords:Object.assign({},Oa.beforeWords,za.beforeWords,Za),afterWords:Object.assign({},Oa.afterWords,za.afterWords,_a)},Xa={beforeTags:Object.assign({},qa.beforeTags,za.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qa.afterTags,za.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qa.beforeWords,za.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qa.afterWords,za.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ro={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ao={beforeTags:Object.assign({},to.beforeTags,ro.beforeTags),afterTags:Object.assign({},to.afterTags,ro.afterTags),beforeWords:Object.assign({},to.beforeWords,ro.beforeWords),afterWords:Object.assign({},to.afterWords,ro.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Ba,"Adj|Noun":Fa,"Adj|Past":La,"Adj|Present":Ra,"Noun|Verb":Xa,"Noun|Gerund":Ya,"Person|Noun":{beforeTags:Object.assign({},za.beforeTags,to.beforeTags),afterTags:Object.assign({},za.afterTags,to.afterTags),beforeWords:Object.assign({},za.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},za.afterWords,to.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,qa.beforeTags),afterTags:Object.assign({},to.afterTags,qa.afterTags),beforeWords:Object.assign({},to.beforeWords,qa.beforeWords),afterWords:Object.assign({},to.afterWords,qa.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const po="Adjective",mo="Infinitive",go="PresentTense",fo="Singular",bo="PastTense",vo="Adverb",yo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",jo="Modal",Eo="Participle";var xo=[null,null,{ea:fo,ia:Po,ic:po,ly:vo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":vo,"'ll":jo,"'re":"Copula",azy:po,eer:Po,end:ko,ped:bo,ffy:po,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:po,mum:po,nes:go,nny:po,ous:po,que:po,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:go,eld:bo,ken:Eo,ven:Eo,ten:Eo,ect:mo,ict:mo,ign:mo,ful:po,bal:po},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:po,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:go,ends:ko,enko:Ao,ette:fo,wner:fo,fies:go,fore:vo,gate:mo,gone:po,ices:yo,ints:yo,ruct:mo,ines:yo,ions:yo,less:po,llen:po,made:po,nsen:Ao,oses:go,ould:jo,some:po,sson:Ao,tion:fo,tage:Po,ique:fo,tive:po,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:po,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:po,nary:po},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:yo,bound:po,ettes:yo,fully:vo,ishes:go,ities:yo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:yo,rough:po,tches:go,tieth:"Ordinal",tures:yo,wards:vo,where:vo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const No="Adjective",Io="Noun",Go="Verb";var To=[null,null,{},{neo:Io,bio:Io,"de-":Go,"re-":Go,"un-":Go},{anti:Io,auto:Io,faux:No,hexa:Io,kilo:Io,mono:Io,nano:Io,octa:Io,poly:Io,semi:No,tele:Io,"pro-":No,"mis-":Go,"dis-":Go,"pre-":No},{anglo:Io,centi:Io,ethno:Io,ferro:Io,grand:Io,hepta:Io,hydro:Io,intro:Io,macro:Io,micro:Io,milli:Io,nitro:Io,penta:Io,quasi:No,radio:Io,tetra:Io,"omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:Io}];const Co="Adjective",Do="Infinitive",Oo="PresentTense",Bo="Singular",Vo="PastTense",zo="Adverb",$o="Expression",Fo="Actor",So="Verb",Ho="Noun",Mo="LastName";var Jo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Mo],[/.[^aeiou]ica$/,Bo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Vo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Vo,"rammed"],[/.[aeiou][sg]hed$/,Vo,"gushed"],[/.[aeiou]red$/,Vo,"hired"],[/.[aeiou]r?ried$/,Vo,"hurried"],[/[^aeiou]ard$/,Bo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,Vo,"hurled"],[/.[iao]sed$/,Vo,""],[/[aeiou]n?[cs]ed$/,Vo,""],[/[aeiou][rl]?[mnf]ed$/,Vo,""],[/[aeiou][ns]?c?ked$/,Vo,"bunked"],[/[aeiou]gned$/,Vo],[/[aeiou][nl]?ged$/,Vo],[/.[tdbwxyz]ed$/,Vo],[/[^aeiou][aeiou][tvx]ed$/,Vo],[/.[cdflmnprstv]ied$/,Vo,"emptied"]],e:[[/.[lnr]ize$/,Do,"antagonize"],[/.[^aeiou]ise$/,Do,"antagonise"],[/.[aeiou]te$/,Do,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,Mo,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Mo,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Bo,"magnesium"],[/[^aeiou]ism$/,Bo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,Fo,"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$/,Bo],[/[^i]fer$/,Do],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Bo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Bo],[/[a-z]'s$/,Ho],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,Mo]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Bo],[/[rdntkbhs]ly$/,zo],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,zo],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Bo]]};const Lo="Verb",Wo="Noun";var qo={leftTags:[["Adjective",Wo],["Possessive",Wo],["Determiner",Wo],["Adverb",Lo],["Pronoun",Lo],["Value",Wo],["Ordinal",Wo],["Modal",Lo],["Superlative",Wo],["Demonym",Wo],["Honorific","Person"]],leftWords:[["i",Lo],["first",Wo],["it",Lo],["there",Lo],["not",Lo],["because",Wo],["if",Wo],["but",Wo],["who",Lo],["this",Wo],["his",Wo],["when",Wo],["you",Lo],["very","Adjective"],["old",Wo],["never",Lo],["before",Wo],["a","Singular"],["the",Wo],["been",Lo]],rightTags:[["Copula",Wo],["PastTense",Wo],["Conjunction",Wo],["Modal",Wo]],rightWords:[["there",Lo],["me",Lo],["man","Adjective"],["only",Lo],["him",Lo],["it",Lo],["were",Wo],["took",Wo],["himself",Lo],["went",Wo],["who",Wo],["jr","Person"]]},Ko={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"},Uo={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 _o=/^.([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(_o);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(_o,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Xo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Xo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ri=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 ai=ni({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"}),oi=ni(Qo),ii=ni(Ro),si=ni(Uo),li=ri(ai),ui=ri(oi),ci=ri(ii),hi=ri(si),di=ni(Ko),pi=ni(Zo);var mi={fromPast:ai,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:hi,toComparative:di,toSuperlative:pi,fromComparative:ri(di),fromSuperlative:ri(pi)},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),{}),fi=[[/([^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,""]],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(vi[t].forEach(n=>e[n]=t),e),{});var yi=vi,wi=function(e){let t=e.substring(e.length-3);if(!0===yi.hasOwnProperty(t))return yi[t];let n=e.substring(e.length-2);return!0===yi.hasOwnProperty(n)?yi[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 Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},ji=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]),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"}],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"]),Gi={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")?xi.has(e)?e.replace(/ically/,"ical"):Ii.has(e)?null:Gi.hasOwnProperty(e)?Gi[e]:ji(e,Ni)||e:null};const Ci=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Di={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Di.hasOwnProperty(e))return Di[e];let t=ji(e,Ci);return t||e+"ly"};const Bi=[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"},zi=new Set(["terrible","annoying"]),$i=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},Fi=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:$i,adjToComparative:Fi,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:Ti,adjToAdverb:Oi,adjToNoun:function(e){if(Vi.hasOwnProperty(e))return Vi[e];if(zi.has(e))return null;let t=ji(e,Bi);return t||e+"ness"}}}},Mi=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 Ji=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Li=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=Ji(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ji(r,"Infinitive","Verb"),Object.assign(s,l),l=Ji(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ji(o,"Adjective","Superlative"),Object.assign(s,l),l=Ji(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Wi={two:{models:mi}};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"},Ki=function(e,t){const n={model:t,methods:Hi};let{lex:r,_multi:a}=Hi.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=Ai(e,Wi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=qi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(a,r,!1),"Adj|Present"===o&&(Ri(a,r,!0),function(e,t,n){let r=$i(e,n);t[r]=t[r]||"Superlative";let a=Fi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(a,Wi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(a,Wi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ki(n,t)};let Qi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:pa,models:mi,suffixPatterns:xo,prefixPatterns:To,endsWith:Jo,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:Ia,clues:ho,uncountable:{},orgWords:gi}};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=Ki(e.one.lexicon,e)).one.lexicon,e),e=Ui(e.two.switches,e),e=Li(e),e=Mi(e)}(Qi);var Zi=Qi;const _i=/^(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(_i.test(a.normal)){let e=a.normal.replace(_i,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Xi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const as=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(rs(e.normal)?Xi(e,"Plural","3-plural-guess"):Xi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ds=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>r.tags.has(e))?null:(os(e,t,n),r.tags.has("Noun")||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!hs[r.normal]?(Xi(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 ms=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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ps(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const gs=/['‘’‛‵′`´]/,fs=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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ys=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"]),ws=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ys.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)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};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){let a=e[t-1],o=e[t+1];if(ws(a)||ws(o))return Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ks(a)||ks(o))return Xi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Xi(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 Xi(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Es=/^[A-Z-]+$/,xs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[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===Es.test(n)||n.length>5||Gs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==xs.test(n)&&!0!==Is.test(n)&&!0!==js.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Gs.hasOwnProperty(r.text)&&js.test(r.text)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Xi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Es.test(r.text)&&r.text.length<=6?(Xi(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 Xi(s,l,"3-[neighbour]"),os(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},zs=function(e,t,n){0===e[t].tags.size&&(Xi(e[t],"Noun","3-[fallback]"),os(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)-?/,Js=(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},Ls=(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(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Ws={tagSwitch:Yi,checkSuffix:ms,checkRegex:bs,checkCase:ds,checkPrefix:vs,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")&&(Xi(o,"Verb","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Xi(o,"Adjective","3-[prefix]"),Xi(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=Js(e[t+1],n.afterWords);return o=o||Js(e[t-1],n.beforeWords),o=o||Ls(e[t-1],n.beforeTags,a),o=o||Ls(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ss[o]&&(u=Ss[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):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)},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 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"]},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},pl={in:!0,by:!0,for:!0};var ml=(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===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 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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>hl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},vl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.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;bl.hasOwnProperty(i)&&(s=bl[i](r,o,t)),s&&(s=vl(s,e),il(n,[a,o],s),fl(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=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)",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:"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: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:"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"}]),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,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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},El=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)},xl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?El(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},Nl={api:function(e){e.prototype.swap=xl}};m.plugin(tl),m.plugin(yl),m.plugin(jl),m.plugin(Nl);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},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{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},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 Jl=/\(/,Ll=/\)/,Wl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Jl,"");let t=e[e.length-1];t.post=t.post.replace(Ll,"")}),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={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Kl).join("|")+")"),Ul=RegExp("("+Object.values(Kl).join("|")+")"),Ql=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ul,"")})}(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 _l=/\./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(_l,""),e.normal=e.normal.replace(_l,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(_l,""),e.normal=e.normal.replace(_l,""),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)}},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),Zl(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",pu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var mu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=pu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[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 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 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")},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:vu(e,t),isSubordinate:bu(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);return t.found?(t.parse()[0]||{}).num: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 Eu=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 Nu=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 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=>Eu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return Nu(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)}}},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},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},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=Ju.hasOwnProperty(a)?Ju[a]:Mu(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:Mu(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},Wu=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"],Ru=[[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"]],Uu=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=Wu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ru.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(Uu(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=Wu(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(" ")},Zu=function(e){return e.numerator&&e.denominator?`${Qu({num:e.numerator})} out of ${Qu({num:e.denominator})}`:""};const _u={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 _u.hasOwnProperty(n)?t[t.length-1]=_u[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},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(Lu)}get(e){return ec(this,e).map(Lu)}json(e){return ec(this,e).map(t=>{let n=t.toView().json(e)[0],r=Lu(t);return n.fraction=r,n},[])}toDecimal(e){return ec(this,e).forEach(e=>{let{decimal:t}=Lu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return ec(this,e).forEach(e=>{let t=Lu(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=Lu(e),n=Xu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return ec(this,e).forEach(e=>{let t=Lu(e),n=Zu(t);e.replaceWith(n)}),this}toPercentage(e){return ec(this,e).forEach(e=>{let{decimal:t}=Lu(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},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=Lu(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")}},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=Wu(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},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},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},dc={api:function(e){tc(e),hc(e)}};const pc={people:!0,emails:!0,phoneNumbers:!0,places:!0},mc=function(e={}){return!1!==(e=Object.assign({},pc,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=mc}},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))})},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}},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},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},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},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}=vc(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=>(vc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(vc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(vc(e),e=kc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(vc(e),Pc(e)))}toNegative(e){return Ac(this,e).map(e=>(vc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(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 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)}},Ec=function(e){return e.match("#Honorific+? #Person+")},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 Nc="male",Ic="female",Gc={mr:Nc,mrs:Ic,miss:Ic,madam:Ic,king:Nc,queen:Ic,duke:Nc,duchess:Ic,baron:Nc,baroness:Ic,count:Nc,countess:Ic,prince:Nc,princess:Ic,sire:Nc,dame:Ic,lady:Ic,ayatullah:Nc,congressman:Nc,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 Nc;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 Nc}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 Nc;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(xc)}json(e){return Cc(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: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=Ec(this);return t=Cc(t,e),new People(this.document,t.pointer)}},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},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)}},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},Fc={api:function(e){Dc(e),Bc(e),Vc(e),$c(e)}},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},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},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 Jc=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},Lc=function(e){return e.match("#Negative")},Wc=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:Jc(t,n),negative:Lc(t),phrasal:Wc(n)}};const Kc={tense:"PresentTense"},Rc={conditional:!0},Uc={tense:"FutureTense"},Qc={progressive:!0},Zc={tense:"PastTense"},_c={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$",[Zc]],["^will want to #Infinitive$",[Uc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Zc]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Uc]],["^have #PastTense #Gerund$",[Zc]],["^will have #PastTense #Gerund$",[Zc]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[Zc]]],"simple-future":[["^will #Adverb? #Infinitive",[Uc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,Qc]]],"past-progressive":[["^(was|were) #Gerund$",[Zc,Qc]]],"future-progressive":[["^will be #Gerund$",[Uc,Qc]]],"present-perfect":[["^(has|have) #PastTense$",[Zc,_c]]],"past-perfect":[["^had #PastTense$",[Zc,_c]],["^had #PastTense to #Infinitive",[Zc,_c]]],"future-perfect":[["^will have #PastTense$",[Uc,_c]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Zc,Qc]]],"past-perfect-progressive":[["^had been #Gerund$",[Zc,Qc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Uc,Qc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Zc,Yc]],["^(was|were) being (#PastTense|#Participle)",[Zc,Yc]],["^(had|have) been (#PastTense|#Participle)",[Zc,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)",[Uc,Yc,Rc]],["will be being? (#PastTense|#Participle)",[Uc,Yc,Rc]]],"present-conditional":[["would be #PastTense",[Kc,Rc]]],"past-conditional":[["would have been #PastTense",[Zc,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Uc]]],"auxiliary-past":[["^did #Infinitive$",[Zc,{plural:!1}]],["^used to #Infinitive$",[Zc,_c]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Kc,_c,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Zc]]],"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,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},ph=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),mh=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"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var bh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:mh(t.adverbs.pre),postAdverbs:mh(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const vh={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,vh).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=ph(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),ph(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},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).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},Nh={infinitive:Eh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Eh(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":Eh,"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 Eh(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)=>(Eh(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$"),Eh(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 Nh.hasOwnProperty(n)?((e=Nh[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 Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var Lh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Jh(this,e).map(qc)}json(e,t){return Jh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=bh(t),n},[])}subjects(e){return Jh(this,e).map(e=>(qc(e),ih(e).subject))}adverbs(e){return Jh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Jh(this,e).filter(e=>!0!==ih(e).plural)}isPlural(e){return Jh(this,e).filter(e=>!0===ih(e).plural)}isImperative(e){return Jh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return yh(e,t,n.form)})}toPresentTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ih(e,t,n.form)})}toPastTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ah(e,t,n.form)})}toFutureTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Oh(e,t,n.form)})}toGerund(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Vh(e,t,n.form)})}conjugate(e){return Jh(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 Jh(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=Jh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Sl),m.plugin(su),m.plugin(mu),m.plugin(Gu),m.plugin(dc),m.plugin(gc),m.plugin(jc),m.plugin(Fc),m.plugin(Lh),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 7dca4abae..5baefd451 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.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},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}},Q={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 R=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,Q);var H={api:function(t){Object.assign(t.prototype,R)},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|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn,sn=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 ln="";var cn={green:t=>""+t+ln,red:t=>""+t+ln,blue:t=>""+t+ln,magenta:t=>""+t+ln,cyan:t=>""+t+ln,yellow:t=>""+t+ln,black:t=>""+t+ln,dim:t=>""+t+ln,i:t=>""+t+ln},an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(cn.blue("\n ──────")),e.forEach(t=>{console.log(cn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=cn.blue(" │ ")+cn.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 cn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},un=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},hn=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]}${cn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var pn=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()}},gn={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},bn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=bn(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},xn={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:bn,splitAll:vn}}},jn=function(t,e){let n=t.concat(e),r=bn(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=>yn(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},On=function(t,e){let n=bn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>yn(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},Pn=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=kn(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)}};_n.and=_n.union,_n.intersection=function(t){t=kn(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.not=function(t){t=kn(t,this);let e=En(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.difference=_n.not,_n.complement=function(){let t=this.all(),e=En(t.fullPointer,this.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=jn(t,[e])}),t=Pn(t,this.document),this.update(t)};var Sn={methods:xn,api:function(t){Object.assign(t.prototype,_n)}};const An=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var $n=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(An(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(An(t))})})}),e.filter(t=>t)}(t.regs),t.wants=function(t){let e=[];return t.forEach(t=>{"or"!==t.operator||t.optional||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=An(t);n&&e.push(n)})}))}),e}(t.regs),t.minWords=t.regs.filter(t=>!t.optional).length}),t},Tn=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})},Cn=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.find(t=>r.has(t)))})},zn=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},Nn=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=$n(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=Tn(o,e.hooks);return i=Cn(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),zn(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===Nn(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 Ln=/ /,Vn=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(),Ln.test(e))!function(t,e,n,r){let o=e.split(Ln);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;nDn(t,e,n,r))};var Gn=Dn,Bn=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=>Mn({id:t})),e}return[Mn({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},Qn=t=>"[object Array]"===Object.prototype.toString.call(t),Rn=t=>(t=t||"").trim(),Hn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Un.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:Wn(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=Mn({});return t.forEach(t=>{if((t=Mn(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):(In(e=t).forEach(Mn),e);var e},Zn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return In(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},Kn=function(t){let e=In(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},Jn={text:Zn,txt:Zn,array:Kn,flat:Kn},Xn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Zn(t,!0)),null):Jn.hasOwnProperty(e)?Jn[e](t):t},Yn=t=>{In(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},tr=/\//;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=Rn(t),!tr.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)||Mn({});return new g(e)}add(t,e={}){if(Qn(t))return t.forEach(t=>this.add(Rn(t),e)),this;t=Rn(t);let n=Mn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Rn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return In(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=In(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 In(this.json)}fillDown(){var t;return t=this.json,In(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 Qn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){Yn(this.json);let t=In(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 Yn(this.json),Xn(this.json,t)}debug(){return Yn(this.json),Xn(this.json,"debug"),this}}const er=function(t){let e=Hn(t);return new g(e)};er.prototype.plugin=function(t){t(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(t){if(nr.hasOwnProperty(t.id))return nr[t.id];if(nr.hasOwnProperty(t.is))return nr[t.is];let e=t._cache.parents.find(t=>nr[t]);return nr[e]};var or=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:rr(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 ir=function(t){return t?"string"==typeof t?[t]:t:[]};var sr=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=ir(t[e].children),t[e].not=ir(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},lr={one:{setTag:Gn,unTag:Bn,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=sr(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 er(e).cache().fillDown().out("array")}(Object.assign({},e,t));return or(n)}}};const cr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ar={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||""),cr(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 cr(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)}},ur=function(t){Object.assign(t.prototype,ar)},hr={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 fr=new Set(["Auxiliary","Possessive"]);var pr={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(fr.has(t)||!e.hasOwnProperty(n))return 1;if(fr.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:lr,api:ur,lib:hr};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\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.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},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}},Q={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 R=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,Q);var H={api:function(t){Object.assign(t.prototype,R)},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|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn,sn=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 ln="";var cn={green:t=>""+t+ln,red:t=>""+t+ln,blue:t=>""+t+ln,magenta:t=>""+t+ln,cyan:t=>""+t+ln,yellow:t=>""+t+ln,black:t=>""+t+ln,dim:t=>""+t+ln,i:t=>""+t+ln},an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(cn.blue("\n ──────")),e.forEach(t=>{console.log(cn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=cn.blue(" │ ")+cn.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 cn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},un=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},hn=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]}${cn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var pn=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()}},gn={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},bn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=bn(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},xn={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:bn,splitAll:vn}}},jn=function(t,e){let n=t.concat(e),r=bn(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=>yn(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},On=function(t,e){let n=bn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>yn(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},Pn=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=kn(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)}};_n.and=_n.union,_n.intersection=function(t){t=kn(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.not=function(t){t=kn(t,this);let e=En(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.difference=_n.not,_n.complement=function(){let t=this.all(),e=En(t.fullPointer,this.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=jn(t,[e])}),t=Pn(t,this.document),this.update(t)};var Sn={methods:xn,api:function(t){Object.assign(t.prototype,_n)}};const An=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var $n=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(An(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(An(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=An(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},Tn=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})},Cn=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)})},zn=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},Nn=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=$n(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=Tn(o,e.hooks);return i=Cn(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),zn(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===Nn(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 Ln=/ /,Vn=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(),Ln.test(e))!function(t,e,n,r){let o=e.split(Ln);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;nDn(t,e,n,r))};var Gn=Dn,Bn=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=>Mn({id:t})),e}return[Mn({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},Qn=t=>"[object Array]"===Object.prototype.toString.call(t),Rn=t=>(t=t||"").trim(),Hn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Un.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:Wn(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=Mn({});return t.forEach(t=>{if((t=Mn(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):(In(e=t).forEach(Mn),e);var e},Zn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return In(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},Kn=function(t){let e=In(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},Jn={text:Zn,txt:Zn,array:Kn,flat:Kn},Xn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Zn(t,!0)),null):Jn.hasOwnProperty(e)?Jn[e](t):t},Yn=t=>{In(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},tr=/\//;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=Rn(t),!tr.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)||Mn({});return new g(e)}add(t,e={}){if(Qn(t))return t.forEach(t=>this.add(Rn(t),e)),this;t=Rn(t);let n=Mn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Rn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return In(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=In(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 In(this.json)}fillDown(){var t;return t=this.json,In(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 Qn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){Yn(this.json);let t=In(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 Yn(this.json),Xn(this.json,t)}debug(){return Yn(this.json),Xn(this.json,"debug"),this}}const er=function(t){let e=Hn(t);return new g(e)};er.prototype.plugin=function(t){t(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(t){if(nr.hasOwnProperty(t.id))return nr[t.id];if(nr.hasOwnProperty(t.is))return nr[t.is];let e=t._cache.parents.find(t=>nr[t]);return nr[e]};var or=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:rr(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 ir=function(t){return t?"string"==typeof t?[t]:t:[]};var sr=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=ir(t[e].children),t[e].not=ir(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},lr={one:{setTag:Gn,unTag:Bn,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=sr(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 er(e).cache().fillDown().out("array")}(Object.assign({},e,t));return or(n)}}};const cr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ar={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||""),cr(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 cr(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)}},ur=function(t){Object.assign(t.prototype,ar)},hr={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 fr=new Set(["Auxiliary","Possessive"]);var pr={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(fr.has(t)||!e.hasOwnProperty(n))return 1;if(fr.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:lr,api:ur,lib:hr};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var mr=function(t){let e=[],n=t.split(gr);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 Nr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Fr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Lr=/['’]/,Vr=/^[a-z]\.([a-z]\.)+/i,qr=/^[-+.][0-9]/,Dr=/^'[0-9]{2}/;var Gr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Nr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!qr.test(t)?"'"===n&&Dr.test(t)?(n="",e):"":(n="",e)))).replace(Fr,o=>(r=o,Lr.test(o)&&/[sn]['’]$/.test(e)&&!1===Lr.test(n)?(r=r.replace(Lr,""),"'"):!0===Vr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}},Br=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Ur=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,Ir=/([a-z]\.)+[a-z]\.?$/;var Qr=function(t){return function(t){return!0===Mr.test(t)||!0===Ir.test(t)||!0===Ur.test(t)||!0===Wr.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Rr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Br(r),r=n(r,e),r=Qr(r),t.normal=r},Hr={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:Or,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(Cr);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=Ar(n),n=_r(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Gr(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=>{Rr(t,e)}),n})}}}},Zr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Kr={},Jr={};[[["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=>{Kr[e]=!0,Jr[e]="Abbreviation",void 0!==t[1]&&(Jr[e]=[Jr[e],t[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((t,e)=>(t[e]=!0,t),{});let Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},to={};Object.keys(Yr).forEach((function(t){Yr[t].split("").forEach((function(e){to[e]=t}))}));const eo=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var oo=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])),eo.test(n)&&!no.test(n)&&!ro.test(n)){let e=n.split(eo);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const io=/^\p{Letter}+-\p{Letter}+$/u;var so=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"),io.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},lo=function(t){let e=0,n=0,r=t.document;for(let t=0;tco(t,oo),machine:t=>co(t,so),normal:t=>co(t,Rr),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 fo={safe:!0,min:3};var po={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},fo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=ho(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}},go={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=uo},lib:po,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(wn),d.extend(Ge),d.extend(Sn),d.extend(pr),d.plugin(yt),d.extend(ao),d.plugin(w),d.extend($t),d.extend(go),d.extend(Et),d.extend(Fn),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 db62b5968..a867f7bd7 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.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},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 Q={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 R=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,Q);var H={api:function(t){Object.assign(t.prototype,R)},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|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn;var sn=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 ln={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 an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(ln.blue("\n ──────")),e.forEach(t=>{console.log(ln.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=ln.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=ln.blue(" │ ")+ln.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 ln[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var cn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(ln.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(ln.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(ln.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(ln.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var un=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]}${ln.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const hn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var fn=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 dn={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},yn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var bn=function(t,e){let n=yn(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 vn={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:yn,splitAll:bn}}};var xn=function(t,e){let n=t.concat(e),r=yn(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=>wn(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 En=function(t,e){let n=yn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>wn(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},kn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Pn={union:function(t){t=On(t,this);let e=xn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)}};Pn.and=Pn.union,Pn.intersection=function(t){t=On(t,this);let e=En(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.not=function(t){t=On(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.difference=Pn.not,Pn.complement=function(){let t=this.all(),e=jn(t.fullPointer,this.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=xn(t,[e])}),t=kn(t,this.document),this.update(t)};var _n={methods:vn,api:function(t){Object.assign(t.prototype,Pn)}};const Sn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var An=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(Sn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Sn(t))})})}),e.filter(t=>t)}(t.regs),t.wants=function(t){let e=[];return t.forEach(t=>{"or"!==t.operator||t.optional||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Sn(t);n&&e.push(n)})}))}),e}(t.regs),t.minWords=t.regs.filter(t=>!t.optional).length}),t};var $n=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 Tn=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.find(t=>r.has(t)))})};var Cn=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 zn=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=An(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=$n(o,e.hooks);return i=Tn(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),Cn(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===zn(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 Fn=/ /,Ln=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Vn=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(),Fn.test(e))!function(t,e,n,r){let o=e.split(Fn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Vn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nqn(t,e,n,r))};var Dn=qn;var Gn=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=>Bn({id:t})),e}return[Bn({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},In=t=>"[object Array]"===Object.prototype.toString.call(t),Qn=t=>(t=t||"").trim(),Rn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Mn.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:Un(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=Bn({});return t.forEach(t=>{if((t=Bn(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):(Wn(e=t).forEach(Bn),e);var e},Hn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Wn(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},Zn=function(t){let e=Wn(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},Kn={text:Hn,txt:Hn,array:Zn,flat:Zn},Jn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Hn(t,!0)),null):Kn.hasOwnProperty(e)?Kn[e](t):t},Xn=t=>{Wn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},Yn=/\//;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=Qn(t),!Yn.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)||Bn({});return new g(e)}add(t,e={}){if(In(t))return t.forEach(t=>this.add(Qn(t),e)),this;t=Qn(t);let n=Bn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Qn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Wn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Wn(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 Wn(this.json)}fillDown(){var t;return t=this.json,Wn(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 In(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){Xn(this.json);let t=Wn(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 Xn(this.json),Jn(this.json,t)}debug(){return Xn(this.json),Jn(this.json,"debug"),this}}const tr=function(t){let e=Rn(t);return new g(e)};tr.prototype.plugin=function(t){t(this)};var er={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(t){if(er.hasOwnProperty(t.id))return er[t.id];if(er.hasOwnProperty(t.is))return er[t.is];let e=t._cache.parents.find(t=>er[t]);return er[e]};var rr=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:nr(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 or=function(t){return t?"string"==typeof t?[t]:t:[]};var ir=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=or(t[e].children),t[e].not=or(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 sr={one:{setTag:Dn,unTag:Gn,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=ir(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 tr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return rr(n)}}};const lr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ar={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||""),lr(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 lr(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 cr=function(t){Object.assign(t.prototype,ar)};var ur={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 hr=new Set(["Auxiliary","Possessive"]);var fr={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(hr.has(t)||!e.hasOwnProperty(n))return 1;if(hr.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:sr,api:cr,lib:ur};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,dr=/((?:\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.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},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 Q={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 R=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,Q);var H={api:function(t){Object.assign(t.prototype,R)},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|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn;var sn=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 ln={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 an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(ln.blue("\n ──────")),e.forEach(t=>{console.log(ln.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=ln.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=ln.blue(" │ ")+ln.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 ln[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var cn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(ln.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(ln.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(ln.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(ln.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var un=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]}${ln.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const hn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var fn=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 dn={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},yn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var bn=function(t,e){let n=yn(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 vn={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:yn,splitAll:bn}}};var xn=function(t,e){let n=t.concat(e),r=yn(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=>wn(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 En=function(t,e){let n=yn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>wn(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},kn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Pn={union:function(t){t=On(t,this);let e=xn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)}};Pn.and=Pn.union,Pn.intersection=function(t){t=On(t,this);let e=En(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.not=function(t){t=On(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.difference=Pn.not,Pn.complement=function(){let t=this.all(),e=jn(t.fullPointer,this.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=xn(t,[e])}),t=kn(t,this.document),this.update(t)};var _n={methods:vn,api:function(t){Object.assign(t.prototype,Pn)}};const Sn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var An=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(Sn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Sn(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=Sn(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 $n=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 Tn=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 Cn=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 zn=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=An(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=$n(o,e.hooks);return i=Tn(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),Cn(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===zn(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 Fn=/ /,Ln=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Vn=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(),Fn.test(e))!function(t,e,n,r){let o=e.split(Fn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Vn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nqn(t,e,n,r))};var Dn=qn;var Gn=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=>Bn({id:t})),e}return[Bn({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},In=t=>"[object Array]"===Object.prototype.toString.call(t),Qn=t=>(t=t||"").trim(),Rn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Mn.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:Un(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=Bn({});return t.forEach(t=>{if((t=Bn(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):(Wn(e=t).forEach(Bn),e);var e},Hn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Wn(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},Zn=function(t){let e=Wn(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},Kn={text:Hn,txt:Hn,array:Zn,flat:Zn},Jn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Hn(t,!0)),null):Kn.hasOwnProperty(e)?Kn[e](t):t},Xn=t=>{Wn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},Yn=/\//;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=Qn(t),!Yn.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)||Bn({});return new g(e)}add(t,e={}){if(In(t))return t.forEach(t=>this.add(Qn(t),e)),this;t=Qn(t);let n=Bn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Qn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Wn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Wn(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 Wn(this.json)}fillDown(){var t;return t=this.json,Wn(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 In(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){Xn(this.json);let t=Wn(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 Xn(this.json),Jn(this.json,t)}debug(){return Xn(this.json),Jn(this.json,"debug"),this}}const tr=function(t){let e=Rn(t);return new g(e)};tr.prototype.plugin=function(t){t(this)};var er={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(t){if(er.hasOwnProperty(t.id))return er[t.id];if(er.hasOwnProperty(t.is))return er[t.is];let e=t._cache.parents.find(t=>er[t]);return er[e]};var rr=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:nr(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 or=function(t){return t?"string"==typeof t?[t]:t:[]};var ir=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=or(t[e].children),t[e].not=or(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 sr={one:{setTag:Dn,unTag:Gn,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=ir(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 tr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return rr(n)}}};const lr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ar={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||""),lr(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 lr(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 cr=function(t){Object.assign(t.prototype,ar)};var ur={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 hr=new Set(["Auxiliary","Possessive"]);var fr={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(hr.has(t)||!e.hasOwnProperty(n))return 1;if(hr.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:sr,api:cr,lib:ur};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,dr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var gr=function(t){let e=[],n=t.split(dr);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 zr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Nr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Fr=/['’]/,Lr=/^[a-z]\.([a-z]\.)+/i,Vr=/^[-+.][0-9]/,qr=/^'[0-9]{2}/;var Dr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(zr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Vr.test(t)?"'"===n&&qr.test(t)?(n="",e):"":(n="",e)))).replace(Nr,o=>(r=o,Fr.test(o)&&/[sn]['’]$/.test(e)&&!1===Fr.test(n)?(r=r.replace(Fr,""),"'"):!0===Lr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Gr=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 Br=/([A-Z]\.)+[A-Z]?,?$/,Mr=/^[A-Z]\.,?$/,Ur=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var Ir=function(t){return function(t){return!0===Br.test(t)||!0===Wr.test(t)||!0===Mr.test(t)||!0===Ur.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Qr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Gr(r),r=n(r,e),r=Ir(r),t.normal=r};var Rr={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:Er,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(Tr);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=Sr(n),n=Pr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Dr(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=>{Qr(t,e)}),n})}}}};var Hr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zr={},Kr={};[[["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=>{Zr[e]=!0,Kr[e]="Abbreviation",void 0!==t[1]&&(Kr[e]=[Kr[e],t[1]])})});var Jr=["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 Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(Xr).forEach((function(t){Xr[t].split("").forEach((function(e){Yr[e]=t}))}));const to=/\//,eo=/[a-z]\.[a-z]/i,no=/[0-9]/;var ro=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])),to.test(n)&&!eo.test(n)&&!no.test(n)){let e=n.split(to);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=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"),oo.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var so=function(t){let e=0,n=0,r=t.document;for(let t=0;tlo(t,ro),machine:t=>lo(t,io),normal:t=>lo(t,Qr),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 ho={safe:!0,min:3};var fo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},ho,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=uo(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 po={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=co},lib:fo,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(mn),d.extend(Ge),d.extend(_n),d.extend(fr),d.plugin(yt),d.extend(ao),d.plugin(w),d.extend($t),d.extend(po),d.extend(Et),d.extend(Nn);export{d as default}; diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index 63cda6015..ff007dc88 100644 --- a/builds/three/compromise-three.cjs +++ b/builds/three/compromise-three.cjs @@ -1,18343 +1,2 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.nlp = factory()); -})(this, (function () { 'use strict'; - - let methods$o = { - one: {}, - two: {}, - three: {}, - four: {}, - }; - - let model$7 = { - one: {}, - two: {}, - three: {}, - }; - let compute$d = {}; - let hooks = []; - - var tmpWrld = { methods: methods$o, model: model$7, compute: compute$d, hooks }; - - const isArray$9 = input => Object.prototype.toString.call(input) === '[object Array]'; - - const fns$5 = { - /** add metadata to term objects */ - compute: function (input) { - const { world } = this; - const compute = world.compute; - // do one method - if (typeof input === 'string' && compute.hasOwnProperty(input)) { - compute[input](this); - } - // allow a list of methods - 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') { - input(this); - } else { - console.warn('no compute:', input); // eslint-disable-line - } - return this - }, - }; - var compute$c = fns$5; - - const forEach = function (cb) { - let ptrs = this.fullPointer; - ptrs.forEach((ptr, i) => { - let view = this.update([ptr]); - cb(view, i); - }); - return this - }; - - 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) - }); - if (res.length === 0) { - return empty || this.update([]) - } - // return an array of values, or View objects? - // user can return either from their callback - if (res[0] !== undefined) { - // array of strings - if (typeof res[0] === 'string') { - return res - } - // array of objects - if (typeof res[0] === 'object' && (res[0] === null || !res[0].isView)) { - return res - } - } - // return a View object - let all = []; - res.forEach(ptr => { - all = all.concat(ptr.fullPointer); - }); - return this.toView(all) - }; - - 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]]) - 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]) - }; - - 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) - }) - }; - - const random = function (n = 1) { - let ptrs = this.fullPointer; - let r = Math.floor(Math.random() * ptrs.length); - //prevent it from going over the end - if (r + n > this.length) { - r = this.length - n; - r = r < 0 ? 0 : r; - } - ptrs = ptrs.slice(r, r + n); - return this.update(ptrs) - }; - var loops = { forEach, map, filter, find: find$c, some, random }; - - const utils = { - /** */ - termList: function () { - return this.methods.one.termList(this.docs) - }, - /** 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) - return typeof n === 'number' ? m.eq(n) : m - }, - - /** */ - groups: function (group) { - if (group || group === 0) { - return this.update(this._groups[group] || []) - } - // return an object of Views - let res = {}; - Object.keys(this._groups).forEach(k => { - res[k] = this.update(this._groups[k]); - }); - // this._groups = null - return res - }, - /** */ - 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.none() - }, - /** */ - first: function () { - return this.eq(0) - }, - /** */ - last: function () { - let n = this.fullPointer.length - 1; - return this.eq(n) - }, - - /** grab term[0] for every match */ - firstTerms: function () { - return this.match('^.') - }, - - /** grab the last term for every match */ - lastTerms: function () { - return this.match('.$') - }, - - /** */ - slice: function (min, max) { - let pntrs = this.pointer || this.docs.map((_o, n) => [n]); - pntrs = pntrs.slice(min, max); - return this.update(pntrs) - }, - - /** return a view of the entire document */ - all: function () { - return this.update().toView() - }, - /** */ - fullSentences: function () { - let ptrs = this.fullPointer.map(a => [a[0]]); //lazy! - return this.update(ptrs).toView() - }, - /** return a view of no parts of the document */ - none: function () { - return this.update([]) - }, - - /** are these two views looking at the same words? */ - isDoc: function (b) { - if (!b || !b.isView) { - return false - } - let aPtr = this.fullPointer; - let bPtr = b.fullPointer; - if (!aPtr.length === bPtr.length) { - return false - } - // ensure pointers are the same - return aPtr.every((ptr, i) => { - if (!bPtr[i]) { - return false - } - // ensure [n, start, end] are all the same - return ptr[0] === bPtr[i][0] && ptr[1] === bPtr[i][1] && ptr[2] === bPtr[i][2] - }) - }, - - /** how many seperate terms does the document have? */ - wordCount: function () { - return this.docs.reduce((count, terms) => { - count += terms.filter(t => t.text !== '').length; - return count - }, 0) - }, - - }; - utils.group = utils.groups; - utils.fullSentence = utils.fullSentences; - utils.sentence = utils.fullSentences; - utils.lastTerm = utils.lastTerms; - utils.firstTerm = utils.firstTerms; - var util = utils; - - const methods$n = Object.assign({}, util, compute$c, loops); - - // aliases - methods$n.get = methods$n.eq; - var api$y = methods$n; - - class View { - constructor(document, pointer, groups = {}) { - // invisible props - [ - ['document', document], - ['world', tmpWrld], - ['_groups', groups], - ['_cache', null], - ['viewType', 'View'] - ].forEach(a => { - Object.defineProperty(this, a[0], { - value: a[1], - writable: true, - }); - }); - this.ptrs = pointer; - } - /* getters: */ - get docs() { - let docs = this.document; - if (this.ptrs) { - docs = tmpWrld.methods.one.getDoc(this.ptrs, this.document); - } - return docs - } - 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 true //this comes in handy sometimes - } - // is the view not-empty? - get found() { - return this.docs.length > 0 - } - // how many matches we have - get length() { - return this.docs.length - } - // return a more-hackable pointer - get fullPointer() { - let { docs, ptrs, document } = this; - // compute a proper pointer, from docs - let pointers = ptrs || docs.map((_d, n) => [n]); - // do we need to repair it, first? - return pointers.map(a => { - let [n, start, end, id, endId] = a; - start = start || 0; - end = end || (document[n] || []).length; - //add frozen id, for good-measure - if (document[n] && document[n][start]) { - id = id || document[n][start].id; - if (document[n][end - 1]) { - endId = endId || document[n][end - 1].id; - } - } - return [n, start, end, id, endId] - }) - } - // create a new View, from this one - 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 - let cache = []; - pointer.forEach(ptr => { - if (ptr.length === 1) { - cache.push(m._cache[ptr[0]]); - } - // let [n, start, end] = ptr - // if (start === 0 && this.document[n][end - 1] && !this.document[n][end]) { - // console.log('=-=-=-= here -=-=-=-') - // } - }); - 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 - } - fromText(input) { - const { methods } = this; - //assume ./01-tokenize is installed - let document = methods.one.tokenize.fromString(input, this.world); - let doc = new View(document); - doc.world = this.world; - doc.compute(['normal', 'lexicon']); - if (this.world.compute.preTagger) { - doc.compute('preTagger'); - } - return doc - } - clone() { - // clone the whole document - let document = this.document.slice(0); - document = document.map(terms => { - return terms.map(term => { - term = Object.assign({}, term); - term.tags = new Set(term.tags); - return term - }) - }); - // clone only sub-document ? - let m = this.update(this.pointer); - m.document = document; - m._cache = this._cache; //clone this too? - return m - } - } - Object.assign(View.prototype, api$y); - var View$1 = View; - - var version = '14.3.0'; - - const isObject$6 = function (item) { - return item && typeof item === 'object' && !Array.isArray(item) - }; - - // recursive merge of objects - function mergeDeep(model, plugin) { - if (isObject$6(plugin)) { - for (const key in plugin) { - if (isObject$6(plugin[key])) { - if (!model[key]) Object.assign(model, { [key]: {} }); - mergeDeep(model[key], plugin[key]); //recursion - // } else if (isArray(plugin[key])) { - // console.log(key) - // console.log(model) - } else { - Object.assign(model, { [key]: plugin[key] }); - } - } - } - return model - } - // const merged = mergeDeep({ a: 1 }, { b: { c: { d: { e: 12345 } } } }) - // console.dir(merged, { depth: 5 }) - - // vroom - function mergeQuick(model, plugin) { - for (const key in plugin) { - model[key] = model[key] || {}; - Object.assign(model[key], plugin[key]); - } - return model - } - - const extend = function (plugin, world, View, nlp) { - const { methods, model, compute, hooks } = world; - if (plugin.methods) { - mergeQuick(methods, plugin.methods); - } - if (plugin.model) { - mergeDeep(model, plugin.model); - } - // shallow-merge compute - if (plugin.compute) { - Object.assign(compute, plugin.compute); - } - // append new hooks - if (hooks) { - world.hooks = hooks.concat(plugin.hooks || []); - } - // assign new class methods - if (plugin.api) { - plugin.api(View); - } - if (plugin.lib) { - Object.keys(plugin.lib).forEach(k => nlp[k] = plugin.lib[k]); - } - if (plugin.tags) { - nlp.addTags(plugin.tags); - } - if (plugin.words) { - nlp.addWords(plugin.words); - } - if (plugin.mutate) { - plugin.mutate(world); - } - }; - var extend$1 = extend; - - /** log the decision-making to console */ - const verbose = function (set) { - const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; //use window, in browser - env.DEBUG_TAGS = set === 'tagger' || set === true ? true : ''; - env.DEBUG_MATCH = set === 'match' || set === true ? true : ''; - env.DEBUG_CHUNKS = set === 'chunker' || set === true ? true : ''; - return this - }; - - const isObject$5 = val => { - return Object.prototype.toString.call(val) === '[object Object]' - }; - - const isArray$8 = function (arr) { - return Object.prototype.toString.call(arr) === '[object Array]' - }; - - // internal Term objects are slightly different - const fromJson = function (json) { - return json.map(o => { - return o.terms.map(term => { - if (isArray$8(term.tags)) { - term.tags = new Set(term.tags); - } - return term - }) - }) - }; - - // interpret an array-of-arrays - const preTokenized = function (arr) { - return arr.map((a) => { - return a.map(str => { - return { - text: str, - normal: str,//cleanup - pre: '', - post: ' ', - tags: new Set() - } - }) - }) - }; - - const inputs = function (input, View, world) { - const { methods } = world; - let doc = new View([]); - doc.world = world; - // support a number - if (typeof input === 'number') { - input = String(input); - } - // return empty doc - if (!input) { - return doc - } - // parse a string - if (typeof input === 'string') { - let document = methods.one.tokenize.fromString(input, world); - return new View(document) - } - // handle compromise View - if (isObject$5(input) && input.isView) { - return new View(input.document, input.ptrs) - } - // handle json input - if (isArray$8(input)) { - // pre-tokenized array-of-arrays - if (isArray$8(input[0])) { - let document = preTokenized(input); - return new View(document) - } - // handle json output - let document = fromJson(input); - return new View(document) - } - return doc - }; - var handleInputs = inputs; - - let world = Object.assign({}, tmpWrld); - - const nlp = function (input, lex) { - if (lex) { - nlp.addWords(lex); - } - let doc = handleInputs(input, View$1, world); - if (input) { - doc.compute(world.hooks); - } - return doc - }; - Object.defineProperty(nlp, '_world', { - value: world, - writable: true, - }); - - /** don't run the POS-tagger */ - nlp.tokenize = function (input, lex) { - const { compute } = this._world; - // add user-given words to lexicon - if (lex) { - nlp.addWords(lex); - } - // run the tokenizer - let doc = handleInputs(input, View$1, world); - // give contractions a shot, at least - if (compute.contractions) { - doc.compute(['alias', 'normal', 'machine', 'contractions']); //run it if we've got it - } - return doc - }; - - - /** extend compromise functionality */ - nlp.plugin = function (plugin) { - extend$1(plugin, this._world, View$1, this); - return this - }; - nlp.extend = nlp.plugin; - - - /** reach-into compromise internals */ - nlp.world = function () { - return this._world - }; - nlp.model = function () { - return this._world.model - }; - nlp.methods = function () { - return this._world.methods - }; - nlp.hooks = function () { - return this._world.hooks - }; - - /** log the decision-making to console */ - nlp.verbose = verbose; - /** current library release version */ - nlp.version = version; - - var nlp$1 = nlp; - - const createCache = function (document) { - let cache = document.map(terms => { - let stuff = new Set(); - terms.forEach(term => { - // add words - if (term.normal !== '') { - stuff.add(term.normal); - } - // cache switch-status - '%Noun|Verb%' - if (term.switch) { - stuff.add(`%${term.switch}%`); - } - // cache implicit words, too - if (term.implicit) { - stuff.add(term.implicit); - } - 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)); - } - let tags = Array.from(term.tags); - for (let t = 0; t < tags.length; t += 1) { - stuff.add('#' + tags[t]); - } - }); - return stuff - }); - return cache - }; - var cacheDoc = createCache; - - var methods$m = { - one: { - cacheDoc, - }, - }; - - const methods$l = { - /** */ - cache: function () { - this._cache = this.methods.one.cacheDoc(this.document); - return this - }, - /** */ - uncache: function () { - this._cache = null; - return this - }, - }; - const addAPI$3 = function (View) { - Object.assign(View.prototype, methods$l); - }; - var api$x = addAPI$3; - - var compute$b = { - cache: function (view) { - view._cache = view.methods.one.cacheDoc(view.document); - } - }; - - var cache$1 = { - api: api$x, - compute: compute$b, - methods: methods$m, - }; - - var caseFns = { - /** */ - toLowerCase: function () { - this.termList().forEach(t => { - t.text = t.text.toLowerCase(); - }); - return this - }, - /** */ - toUpperCase: function () { - this.termList().forEach(t => { - t.text = t.text.toUpperCase(); - }); - return this - }, - /** */ - toTitleCase: function () { - this.termList().forEach(t => { - t.text = t.text.replace(/^ *[a-z\u00C0-\u00FF]/, x => x.toUpperCase()); //support unicode? - }); - return this - }, - /** */ - toCamelCase: function () { - this.docs.forEach(terms => { - terms.forEach((t, i) => { - if (i !== 0) { - t.text = t.text.replace(/^ *[a-z\u00C0-\u00FF]/, x => x.toUpperCase()); //support unicode? - } - if (i !== terms.length - 1) { - t.post = ''; - } - }); - }); - return this - }, - }; - - // case logic - const isTitleCase$1 = (str) => /^\p{Lu}[\p{Ll}'’]/u.test(str) || /^\p{Lu}$/u.test(str); - const toTitleCase$1 = (str) => str.replace(/^\p{Ll}/u, x => x.toUpperCase()); - const toLowerCase = (str) => str.replace(/^\p{Lu}/u, x => x.toLowerCase()); - - // splice an array into an array - const spliceArr = (parent, index, child) => { - // tag them as dirty - child.forEach(term => term.dirty = true); - if (parent) { - let args = [index, 0].concat(child); - Array.prototype.splice.apply(parent, args); - } - return parent - }; - - // add a space at end, if required - const endSpace = function (terms) { - const hasSpace = / $/; - const hasDash = /[-–—]/; - let lastTerm = terms[terms.length - 1]; - if (lastTerm && !hasSpace.test(lastTerm.post) && !hasDash.test(lastTerm.post)) { - lastTerm.post += ' '; - } - }; - - // sentence-ending punctuation should move in append - const movePunct = (source, end, needle) => { - const juicy = /[-.?!,;:)–—'"]/g; - let wasLast = source[end - 1]; - if (!wasLast) { - return - } - let post = wasLast.post; - if (juicy.test(post)) { - let punct = post.match(juicy).join(''); //not perfect - let last = needle[needle.length - 1]; - last.post = punct + last.post; - // remove it, from source - wasLast.post = wasLast.post.replace(juicy, ''); - } - }; - - - const moveTitleCase = function (home, start, needle) { - let from = home[start]; - // should we bother? - if (start !== 0 || !isTitleCase$1(from.text)) { - return - } - // titlecase new first term - needle[0].text = toTitleCase$1(needle[0].text); - // should we un-titlecase the old word? - let old = home[start]; - if (old.tags.has('ProperNoun') || old.tags.has('Acronym')) { - return - } - if (isTitleCase$1(old.text) && old.text.length > 1) { - old.text = toLowerCase(old.text); - } - }; - - // put these words before the others - const cleanPrepend = function (home, ptr, needle, document) { - let [n, start, end] = ptr; - // introduce spaces appropriately - if (start === 0) { - // at start - need space in insert - endSpace(needle); - } else if (end === document[n].length) { - // at end - need space in home - endSpace(needle); - } else { - // in middle - need space in home and insert - endSpace(needle); - endSpace([home[ptr[1]]]); - } - moveTitleCase(home, start, needle); - // movePunct(home, end, needle) - spliceArr(home, start, needle); - }; - - const cleanAppend = function (home, ptr, needle, document) { - let [n, , end] = ptr; - let total = (document[n] || []).length; - if (end < total) { - // are we in the middle? - // add trailing space on self - movePunct(home, end, needle); - endSpace(needle); - } else if (total === end) { - // are we at the end? - // add a space to predecessor - endSpace(home); - // very end, move period - movePunct(home, end, needle); - // is there another sentence after? - if (document[n + 1]) { - needle[needle.length - 1].post += ' '; - } - } - spliceArr(home, ptr[2], needle); - // set new endId - ptr[4] = needle[needle.length - 1].id; - }; - - /* - unique & ordered term ids, based on time & term index - - Base 36 (numbers+ascii) - 3 digit 4,600 - 2 digit 1,200 - 1 digit 36 - - TTT|NNN|II|R - - 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 - - novels: - avg 80,000 words - 15 words per sentence - 5,000 sentences - - Infinite Jest: - 36,247 sentences - https://en.wikipedia.org/wiki/List_of_longest_novels - - collisions are more-likely after - 46 seconds have passed, - and - after 46-thousand sentences - - */ - let start$1 = 0; - - const pad3 = (str) => { - str = str.length < 3 ? '0' + str : str; - return str.length < 3 ? '0' + str : str - }; - - const toId = function (term) { - let [n, i] = term.index || [0, 0]; - start$1 += 1; - var now = start$1; - now = parseInt(now, 10); - - //don't overflow time - now = now > 46655 ? 46655 : now; - //don't overflow sentences - n = n > 46655 ? 46655 : n; - // //don't overflow terms - i = i > 1294 ? 1294 : i; - - // 3 digits for time - let id = pad3(now.toString(36)); - // 3 digit for sentence index (46k) - id += pad3(n.toString(36)); - - // 1 digit for term index (36) - let tx = i.toString(36); - tx = tx.length < 2 ? '0' + tx : tx; //pad2 - id += tx; - - // 1 digit random number - let r = parseInt(Math.random() * 36, 10); - id += (r).toString(36); - - return term.normal + '|' + id.toUpperCase() - }; - - var uuid = toId; - - // setInterval(() => console.log(toId(4, 12)), 100) - - // are we inserting inside a contraction? - // expand it first - const expand$4 = function (m) { - if (m.has('@hasContraction')) {//&& m.after('^.').has('@hasContraction') - let more = m.grow('@hasContraction'); - more.contractions().expand(); - } - }; - - const isArray$7 = (arr) => Object.prototype.toString.call(arr) === '[object Array]'; - - // set new ids for each terms - const addIds$2 = function (terms) { - terms = terms.map((term) => { - term.id = uuid(term); - return term - }); - return terms - }; - - const getTerms = function (input, world) { - const { methods } = world; - // create our terms from a string - if (typeof input === 'string') { - return methods.one.tokenize.fromString(input, world)[0] //assume one sentence - } - //allow a view object - if (typeof input === 'object' && input.isView) { - return input.clone().docs[0] //assume one sentence - } - //allow an array of terms, too - if (isArray$7(input)) { - return isArray$7(input[0]) ? input[0] : input - } - return [] - }; - - const insert = function (input, view, prepend) { - const { document, world } = view; - // insert words at end of each doc - let ptrs = view.fullPointer; - let selfPtrs = view.fullPointer; - view.forEach((m, i) => { - let ptr = m.fullPointer[0]; - let [n] = ptr; - // add-in the words - let home = document[n]; - let terms = getTerms(input, world); - terms = addIds$2(terms); - if (prepend) { - expand$4(view.update([ptr]).firstTerm()); - cleanPrepend(home, ptr, terms, document); - } else { - expand$4(view.update([ptr]).lastTerm()); - cleanAppend(home, ptr, terms, document); - } - // harden the pointer - if (document[n] && document[n][ptr[1]]) { - ptr[3] = document[n][ptr[1]].id; - } - // change self backwards by len - selfPtrs[i] = ptr; - // extend the pointer - ptr[2] += terms.length; - ptrs[i] = ptr; - }); - let doc = view.toView(ptrs); - // shift our self pointer, if necessary - view.ptrs = selfPtrs; - // try to tag them, too - doc.compute(['id', 'index', 'lexicon']); - if (doc.world.compute.preTagger) { - doc.compute('preTagger'); - } - return doc - }; - - const fns$4 = { - insertAfter: function (input) { - return insert(input, this, false) - }, - insertBefore: function (input) { - return insert(input, this, true) - }, - - }; - fns$4.append = fns$4.insertAfter; - fns$4.prepend = fns$4.insertBefore; - fns$4.insert = fns$4.insertAfter; - - var insert$1 = fns$4; - - const dollarStub = /\$[0-9a-z]+/g; - const fns$3 = {}; - - const titleCase$3 = function (str) { - return str.replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase()) - }; - - // doc.replace('foo', (m)=>{}) - const replaceByFn = function (main, fn) { - main.forEach(m => { - let out = fn(m); - m.replaceWith(out); - }); - return main - }; - - // support 'foo $0' replacements - const subDollarSign = function (input, main) { - if (typeof input !== 'string') { - return input - } - let groups = main.groups(); - input = input.replace(dollarStub, (a) => { - let num = a.replace(/\$/, ''); - if (groups.hasOwnProperty(num)) { - return groups[num].text() - } - return a - }); - return input - }; - - fns$3.replaceWith = function (input, keep = {}) { - let ptrs = this.fullPointer; - let main = this; - if (typeof input === 'function') { - return replaceByFn(main, input) - } - // support 'foo $0' replacements - input = subDollarSign(input, main); - - let original = this.update(ptrs); - // soften-up pointer - ptrs = ptrs.map(ptr => ptr.slice(0, 3)); - // original.freeze() - let oldTags = (original.docs[0] || []).map(term => Array.from(term.tags)); - // slide this in - main.insertAfter(input); - // are we replacing part of a contraction? - if (original.has('@hasContraction') && main.contractions) { - let more = main.grow('@hasContraction+'); - more.contractions().expand(); - } - // delete the original terms - main.delete(original); //science. - // what should we return? - 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) => { - term.tagSafe(oldTags[i]); - }); - } - // try to co-erce case, too - if (keep.case && m.docs[0] && m.docs[0][0] && m.docs[0][0].index[1] === 0) { - m.docs[0][0].text = titleCase$3(m.docs[0][0].text); - } - return m - }; - - fns$3.replace = function (match, input, keep) { - if (match && !input) { - return this.replaceWith(match, keep) - } - let m = this.match(match); - if (!m.found) { - return this - } - return m.replaceWith(input, keep) - }; - var replace = fns$3; - - // transfer sentence-ending punctuation - const repairPunct = function (terms, len) { - let last = terms.length - 1; - let from = terms[last]; - let to = terms[last - len]; - if (to && from) { - to.post += from.post; //this isn't perfect. - to.post = to.post.replace(/ +([.?!,;:])/, '$1'); - // don't allow any silly punctuation outcomes like ',!' - to.post = to.post.replace(/[,;:]+([.?!])/, '$1'); - } - }; - - // remove terms from document json - const pluckOut = function (document, nots) { - nots.forEach(ptr => { - let [n, start, end] = ptr; - let len = end - start; - if (!document[n]) { - return // weird! - } - if (end === document[n].length && end > 1) { - repairPunct(document[n], len); - } - document[n].splice(start, len); // replaces len terms at index start - }); - // remove any now-empty sentences - // (foreach + splice = 'mutable filter') - for (let i = document.length - 1; i >= 0; i -= 1) { - if (document[i].length === 0) { - document.splice(i, 1); - // remove any trailing whitespace before our removed sentence - if (i === document.length && document[i - 1]) { - let terms = document[i - 1]; - let lastTerm = terms[terms.length - 1]; - if (lastTerm) { - lastTerm.post = lastTerm.post.trimEnd(); - } - } - // repair any downstream indexes - // for (let k = i; k < document.length; k += 1) { - // document[k].forEach(term => term.index[0] -= 1) - // } - } - } - return document - }; - - var pluckOutTerm = pluckOut; - - const fixPointers$1 = function (ptrs, gonePtrs) { - ptrs = ptrs.map(ptr => { - let [n] = ptr; - if (!gonePtrs[n]) { - return ptr - } - gonePtrs[n].forEach(no => { - let len = no[2] - no[1]; - // does it effect our pointer? - if (ptr[1] <= no[1] && ptr[2] >= no[2]) { - ptr[2] -= len; - } - }); - return ptr - }); - - // decrement any pointers after a now-empty pointer - ptrs.forEach((ptr, i) => { - // is the pointer now empty? - if (ptr[1] === 0 && ptr[2] == 0) { - // go down subsequent pointers - for (let n = i + 1; n < ptrs.length; n += 1) { - ptrs[n][0] -= 1; - if (ptrs[n][0] < 0) { - ptrs[n][0] = 0; - } - } - } - }); - // remove any now-empty pointers - ptrs = ptrs.filter(ptr => ptr[2] - ptr[1] > 0); - - // remove old hard-pointers - ptrs = ptrs.map((ptr) => { - ptr[3] = null; - ptr[4] = null; - return ptr - }); - return ptrs - }; - - const methods$k = { - /** */ - remove: function (reg) { - const { indexN } = this.methods.one.pointer; - // two modes: - // - a. remove self, from full parent - let self = this.all(); - let not = this; - // - b. remove a match, from self - if (reg) { - self = this; - not = this.match(reg); - } - // is it part of a contraction? - if (self.has('@hasContraction') && self.contractions) { - let more = self.grow('@hasContraction'); - more.contractions().expand(); - } - - let ptrs = self.fullPointer; - let nots = not.fullPointer.reverse(); - // remove them from the actual document) - let document = pluckOutTerm(this.document, nots); - // repair our pointers - let gonePtrs = indexN(nots); - ptrs = fixPointers$1(ptrs, gonePtrs); - - // clean up our original inputs - self.ptrs = ptrs; - self.document = document; - self.compute('index'); - if (!reg) { - this.ptrs = []; - return self.none() - } - // self._cache = null - let res = self.toView(ptrs); //return new document - return res - }, - }; - - // aliases - methods$k.delete = methods$k.remove; - var remove = methods$k; - - const methods$j = { - /** add this punctuation or whitespace before each match: */ - pre: function (str, concat) { - if (str === undefined && this.found) { - return this.docs[0][0].pre - } - this.docs.forEach(terms => { - let term = terms[0]; - if (concat === true) { - term.pre += str; - } else { - term.pre = str; - } - }); - return this - }, - - /** add this punctuation or whitespace after each match: */ - post: function (str, concat) { - if (str === undefined) { - let last = this.docs[this.docs.length - 1]; - return last[last.length - 1].post - } - this.docs.forEach(terms => { - let term = terms[terms.length - 1]; - if (concat === true) { - term.post += str; - } else { - term.post = str; - } - }); - return this - }, - - /** remove whitespace from start/end */ - trim: function () { - if (!this.found) { - return this - } - let docs = this.docs; - let start = docs[0][0]; - start.pre = start.pre.trimStart(); - let last = docs[docs.length - 1]; - let end = last[last.length - 1]; - end.post = end.post.trimEnd(); - return this - }, - - /** connect words with hyphen, and remove whitespace */ - hyphenate: function () { - this.docs.forEach(terms => { - //remove whitespace - terms.forEach((t, i) => { - if (i !== 0) { - t.pre = ''; - } - if (terms[i + 1]) { - t.post = '-'; - } - }); - }); - return this - }, - - /** remove hyphens between words, and set whitespace */ - dehyphenate: function () { - const hasHyphen = /[-–—]/; - this.docs.forEach(terms => { - //remove whitespace - terms.forEach(t => { - if (hasHyphen.test(t.post)) { - t.post = ' '; - } - }); - }); - return this - }, - - /** add quotations around these matches */ - toQuotations: function (start, end) { - start = start || `"`; - end = end || `"`; - this.docs.forEach(terms => { - terms[0].pre = start + terms[0].pre; - let last = terms[terms.length - 1]; - last.post = end + last.post; - }); - return this - }, - - /** add brackets around these matches */ - toParentheses: function (start, end) { - start = start || `(`; - end = end || `)`; - this.docs.forEach(terms => { - terms[0].pre = start + terms[0].pre; - let last = terms[terms.length - 1]; - last.post = end + last.post; - }); - return this - }, - }; - methods$j.deHyphenate = methods$j.dehyphenate; - methods$j.toQuotation = methods$j.toQuotations; - - var whitespace$1 = methods$j; - - /** alphabetical order */ - const alpha = (a, b) => { - if (a.normal < b.normal) { - return -1 - } - if (a.normal > b.normal) { - return 1 - } - return 0 - }; - - /** count the # of characters of each match */ - const length = (a, b) => { - let left = a.normal.trim().length; - let right = b.normal.trim().length; - if (left < right) { - return 1 - } - if (left > right) { - return -1 - } - return 0 - }; - - /** count the # of terms in each match */ - const wordCount$2 = (a, b) => { - if (a.words < b.words) { - return 1 - } - if (a.words > b.words) { - return -1 - } - return 0 - }; - - /** count the # of terms in each match */ - const sequential = (a, b) => { - if (a[0] < b[0]) { - return 1 - } - if (a[0] > b[0]) { - return -1 - } - return a[1] > b[1] ? 1 : -1 - }; - - /** sort by # of duplicates in the document*/ - const byFreq = function (arr) { - let counts = {}; - arr.forEach(o => { - counts[o.normal] = counts[o.normal] || 0; - counts[o.normal] += 1; - }); - // sort by freq - arr.sort((a, b) => { - let left = counts[a.normal]; - let right = counts[b.normal]; - if (left < right) { - return 1 - } - if (left > right) { - return -1 - } - return 0 - }); - return arr - }; - - var methods$i = { alpha, length, wordCount: wordCount$2, sequential, byFreq }; - - // aliases - const seqNames = new Set(['index', 'sequence', 'seq', 'sequential', 'chron', 'chronological']); - const freqNames = new Set(['freq', 'frequency', 'topk', 'repeats']); - const alphaNames = new Set(['alpha', 'alphabetical']); - - // support function as parameter - const customSort = function (view, fn) { - let ptrs = view.fullPointer; - ptrs = ptrs.sort((a, b) => { - a = view.update([a]); - b = view.update([b]); - return fn(a, b) - }); - view.ptrs = ptrs; //mutate original - return view - }; - - /** re-arrange the order of the matches (in place) */ - const sort = function (input) { - let { docs, pointer } = this; - if (typeof input === 'function') { - return customSort(this, input) - } - input = input || 'alpha'; - let ptrs = pointer || docs.map((_d, n) => [n]); - let arr = docs.map((terms, n) => { - return { - index: n, - words: terms.length, - normal: terms.map(t => t.machine || t.normal || '').join(' '), - pointer: ptrs[n], - } - }); - // 'chronological' sorting - if (seqNames.has(input)) { - input = 'sequential'; - } - // alphabetical sorting - if (alphaNames.has(input)) { - input = 'alpha'; - } - // sort by frequency - if (freqNames.has(input)) { - arr = methods$i.byFreq(arr); - return this.update(arr.map(o => o.pointer)) - } - // apply sort method on each phrase - if (typeof methods$i[input] === 'function') { - arr = arr.sort(methods$i[input]); - return this.update(arr.map(o => o.pointer)) - } - return this - }; - - /** reverse the order of the matches, but not the words or index */ - const reverse$2 = function () { - let ptrs = this.pointer || this.docs.map((_d, n) => [n]); - ptrs = [].concat(ptrs); - ptrs = ptrs.reverse(); - return this.update(ptrs) - }; - - /** remove any duplicate matches */ - const unique = function () { - let already = new Set(); - let res = this.filter(m => { - let txt = m.text('machine'); - if (already.has(txt)) { - return false - } - already.add(txt); - return true - }); - // this.ptrs = res.ptrs //mutate original? - return res//.compute('index') - }; - - var sort$1 = { unique, reverse: reverse$2, sort }; - - const isArray$6 = (arr) => Object.prototype.toString.call(arr) === '[object Array]'; - - // append a new document, somehow - const combineDocs = function (homeDocs, inputDocs) { - // add a space - let end = homeDocs[homeDocs.length - 1]; - let last = end[end.length - 1]; - if (/ /.test(last.post) === false) { - last.post += ' '; - } - homeDocs = homeDocs.concat(inputDocs); - return homeDocs - }; - - const combineViews = function (home, input) { - // is it a view from the same document? - if (home.document === input.document) { - let ptrs = home.fullPointer.concat(input.fullPointer); - return home.toView(ptrs).compute('index') - } - // update n of new pointer, to end of our pointer - let ptrs = input.fullPointer; - ptrs.forEach(a => { - a[0] += home.document.length; - }); - home.document = combineDocs(home.document, input.document); - return home.all() - }; - - var concat = { - // add string as new match/sentence - concat: function (input) { - const { methods, document, world } = this; - // parse and splice-in new terms - if (typeof input === 'string') { - let json = methods.one.tokenize.fromString(input, world); - let ptrs = this.fullPointer; - let lastN = ptrs[ptrs.length - 1][0]; - spliceArr(document, lastN + 1, json); - return this.compute('index') - } - // plop some view objects together - if (typeof input === 'object' && input.isView) { - return combineViews(this, input) - } - // assume it's an array of terms - if (isArray$6(input)) { - let docs = combineDocs(this.document, input); - this.document = docs; - return this.all() - } - return this - }, - }; - - // add indexes to pointers - const harden = function () { - this.ptrs = this.fullPointer; - return this - }; - // remove indexes from pointers - const soften = function () { - let ptr = this.ptrs; - if (!ptr || ptr.length < 1) { - return this - } - ptr = ptr.map(a => a.slice(0, 3)); - this.ptrs = ptr; - return this - }; - var harden$1 = { harden, soften }; - - const methods$h = Object.assign({}, caseFns, insert$1, replace, remove, whitespace$1, sort$1, concat, harden$1); - - const addAPI$2 = function (View) { - Object.assign(View.prototype, methods$h); - }; - var api$w = addAPI$2; - - const compute$9 = { - id: function (view) { - let docs = view.docs; - for (let n = 0; n < docs.length; n += 1) { - for (let i = 0; i < docs[n].length; i += 1) { - let term = docs[n][i]; - term.id = term.id || uuid(term); - } - } - } - }; - - var compute$a = compute$9; - - var change = { - api: api$w, - compute: compute$a, - }; - - var contractions$3 = [ - // simple mappings - { word: '@', out: ['at'] }, - { word: 'alot', out: ['a', 'lot'] }, - { word: 'brb', out: ['be', 'right', 'back'] }, - { word: 'cannot', out: ['can', 'not'] }, - { word: 'cant', out: ['can', 'not'] }, - { word: 'dont', out: ['do', 'not'] }, - { word: 'dun', out: ['do', 'not'] }, - { word: 'wont', out: ['will', 'not'] }, - { word: "can't", out: ['can', 'not'] }, - { 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 - { word: 'gimme', out: ['give', 'me'] }, - { word: 'tryna', out: ['trying', 'to'] }, - { word: 'gtg', out: ['got', 'to', 'go'] }, - { word: 'im', out: ['i', 'am'] }, - { word: 'imma', out: ['I', 'will'] }, - { word: 'imo', out: ['in', 'my', 'opinion'] }, - { word: 'irl', out: ['in', 'real', 'life'] }, - { word: 'ive', out: ['i', 'have'] }, - { word: 'rn', out: ['right', 'now'] }, - { word: 'tbh', out: ['to', 'be', 'honest'] }, - { word: 'wanna', out: ['want', 'to'] }, - { word: `c'mere`, out: ['come', 'here'] }, - { word: `c'mon`, out: ['come', 'on'] }, - // apostrophe d - { word: 'howd', out: ['how', 'did'] }, - { word: 'whatd', out: ['what', 'did'] }, - { word: 'whend', out: ['when', 'did'] }, - { word: 'whered', out: ['where', 'did'] }, - - // { after: `cause`, out: ['because'] }, - { word: "tis", out: ['it', 'is'] }, - { word: "twas", out: ['it', 'was'] }, - { word: `y'know`, out: ['you', 'know'] }, - { word: "ne'er", out: ['never'] }, - { word: "o'er", out: ['over'] }, - // contraction-part mappings - { after: 'll', out: ['will'] }, - { after: 've', out: ['have'] }, - { after: 're', out: ['are'] }, - { after: 'm', out: ['am'] }, - // french contractions - { before: 'c', out: ['ce'] }, - { before: 'm', out: ['me'] }, - { before: 'n', out: ['ne'] }, - { before: 'qu', out: ['que'] }, - { before: 's', out: ['se'] }, - { before: 't', out: ['tu'] }, // t'aime - ]; - - var model$6 = { one: { contractions: contractions$3 } }; - - // put n new words where 1 word was - const insertContraction$1 = function (document, point, words) { - let [n, w] = point; - if (!words || words.length === 0) { - return - } - 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]) { - // move whitespace over - words[0].pre = document[n][w].pre; - words[words.length - 1].post = document[n][w].post; - // add the text/normal to the first term - words[0].text = document[n][w].text; - words[0].normal = document[n][w].normal; // move tags too? - } - // do the splice - document[n].splice(w, 1, ...words); - }; - var splice$1 = insertContraction$1; - - const hasContraction$3 = /'/; - //look for a past-tense verb - // const hasPastTense = (terms, i) => { - // let after = terms.slice(i + 1, i + 3) - // return after.some(t => t.tags.has('PastTense')) - // } - // he'd walked -> had - // how'd -> did - // he'd go -> would - - const alwaysDid = new Set([ - 'what', - 'how', - 'when', - 'where', - 'why', - ]); - - // after-words - const useWould = new Set([ - 'be', - 'go', - 'start', - 'think', - 'need', - ]); - - const useHad = new Set([ - 'been', - 'gone' - ]); - // they'd gone - // they'd go - - - // he'd been - // he had been - // he would been - - const _apostropheD$1 = function (terms, i) { - let before = terms[i].normal.split(hasContraction$3)[0]; - - // what'd, how'd - if (alwaysDid.has(before)) { - return [before, 'did'] - } - if (terms[i + 1]) { - // they'd gone - if (useHad.has(terms[i + 1].normal)) { - return [before, 'had'] - } - // they'd go - if (useWould.has(terms[i + 1].normal)) { - return [before, 'would'] - } - } - return null - // if (hasPastTense(terms, i) === true) { - // return [before, 'had'] - // } - // // had/would/did - // return [before, 'would'] - }; - var apostropheD$1 = _apostropheD$1; - - //ain't -> are/is not - const apostropheT$2 = function (terms, i) { - if (terms[i].normal === "ain't" || terms[i].normal === 'aint') { - return null //do this in ./two/ - } - let before = terms[i].normal.replace(/n't/, ''); - return [before, 'not'] - }; - - var apostropheT$3 = apostropheT$2; - - const hasContraction$2 = /'/; - - // l'amour - const preL = (terms, i) => { - // le/la - let after = terms[i].normal.split(hasContraction$2)[1]; - // quick french gender disambig (rough) - if (after && after.endsWith('e')) { - return ['la', after] - } - return ['le', after] - }; - - // d'amerique - const preD = (terms, i) => { - let after = terms[i].normal.split(hasContraction$2)[1]; - // quick guess for noun-agreement (rough) - if (after && after.endsWith('e')) { - return ['du', after] - } else if (after && after.endsWith('s')) { - return ['des', after] - } - return ['de', after] - }; - - // j'aime - const preJ = (terms, i) => { - let after = terms[i].normal.split(hasContraction$2)[1]; - return ['je', after] - }; - - var french = { - preJ, - preL, - preD, - }; - - 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]; - 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); - if (parts !== null) { - return [parts[1], 'to', parts[4]] - } - } - return null - }; - var numberRange$1 = numberRange; - - const byApostrophe$1 = /'/; - const numDash = /^[0-9][^-–—]*[-–—].*?[0-9]/; - - // run tagger on our new implicit terms - const reTag$1 = function (terms, view, start, len) { - let tmp = view.update(); - tmp.document = [terms]; - // offer to re-tag neighbours, too - let end = start + len; - if (start > 0) { - start -= 1; - } - if (terms[end]) { - end += 1; - } - tmp.ptrs = [[0, start, end]]; - tmp.compute('lexicon'); - if (tmp.world.compute.preTagger) { - tmp.compute('preTagger'); - } - }; - - const byEnd$1 = { - // ain't - t: (terms, i) => apostropheT$3(terms, i), - // how'd - d: (terms, i) => apostropheD$1(terms, i), - }; - - const byStart = { - // j'aime - j: (terms, i) => french.preJ(terms, i), - // l'amour - l: (terms, i) => french.preL(terms, i), - // d'amerique - d: (terms, i) => french.preD(terms, i), - }; - - // pull-apart known contractions from model - const knownOnes = function (list, term, before, after) { - for (let i = 0; i < list.length; i += 1) { - let o = list[i]; - // look for word-word match (cannot-> [can, not]) - if (o.word === term.normal) { - return o.out - } - // look for after-match ('re -> [_, are]) - else if (after !== null && after === o.after) { - return [before].concat(o.out) - } - // look for before-match (l' -> [le, _]) - else if (before !== null && before === o.before) { - return o.out.concat(after) - // return [o.out, after] //typeof o.out === 'string' ? [o.out, after] : o.out(terms, i) - } - } - return null - }; - - const toDocs$1 = function (words, view) { - let doc = view.fromText(words.join(' ')); - doc.compute('id'); - return doc.docs[0] - }; - - //really easy ones - const contractions$1 = (view) => { - let { world, document } = view; - const { model, methods } = world; - let list = model.one.contractions || []; - // each sentence - document.forEach((terms, n) => { - // loop through terms backwards - for (let i = terms.length - 1; i >= 0; i -= 1) { - let before = null; - let after = null; - if (byApostrophe$1.test(terms[i].normal) === true) { - [before, after] = terms[i].normal.split(byApostrophe$1); - } - // any known-ones, like 'dunno'? - let words = knownOnes(list, terms[i], before, after); - // ['foo', 's'] - if (!words && byEnd$1.hasOwnProperty(after)) { - words = byEnd$1[after](terms, i, world); - } - // ['j', 'aime'] - if (!words && byStart.hasOwnProperty(before)) { - words = byStart[before](terms, i); - } - // actually insert the new terms - if (words) { - words = toDocs$1(words, view); - splice$1(document, [n, i], words); - reTag$1(document[n], view, i, words.length); - continue - } - // '44-2' has special care - if (numDash.test(terms[i].normal)) { - words = numberRange$1(terms, i); - if (words) { - words = toDocs$1(words, view); - splice$1(document, [n, i], words); - 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); - } - reTag$1(document[n], view, i, words.length); - } - } - } - }); - }; - var contractions$2 = contractions$1; - - var compute$8 = { contractions: contractions$2 }; - - const plugin$3 = { - model: model$6, - compute: compute$8, - hooks: ['contractions'], - }; - var contractions = plugin$3; - - // scan-ahead to match multiple-word terms - 'jack rabbit' - const checkMulti = function (terms, i, lexicon, setTag, world) { - let max = i + 4 > terms.length ? terms.length - i : 4; - let str = terms[i].machine || terms[i].normal; - for (let skip = 1; skip < max; skip += 1) { - let t = terms[i + skip]; - let word = t.machine || t.normal; - str += ' ' + word; - if (lexicon.hasOwnProperty(str) === true) { - let tag = lexicon[str]; - let ts = terms.slice(i, i + skip + 1); - setTag(ts, tag, world, false, '1-multi-lexicon'); - return true - } - } - return false - }; - - const multiWord = function (terms, i, world) { - const { model, methods } = world; - // const { fastTag } = methods.one - const setTag = methods.one.setTag; - const multi = model.one._multiCache || {}; - const lexicon = model.one.lexicon || {}; - // basic lexicon lookup - let t = terms[i]; - let word = t.machine || t.normal; - // multi-word lookup - if (terms[i + 1] !== undefined && multi[word] === true) { - return checkMulti(terms, i, lexicon, setTag, world) - } - return null - }; - var multiWord$1 = multiWord; - - const prefix$4 = /^(under|over|mis|re|un|dis|semi|pre|post)-?/; - // anti|non|extra|inter|intra|over - const allowPrefix = new Set(['Verb', 'Infinitive', 'PastTense', 'Gerund', 'PresentTense', 'Adjective', 'Participle']); - - // tag any words in our lexicon - const checkLexicon = function (terms, i, world) { - const { model, methods } = world; - // const fastTag = methods.one.fastTag - const setTag = methods.one.setTag; - const lexicon = model.one.lexicon; - - // basic lexicon lookup - let t = terms[i]; - let word = t.machine || t.normal; - // normal lexicon lookup - if (lexicon[word] !== undefined && lexicon.hasOwnProperty(word)) { - let tag = lexicon[word]; - setTag([t], tag, world, false, '1-lexicon'); - // fastTag(t, tag, '1-lexicon') - return true - } - // lookup aliases in the lexicon - if (t.alias) { - let found = t.alias.find(str => lexicon.hasOwnProperty(str)); - if (found) { - let tag = lexicon[found]; - setTag([t], tag, world, false, '1-lexicon-alias'); - // fastTag(t, tag, '1-lexicon-alias') - return true - } - } - // prefixing for verbs/adjectives - if (prefix$4.test(word) === true) { - let stem = word.replace(prefix$4, ''); - if (lexicon.hasOwnProperty(stem) && stem.length > 3) { - // only allow prefixes for verbs/adjectives - if (allowPrefix.has(lexicon[stem])) { - // console.log('->', word, stem, lexicon[stem]) - setTag([t], lexicon[stem], world, false, '1-lexicon-prefix'); - // fastTag(t, lexicon[stem], '1-lexicon-prefix') - return true - } - } - } - return null - }; - var singleWord = checkLexicon; - - // 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 world = view.world; - view.docs.forEach(terms => { - for (let i = 0; i < terms.length; i += 1) { - if (terms[i].tags.size === 0) { - let found = null; - found = found || multiWord$1(terms, i, world); - // lookup known words - found = found || singleWord(terms, i, world); - } - } - }); - }; - - var compute$7 = { - lexicon: firstPass - }; - - // derive clever things from our lexicon key-value pairs - const expand$3 = function (words) { - // const { methods, model } = world - 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(); - // cache multi-word terms - let split = word.split(/ /); - if (split.length > 1) { - _multi[split[0]] = true; - } - lex[word] = lex[word] || tag; - }); - // cleanup - delete lex['']; - delete lex[null]; - delete lex[' ']; - return { lex, _multi } - }; - var expandLexicon$3 = expand$3; - - var methods$g = { - one: { - expandLexicon: expandLexicon$3, - } - }; - - /** insert new words/phrases into the lexicon */ - const addWords = function (words) { - const world = this.world(); - const { methods, model } = world; - if (!words) { - return - } - // normalize tag vals - Object.keys(words).forEach(k => { - if (typeof words[k] === 'string' && words[k].startsWith('#')) { - words[k] = words[k].replace(/^#/, ''); - } - }); - // add some words to our lexicon - if (methods.two.expandLexicon) { - // do fancy ./two version - let { lex, _multi } = methods.two.expandLexicon(words, world); - Object.assign(model.one.lexicon, lex); - Object.assign(model.one._multiCache, _multi); - } else if (methods.one.expandLexicon) { - // do basic ./one version - let { lex, _multi } = methods.one.expandLexicon(words, world); - Object.assign(model.one.lexicon, lex); - Object.assign(model.one._multiCache, _multi); - } else { - //no fancy-business - Object.assign(model.one.lexicon, words); - } - }; - - var lib$5 = { addWords }; - - const model$5 = { - one: { - lexicon: {}, //setup blank lexicon - _multiCache: {}, - } - }; - - var lexicon$2 = { - model: model$5, - methods: methods$g, - compute: compute$7, - lib: lib$5, - hooks: ['lexicon'] - }; - - // edited by Spencer Kelly - // credit to https://github.com/BrunoRB/ahocorasick by Bruno Roberto Búrigo. - - const tokenize$2 = function (phrase, world) { - const { methods, model } = world; - let terms = methods.one.tokenize.splitTerms(phrase, model).map(methods.one.tokenize.splitWhitespace); - return terms.map(term => term.text.toLowerCase()) - }; - - // turn an array or object into a compressed aho-corasick structure - const buildTrie = function (phrases, world) { - - // const tokenize=methods.one. - let goNext = [{}]; - let endAs = [null]; - let failTo = [0]; - - let xs = []; - let n = 0; - phrases.forEach(function (phrase) { - let curr = 0; - // let wordsB = phrase.split(/ /g).filter(w => w) - let words = tokenize$2(phrase, world); - for (let i = 0; i < words.length; i++) { - let word = words[i]; - if (goNext[curr] && goNext[curr].hasOwnProperty(word)) { - curr = goNext[curr][word]; - } else { - n++; - goNext[curr][word] = n; - goNext[n] = {}; - curr = n; - endAs[n] = null; - } - } - endAs[curr] = [words.length]; - }); - // f(s) = 0 for all states of depth 1 (the ones from which the 0 state can transition to) - for (let word in goNext[0]) { - n = goNext[0][word]; - failTo[n] = 0; - xs.push(n); - } - - while (xs.length) { - let r = xs.shift(); - // for each symbol a such that g(r, a) = s - let keys = Object.keys(goNext[r]); - for (let i = 0; i < keys.length; i += 1) { - let word = keys[i]; - let s = goNext[r][word]; - xs.push(s); - // set state = f(r) - n = failTo[r]; - while (n > 0 && !goNext[n].hasOwnProperty(word)) { - n = failTo[n]; - } - if (goNext.hasOwnProperty(n)) { - let fs = goNext[n][word]; - failTo[s] = fs; - if (endAs[fs]) { - endAs[s] = endAs[s] || []; - endAs[s] = endAs[s].concat(endAs[fs]); - } - } else { - failTo[s] = 0; - } - } - } - return { goNext, endAs, failTo } - }; - var build = buildTrie; - - // console.log(buildTrie(['smart and cool', 'smart and nice'])) - - // follow our trie structure - const scanWords = function (terms, trie, opts) { - let n = 0; - let results = []; - for (let i = 0; i < terms.length; i++) { - let word = terms[i][opts.form] || terms[i].normal; - // main match-logic loop: - while (n > 0 && (trie.goNext[n] === undefined || !trie.goNext[n].hasOwnProperty(word))) { - n = trie.failTo[n] || 0; // (usually back to 0) - } - // did we fail? - if (!trie.goNext[n].hasOwnProperty(word)) { - continue - } - n = trie.goNext[n][word]; - if (trie.endAs[n]) { - let arr = trie.endAs[n]; - for (let o = 0; o < arr.length; o++) { - let len = arr[o]; - let term = terms[i - len + 1]; - let [no, start] = term.index; - results.push([no, start, start + len, term.id]); - } - } - } - return results - }; - - const cacheMiss = function (words, cache) { - for (let i = 0; i < words.length; i += 1) { - if (cache.has(words[i]) === true) { - return false - } - } - return true - }; - - const scan = function (view, trie, opts) { - let results = []; - opts.form = opts.form || 'normal'; - let docs = view.docs; - if (!trie.goNext || !trie.goNext[0]) { - console.error('Compromise invalid lookup trie');//eslint-disable-line - return view.none() - } - let firstWords = Object.keys(trie.goNext[0]); - // do each phrase - for (let i = 0; i < docs.length; i++) { - // can we skip the phrase, all together? - if (view._cache && view._cache[i] && cacheMiss(firstWords, view._cache[i]) === true) { - continue - } - let terms = docs[i]; - let found = scanWords(terms, trie, opts); - if (found.length > 0) { - results = results.concat(found); - } - } - return view.update(results) - }; - var scan$1 = scan; - - const isObject$4 = val => { - return Object.prototype.toString.call(val) === '[object Object]' - }; - - function api$v (View) { - - /** find all matches in this document */ - View.prototype.lookup = function (input, opts = {}) { - if (!input) { - return this.none() - } - if (typeof input === 'string') { - input = [input]; - } - let trie = isObject$4(input) ? input : build(input, this.world); - let res = scan$1(this, trie, opts); - res = res.settle(); - return res - }; - } - - // chop-off tail of redundant vals at end of array - const truncate = (list, val) => { - for (let i = list.length - 1; i >= 0; i -= 1) { - if (list[i] !== val) { - list = list.slice(0, i + 1); - return list - } - } - return list - }; - - // prune trie a bit - const compress = function (trie) { - trie.goNext = trie.goNext.map(o => { - if (Object.keys(o).length === 0) { - return undefined - } - return o - }); - // chop-off tail of undefined vals in goNext array - trie.goNext = truncate(trie.goNext, undefined); - // chop-off tail of zeros in failTo array - trie.failTo = truncate(trie.failTo, 0); - // chop-off tail of nulls in endAs array - trie.endAs = truncate(trie.endAs, null); - return trie - }; - var compress$1 = compress; - - /** pre-compile a list of matches to lookup */ - const lib$4 = { - /** turn an array or object into a compressed trie*/ - compile: function (input) { - const trie = build(input, this.world()); - return compress$1(trie) - } - }; - - var lookup = { - api: api$v, - lib: lib$4 - }; - - const relPointer = function (ptrs, parent) { - if (!parent) { - return ptrs - } - ptrs.forEach(ptr => { - let n = ptr[0]; - if (parent[n]) { - ptr[0] = parent[n][0]; //n - ptr[1] += parent[n][1]; //start - ptr[2] += parent[n][1]; //end - } - }); - return ptrs - }; - - // make match-result relative to whole document - const fixPointers = function (res, parent) { - let { ptrs, byGroup } = res; - ptrs = relPointer(ptrs, parent); - Object.keys(byGroup).forEach(k => { - byGroup[k] = relPointer(byGroup[k], parent); - }); - return { ptrs, byGroup } - }; - - const isObject$3 = val => { - return Object.prototype.toString.call(val) === '[object Object]' - }; - - // did they pass-in a compromise object? - const isView = val => val && isObject$3(val) && val.isView === true; - - const isNet = val => val && isObject$3(val) && val.isNet === true; - - - // is the pointer the full sentence? - // export const isFull = function (ptr, document) { - // let [n, start, end] = ptr - // if (start !== 0) { - // return false - // } - // if (document[n] && document[n][end - 1] && !document[n][end]) { - // return true - // } - // return false - // } - - const match$2 = function (regs, group, opts) { - const one = this.methods.one; - // support param as view object - if (isView(regs)) { - return this.intersection(regs) - } - // support a compiled set of matches - 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); - } - 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 - }; - - const matchOne = function (regs, group, opts) { - const one = this.methods.one; - // support at view as a param - if (isView(regs)) { - return this.intersection(regs).eq(0) - } - // support a compiled set of matches - 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); - } - let todo = { regs, group, justOne: true }; - let res = one.match(this.docs, todo, this._cache); - let { ptrs, byGroup } = fixPointers(res, this.fullPointer); - let view = this.toView(ptrs); - view._groups = byGroup; - return view - }; - - const has = function (regs, group, opts) { - const one = this.methods.one; - // support view as input - if (isView(regs)) { - let ptrs = regs.fullPointer; // support a view object as input - return ptrs.length > 0 - } - // support a compiled set of matches - 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); - } - let todo = { regs, group, justOne: true }; - let ptrs = one.match(this.docs, todo, this._cache).ptrs; - return ptrs.length > 0 - }; - - // 'if' - const ifFn = function (regs, group, opts) { - const one = this.methods.one; - // support view as input - if (isView(regs)) { - return this.filter(m => m.intersection(regs).found) - } - // support a compiled set of matches - if (isNet(regs)) { - 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); - } - let todo = { regs, group, justOne: true }; - let ptrs = this.fullPointer; - let cache = this._cache || []; - ptrs = ptrs.filter((ptr, i) => { - let m = this.update([ptr]); - let res = one.match(m.docs, todo, cache[i]).ptrs; - return res.length > 0 - }); - let view = this.update(ptrs); - // try and reconstruct the cache - if (this._cache) { - view._cache = ptrs.map(ptr => cache[ptr[0]]); - } - return view - }; - - const ifNo = function (regs, group, opts) { - const { methods } = this; - const one = methods.one; - // support a view object as input - if (isView(regs)) { - return this.filter(m => !m.intersection(regs).found) - } - // support a compiled set of matches - if (isNet(regs)) { - let m = this.sweep(regs, { tagger: false }).view.settle(); - 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); - } - let cache = this._cache || []; - let view = this.filter((m, i) => { - let todo = { regs, group, justOne: true }; - let ptrs = one.match(m.docs, todo, cache[i]).ptrs; - return ptrs.length === 0 - }); - // try to reconstruct the cache - if (this._cache) { - view._cache = view.ptrs.map(ptr => cache[ptr[0]]); - } - return view - }; - - var match$3 = { matchOne, match: match$2, has, if: ifFn, ifNo }; - - const before = function (regs, group, opts) { - const { indexN } = this.methods.one.pointer; - let pre = []; - let byN = indexN(this.fullPointer); - Object.keys(byN).forEach(k => { - // check only the earliest match in the sentence - let first = byN[k].sort((a, b) => (a[1] > b[1] ? 1 : -1))[0]; - if (first[1] > 0) { - pre.push([first[0], 0, first[1]]); - } - }); - let preWords = this.toView(pre); - if (!regs) { - return preWords - } - return preWords.match(regs, group, opts) - }; - - const after = function (regs, group, opts) { - const { indexN } = this.methods.one.pointer; - let post = []; - let byN = indexN(this.fullPointer); - let document = this.document; - Object.keys(byN).forEach(k => { - // check only the latest match in the sentence - let last = byN[k].sort((a, b) => (a[1] > b[1] ? -1 : 1))[0]; - let [n, , end] = last; - if (end < document[n].length) { - post.push([n, end, document[n].length]); - } - }); - let postWords = this.toView(post); - if (!regs) { - return postWords - } - return postWords.match(regs, group, opts) - }; - - const growLeft = function (regs, group, opts) { - if (typeof regs === 'string') { - 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; - this.forEach((m, n) => { - let more = m.before(regs, group); - if (more.found) { - let terms = more.terms(); - ptrs[n][1] -= terms.length; - ptrs[n][3] = terms.docs[0][0].id; - } - }); - return this.update(ptrs) - }; - - const growRight = function (regs, group, opts) { - if (typeof regs === 'string') { - regs = this.world.methods.one.parseMatch(regs, opts, this.world); - } - regs[0].start = true;// ensure matches are beside us → - let ptrs = this.fullPointer; - this.forEach((m, n) => { - let more = m.after(regs, group); - if (more.found) { - let terms = more.terms(); - ptrs[n][2] += terms.length; - ptrs[n][4] = null; //remove end-id - } - }); - return this.update(ptrs) - }; - - const grow = function (regs, group, opts) { - return this.growRight(regs, group, opts).growLeft(regs, group, opts) - }; - - var lookaround = { before, after, growLeft, growRight, grow }; - - const combine = function (left, right) { - return [left[0], left[1], right[2]] - }; - - const isArray$5 = function (arr) { - return Object.prototype.toString.call(arr) === '[object Array]' - }; - - const getDoc$3 = (reg, view, group) => { - if (typeof reg === 'string' || isArray$5(reg)) { - return view.match(reg, group) - } - if (!reg) { - return view.none() - } - return reg - }; - - const addIds$1 = function (ptr, view) { - let [n, start, end] = ptr; - if (view.document[n] && view.document[n][start]) { - ptr[3] = ptr[3] || view.document[n][start].id; - if (view.document[n][end - 1]) { - ptr[4] = ptr[4] || view.document[n][end - 1].id; - } - } - return ptr - }; - - const methods$f = {}; - // [before], [match], [after] - methods$f.splitOn = function (m, group) { - const { splitAll } = this.methods.one.pointer; - let splits = getDoc$3(m, this, group).fullPointer; - let all = splitAll(this.fullPointer, splits); - let res = []; - all.forEach(o => { - res.push(o.passthrough); - res.push(o.before); - res.push(o.match); - res.push(o.after); - }); - res = res.filter(p => p); - res = res.map(p => addIds$1(p, this)); - return this.update(res) - }; - - // [before], [match after] - methods$f.splitBefore = function (m, group) { - const { splitAll } = this.methods.one.pointer; - let splits = getDoc$3(m, this, group).fullPointer; - let all = splitAll(this.fullPointer, splits); - let res = []; - all.forEach(o => { - res.push(o.passthrough); - res.push(o.before); - if (o.match && o.after) { - // console.log(combine(o.match, o.after)) - res.push(combine(o.match, o.after)); - } else { - res.push(o.match); - res.push(o.after); - } - }); - res = res.filter(p => p); - res = res.map(p => addIds$1(p, this)); - return this.update(res) - }; - - // [before match], [after] - methods$f.splitAfter = function (m, group) { - const { splitAll } = this.methods.one.pointer; - let splits = getDoc$3(m, this, group).fullPointer; - let all = splitAll(this.fullPointer, splits); - let res = []; - all.forEach(o => { - res.push(o.passthrough); - if (o.before && o.match) { - res.push(combine(o.before, o.match)); - } else { - res.push(o.before); - res.push(o.match); - } - res.push(o.after); - }); - res = res.filter(p => p); - res = res.map(p => addIds$1(p, this)); - return this.update(res) - }; - methods$f.split = methods$f.splitAfter; - - var split$2 = methods$f; - - const methods$e = Object.assign({}, match$3, lookaround, split$2); - // aliases - methods$e.lookBehind = methods$e.before; - methods$e.lookBefore = methods$e.before; - - methods$e.lookAhead = methods$e.after; - methods$e.lookAfter = methods$e.after; - - methods$e.notIf = methods$e.ifNo; - const matchAPI = function (View) { - Object.assign(View.prototype, methods$e); - }; - var api$u = matchAPI; - - // match 'foo /yes/' and not 'foo/no/bar' - const bySlashes = /(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/; - // match '(yes) but not foo(no)bar' - const byParentheses = /([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/; - // okay - const byWord$1 = / /g; - - const isBlock = str => { - return /^[![^]*(<[^<]*>)?\(/.test(str) && /\)[?\]+*$~]*$/.test(str) - }; - const isReg = str => { - return /^[![^]*(<[^<]*>)?\//.test(str) && /\/[?\]+*$~]*$/.test(str) - }; - - const cleanUp$1 = function (arr) { - arr = arr.map(str => str.trim()); - arr = arr.filter(str => str); - return arr - }; - - const parseBlocks = function (txt) { - // parse by /regex/ first - let arr = txt.split(bySlashes); - let res = []; - // parse by (blocks), next - arr.forEach(str => { - if (isReg(str)) { - res.push(str); - return - } - res = res.concat(str.split(byParentheses)); - }); - res = cleanUp$1(res); - // split by spaces, now - let final = []; - res.forEach(str => { - if (isBlock(str)) { - final.push(str); - } else if (isReg(str)) { - final.push(str); - } else { - final = final.concat(str.split(byWord$1)); - } - }); - final = cleanUp$1(final); - return final - }; - var parseBlocks$1 = parseBlocks; - - const hasMinMax = /\{([0-9]+)?(, *[0-9]*)?\}/; - const andSign = /&&/; - // const hasDash = /\p{Letter}[-–—]\p{Letter}/u - const captureName = new RegExp(/^<\s*(\S+)\s*>/); - /* break-down a match expression into this: - { - word:'', - tag:'', - regex:'', - - start:false, - end:false, - negative:false, - anything:false, - greedy:false, - optional:false, - - named:'', - choices:[], - } - */ - const titleCase$2 = str => str.charAt(0).toUpperCase() + str.substring(1); - const end = (str) => str.charAt(str.length - 1); - const start = (str) => str.charAt(0); - const stripStart = (str) => str.substring(1); - const stripEnd = (str) => str.substring(0, str.length - 1); - - const stripBoth = function (str) { - str = stripStart(str); - str = stripEnd(str); - return str - }; - // - const parseToken = function (w, opts) { - let obj = {}; - //collect any flags (do it twice) - for (let i = 0; i < 2; i += 1) { - //end-flag - if (end(w) === '$') { - obj.end = true; - w = stripEnd(w); - } - //front-flag - if (start(w) === '^') { - obj.start = true; - w = stripStart(w); - } - //capture group (this one can span multiple-terms) - if (start(w) === '[' || end(w) === ']') { - obj.group = null; - if (start(w) === '[') { - obj.groupStart = true; - } - if (end(w) === ']') { - obj.groupEnd = true; - } - w = w.replace(/^\[/, ''); - w = w.replace(/\]$/, ''); - // Use capture group name - if (start(w) === '<') { - const res = captureName.exec(w); - if (res.length >= 2) { - obj.group = res[1]; - w = w.replace(res[0], ''); - } - } - } - //back-flags - if (end(w) === '+') { - obj.greedy = true; - w = stripEnd(w); - } - if (w !== '*' && end(w) === '*' && w !== '\\*') { - obj.greedy = true; - w = stripEnd(w); - } - if (end(w) === '?') { - obj.optional = true; - w = stripEnd(w); - } - if (start(w) === '!') { - obj.negative = true; - // obj.optional = true - w = stripStart(w); - } - //soft-match - if (start(w) === '~' && end(w) === '~' && w.length > 2) { - w = stripBoth(w); - obj.fuzzy = true; - obj.min = opts.fuzzy || 0.85; - if (/\(/.test(w) === false) { - obj.word = w; - return obj - } - } - - //wrapped-flags - if (start(w) === '(' && end(w) === ')') { - // support (one && two) - if (andSign.test(w)) { - obj.choices = w.split(andSign); - obj.operator = 'and'; - } else { - obj.choices = w.split('|'); - obj.operator = 'or'; - } - //remove '(' and ')' - obj.choices[0] = stripStart(obj.choices[0]); - let last = obj.choices.length - 1; - obj.choices[last] = stripEnd(obj.choices[last]); - // clean up the results - obj.choices = obj.choices.map(s => s.trim()); - obj.choices = obj.choices.filter(s => s); - //recursion alert! - obj.choices = obj.choices.map(str => { - return str.split(/ /g).map(s => parseToken(s, opts)) - }); - w = ''; - } - //regex - if (start(w) === '/' && end(w) === '/') { - w = stripBoth(w); - if (opts.caseSensitive) { - obj.use = 'text'; - } - obj.regex = new RegExp(w); //potential vuln - security/detect-non-literal-regexp - return obj - } - - //machine/sense overloaded - if (start(w) === '{' && end(w) === '}') { - w = stripBoth(w); - if (/\//.test(w)) { - obj.sense = w; - obj.greedy = true; - } else { - obj.machine = w; - } - return obj - } - //chunks - if (start(w) === '<' && end(w) === '>') { - w = stripBoth(w); - obj.chunk = titleCase$2(w); - obj.greedy = true; - return obj - } - if (start(w) === '%' && end(w) === '%') { - w = stripBoth(w); - obj.switch = w; - return obj - } - } - // support foo{1,9} - if (hasMinMax.test(w) === true) { - w = w.replace(hasMinMax, (_a, b, c) => { - if (c === undefined) { - // '{3}' Exactly three times - obj.min = Number(b); - obj.max = Number(b); - } else { - c = c.replace(/, */, ''); - if (b === undefined) { - // '{,9}' implied zero min - obj.min = 0; - obj.max = Number(c); - } else { - // '{2,4}' Two to four times - obj.min = Number(b); - // '{3,}' Three or more times - obj.max = Number(c || 999); - } - } - // use same method as '+' - obj.greedy = true; - // 0 as min means the same as '?' - if (!obj.min) { - obj.optional = true; - } - return '' - }); - } - //do the actual token content - if (start(w) === '#') { - obj.tag = stripStart(w); - obj.tag = titleCase$2(obj.tag); - return obj - } - //dynamic function on a term object - if (start(w) === '@') { - obj.method = stripStart(w); - return obj - } - if (w === '.') { - obj.anything = true; - return obj - } - //support alone-astrix - if (w === '*') { - obj.anything = true; - obj.greedy = true; - obj.optional = true; - return obj - } - if (w) { - //somehow handle encoded-chars? - w = w.replace('\\*', '*'); - w = w.replace('\\.', '.'); - if (opts.caseSensitive) { - obj.use = 'text'; - } else { - w = w.toLowerCase(); - } - 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; - - // name any [unnamed] capture-groups with a number - const nameGroups = function (regs) { - let index = 0; - let inGroup = null; - //'fill in' capture groups between start-end - for (let i = 0; i < regs.length; i++) { - const token = regs[i]; - if (token.groupStart === true) { - inGroup = token.group; - if (inGroup === null) { - inGroup = String(index); - index += 1; - } - } - if (inGroup !== null) { - token.group = inGroup; - } - if (token.groupEnd === true) { - inGroup = null; - } - } - return regs - }; - - // optimize an 'or' lookup, when the (a|b|c) list is simple or multi-word - const doFastOrMode = function (tokens) { - return tokens.map(token => { - if (token.choices !== undefined) { - // make sure it's an OR - if (token.operator !== 'or') { - return token - } - if (token.fuzzy === true) { - return token - } - // are they all straight-up words? then optimize them. - let shouldPack = token.choices.every(block => { - if (block.length !== 1) { - return false - } - let reg = block[0]; - // ~fuzzy~ words need more care - if (reg.fuzzy === true) { - return false - } - // ^ and $ get lost in fastOr - if (reg.start || reg.end) { - return false - } - if (reg.word !== undefined && reg.negative !== true && reg.optional !== true && reg.method !== true) { - return true //reg is simple-enough - } - return false - }); - if (shouldPack === true) { - token.fastOr = new Set(); - token.choices.forEach(block => { - token.fastOr.add(block[0].word); - }); - delete token.choices; - } - } - return token - }) - }; - - // support ~(a|b|c)~ - const fuzzyOr = function (regs) { - return regs.map(reg => { - if (reg.fuzzy && reg.choices) { - // pass fuzzy-data to each OR choice - reg.choices.forEach(r => { - if (r.length === 1 && r[0].word) { - r[0].fuzzy = true; - r[0].min = reg.min; - } - }); - } - return reg - }) - }; - - const postProcess = function (regs) { - // ensure all capture groups names are filled between start and end - regs = nameGroups(regs); - // convert 'choices' format to 'fastOr' format - regs = doFastOrMode(regs); - // support ~(foo|bar)~ - regs = fuzzyOr(regs); - return regs - }; - var postProcess$1 = postProcess; - - /** parse a match-syntax string into json */ - 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); - //clean up anything weird - tokens = postProcess$1(tokens); - // console.log(tokens) - return tokens - }; - var parseMatch = syntax; - - const anyIntersection = function (setA, setB) { - for (let elem of setB) { - if (setA.has(elem)) { - return true - } - } - return false - }; - // check words/tags against our cache - const failFast = function (regs, cache) { - for (let i = 0; i < regs.length; i += 1) { - let reg = regs[i]; - if (reg.optional === true || reg.negative === true || reg.fuzzy === true) { - continue - } - // is the word missing from the cache? - if (reg.word !== undefined && cache.has(reg.word) === false) { - return true - } - // is the tag missing? - if (reg.tag !== undefined && cache.has('#' + reg.tag) === false) { - return true - } - // perform a speedup for fast-or - if (reg.fastOr && anyIntersection(reg.fastOr, cache) === false) { - return false - } - } - return false - }; - var failFast$1 = failFast; - - // fuzzy-match (damerau-levenshtein) - // Based on tad-lispy /node-damerau-levenshtein - // https://github.com/tad-lispy/node-damerau-levenshtein/blob/master/index.js - // count steps (insertions, deletions, substitutions, or transpositions) - const editDistance = function (strA, strB) { - let aLength = strA.length, - bLength = strB.length; - // fail-fast - if (aLength === 0) { - return bLength - } - if (bLength === 0) { - return aLength - } - // If the limit is not defined it will be calculate from this and that args. - let limit = (bLength > aLength ? bLength : aLength) + 1; - if (Math.abs(aLength - bLength) > (limit || 100)) { - return limit || 100 - } - // init the array - let matrix = []; - for (let i = 0; i < limit; i++) { - matrix[i] = [i]; - matrix[i].length = limit; - } - for (let i = 0; i < limit; i++) { - matrix[0][i] = i; - } - // Calculate matrix. - let j, a_index, b_index, cost, min, t; - for (let i = 1; i <= aLength; ++i) { - a_index = strA[i - 1]; - for (j = 1; j <= bLength; ++j) { - // Check the jagged distance total so far - if (i === j && matrix[i][j] > 4) { - return aLength - } - b_index = strB[j - 1]; - cost = a_index === b_index ? 0 : 1; // Step 5 - // Calculate the minimum (much faster than Math.min(...)). - min = matrix[i - 1][j] + 1; // Deletion. - if ((t = matrix[i][j - 1] + 1) < min) min = t; // Insertion. - if ((t = matrix[i - 1][j - 1] + cost) < min) min = t; // Substitution. - // Update matrix. - let shouldUpdate = - i > 1 && j > 1 && a_index === strB[j - 2] && strA[i - 2] === b_index && (t = matrix[i - 2][j - 2] + cost) < min; - if (shouldUpdate) { - matrix[i][j] = t; - } else { - matrix[i][j] = min; - } - } - } - // return number of steps - return matrix[aLength][bLength] - }; - // score similarity by from 0-1 (steps/length) - const fuzzyMatch = function (strA, strB, minLength = 3) { - if (strA === strB) { - return 1 - } - //don't even bother on tiny strings - if (strA.length < minLength || strB.length < minLength) { - return 0 - } - const steps = editDistance(strA, strB); - let length = Math.max(strA.length, strB.length); - let relative = length === 0 ? 0 : steps / length; - let similarity = 1 - relative; - return similarity - }; - var fuzzy = fuzzyMatch; - - // these methods are called with '@hasComma' in the match syntax - // various unicode quotation-mark formats - const startQuote = - /([\u0022\uFF02\u0027\u201C\u2018\u201F\u201B\u201E\u2E42\u201A\u00AB\u2039\u2035\u2036\u2037\u301D\u0060\u301F])/; - - const endQuote = /([\u0022\uFF02\u0027\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4])/; - - const hasHyphen$1 = /^[-–—]$/; - const hasDash$1 = / [-–—] /; - - /** search the term's 'post' punctuation */ - const hasPost = (term, punct) => term.post.indexOf(punct) !== -1; - /** search the term's 'pre' punctuation */ - const hasPre = (term, punct) => term.pre.indexOf(punct) !== -1; - - const methods$d = { - /** does it have a quotation symbol? */ - hasQuote: term => startQuote.test(term.pre) || endQuote.test(term.post), - /** does it have a comma? */ - hasComma: term => hasPost(term, ','), - /** does it end in a period? */ - hasPeriod: term => hasPost(term, '.') === true && hasPost(term, '...') === false, - /** does it end in an exclamation */ - hasExclamation: term => hasPost(term, '!'), - /** does it end with a question mark? */ - hasQuestionMark: term => hasPost(term, '?') || hasPost(term, '¿'), - /** is there a ... at the end? */ - hasEllipses: term => hasPost(term, '..') || hasPost(term, '…') || hasPre(term, '..') || hasPre(term, '…'), - /** is there a semicolon after term word? */ - hasSemicolon: term => hasPost(term, ';'), - /** is there a slash '/' in term word? */ - hasSlash: term => /\//.test(term.text), - /** a hyphen connects two words like-term */ - hasHyphen: term => hasHyphen$1.test(term.post) || hasHyphen$1.test(term.pre), - /** a dash separates words - like that */ - hasDash: term => hasDash$1.test(term.post) || hasDash$1.test(term.pre), - /** is it multiple words combinded */ - hasContraction: term => Boolean(term.implicit), - /** is it an acronym */ - isAcronym: term => term.tags.has('Acronym'), - /** does it have any tags */ - isKnown: term => term.tags.size > 0, - /** uppercase first letter, then a lowercase */ - isTitleCase: term => /^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(term.text), - /** uppercase all letters */ - isUpperCase: term => /^\p{Lu}+$/u.test(term.text), - }; - // aliases - methods$d.hasQuotation = methods$d.hasQuote; - - var termMethods = methods$d; - - //declare it up here - let wrapMatch = function () { }; - /** ignore optional/greedy logic, straight-up term match*/ - const doesMatch$1 = function (term, reg, index, length) { - // support '.' - if (reg.anything === true) { - return true - } - // support '^' (in parentheses) - if (reg.start === true && index !== 0) { - return false - } - // support '$' (in parentheses) - if (reg.end === true && index !== length - 1) { - return false - } - //support a text match - if (reg.word !== undefined) { - // check case-sensitivity, etc - if (reg.use) { - return reg.word === term[reg.use] - } - //match contractions, machine-form - if (term.machine !== null && term.machine === reg.word) { - return true - } - // term aliases for slashes and things - if (term.alias !== undefined && term.alias.hasOwnProperty(reg.word)) { - return true - } - // support ~ fuzzy match - if (reg.fuzzy === true) { - if (reg.word === term.root) { - return true - } - let score = fuzzy(reg.word, term.normal); - if (score >= reg.min) { - return true - } - } - // match slashes and things - if (term.alias && term.alias.some(str => str === reg.word)) { - return true - } - //match either .normal or .text - return reg.word === term.text || reg.word === term.normal - } - //support #Tag - if (reg.tag !== undefined) { - return term.tags.has(reg.tag) === true - } - //support @method - if (reg.method !== undefined) { - if (typeof termMethods[reg.method] === 'function' && termMethods[reg.method](term) === true) { - return true - } - return false - } - //support whitespace/punctuation - if (reg.pre !== undefined) { - return term.pre && term.pre.includes(reg.pre) - } - if (reg.post !== undefined) { - return term.post && term.post.includes(reg.post) - } - //support /reg/ - if (reg.regex !== undefined) { - let str = term.normal; - if (reg.use) { - str = term[reg.use]; - } - return reg.regex.test(str) - } - //support - if (reg.chunk !== undefined) { - return term.chunk === reg.chunk - } - //support %Noun|Verb% - if (reg.switch !== undefined) { - return term.switch === reg.switch - } - //support {machine} - if (reg.machine !== undefined) { - return term.normal === reg.machine || term.machine === reg.machine || term.root === reg.machine - } - //support {word/sense} - if (reg.sense !== undefined) { - return term.sense === reg.sense - } - // support optimized (one|two) - if (reg.fastOr !== undefined) { - 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) - if (reg.choices !== undefined) { - // try to support && operator - if (reg.operator === 'and') { - // must match them all - return reg.choices.every(r => wrapMatch(term, r, index, length)) - } - // or must match one - return reg.choices.some(r => wrapMatch(term, r, index, length)) - } - return false - }; - // wrap result for !negative match logic - wrapMatch = function (t, reg, index, length) { - let result = doesMatch$1(t, reg, index, length); - if (reg.negative === true) { - return !result - } - return result - }; - var matchTerm = wrapMatch; - - // for greedy checking, we no longer care about the reg.start - // value, and leaving it can cause failures for anchored greedy - // matches. ditto for end-greedy matches: we need an earlier non- - // ending match to succceed until we get to the actual end. - const getGreedy = function (state, endReg) { - let reg = Object.assign({}, state.regs[state.r], { start: false, end: false }); - let start = state.t; - for (; state.t < state.terms.length; state.t += 1) { - //stop for next-reg match - if (endReg && matchTerm(state.terms[state.t], endReg, state.start_i + state.t, state.phrase_length)) { - return state.t - } - let count = state.t - start + 1; - // is it max-length now? - if (reg.max !== undefined && count === reg.max) { - return state.t - } - //stop here - if (matchTerm(state.terms[state.t], reg, state.start_i + state.t, state.phrase_length) === false) { - // is it too short? - if (reg.min !== undefined && count < reg.min) { - return null - } - return state.t - } - } - return state.t - }; - - const greedyTo = function (state, nextReg) { - let t = state.t; - //if there's no next one, just go off the end! - if (!nextReg) { - return state.terms.length - } - //otherwise, we're looking for the next one - for (; t < state.terms.length; t += 1) { - if (matchTerm(state.terms[t], nextReg, state.start_i + t, state.phrase_length) === true) { - // console.log(`greedyTo ${state.terms[t].normal}`) - return t - } - } - //guess it doesn't exist, then. - return null - }; - - const isEndGreedy = function (reg, state) { - if (reg.end === true && reg.greedy === true) { - if (state.start_i + state.t < state.phrase_length - 1) { - let tmpReg = Object.assign({}, reg, { end: false }); - if (matchTerm(state.terms[state.t], tmpReg, state.start_i + state.t, state.phrase_length) === true) { - // console.log(`endGreedy ${state.terms[state.t].normal}`) - return true - } - } - } - return false - }; - - const getGroup$2 = function (state, term_index) { - if (state.groups[state.inGroup]) { - return state.groups[state.inGroup] - } - state.groups[state.inGroup] = { - start: term_index, - length: 0, - }; - return state.groups[state.inGroup] - }; - - //support 'unspecific greedy' .* properly - // its logic is 'greedy until', where it's looking for the next token - // '.+ foo' means we check for 'foo', indefinetly - const doAstrix = function (state) { - let { regs } = state; - let reg = regs[state.r]; - - let skipto = greedyTo(state, regs[state.r + 1]); - //maybe we couldn't find it - if (skipto === null || skipto === 0) { - return null - } - // ensure it's long enough - if (reg.min !== undefined && skipto - state.t < reg.min) { - return null - } - // reduce it back, if it's too long - if (reg.max !== undefined && skipto - state.t > reg.max) { - state.t = state.t + reg.max; - return true - } - // set the group result - if (state.hasGroup === true) { - const g = getGroup$2(state, state.t); - g.length = skipto - state.t; - } - state.t = skipto; - // log(`✓ |greedy|`) - return true - }; - var doAstrix$1 = doAstrix; - - const isArray$4 = function (arr) { - return Object.prototype.toString.call(arr) === '[object Array]' - }; - - const doOrBlock$1 = function (state, skipN = 0) { - let block = state.regs[state.r]; - let wasFound = false; - // do each multiword sequence - for (let c = 0; c < block.choices.length; c += 1) { - // try to match this list of tokens - let regs = block.choices[c]; - if (!isArray$4(regs)) { - return false - } - wasFound = regs.every((cr, w_index) => { - let extra = 0; - let t = state.t + w_index + skipN + extra; - if (state.terms[t] === undefined) { - return false - } - let foundBlock = matchTerm(state.terms[t], cr, t + state.start_i, state.phrase_length); - // this can be greedy - '(foo+ bar)' - if (foundBlock === true && cr.greedy === true) { - for (let i = 1; i < state.terms.length; i += 1) { - let term = state.terms[t + i]; - if (term) { - let keepGoing = matchTerm(term, cr, state.start_i + i, state.phrase_length); - if (keepGoing === true) { - extra += 1; - } else { - break - } - } - } - } - skipN += extra; - return foundBlock - }); - if (wasFound) { - skipN += regs.length; - break - } - } - // we found a match - is it greedy though? - if (wasFound && block.greedy === true) { - return doOrBlock$1(state, skipN) // try it again! - } - return skipN - }; - - const doAndBlock$1 = function (state) { - let longest = 0; - // all blocks must match, and we return the greediest match - let reg = state.regs[state.r]; - let allDidMatch = reg.choices.every(block => { - // for multi-word blocks, all must match - let allWords = block.every((cr, w_index) => { - let tryTerm = state.t + w_index; - if (state.terms[tryTerm] === undefined) { - return false - } - return matchTerm(state.terms[tryTerm], cr, tryTerm, state.phrase_length) - }); - if (allWords === true && block.length > longest) { - longest = block.length; - } - return allWords - }); - if (allDidMatch === true) { - // console.log(`doAndBlock ${state.terms[state.t].normal}`) - return longest - } - return false - }; - - const orBlock = function (state) { - const { regs } = state; - let reg = regs[state.r]; - let skipNum = doOrBlock$1(state); - // did we find a match? - if (skipNum) { - // handle 'not' logic - if (reg.negative === true) { - return null // die - } - // tuck in as named-group - if (state.hasGroup === true) { - const g = getGroup$2(state, state.t); - g.length += skipNum; - } - // ensure we're at the end - if (reg.end === true) { - let end = state.phrase_length; - if (state.t + state.start_i + skipNum !== end) { - return null - } - } - state.t += skipNum; - // log(`✓ |found-or|`) - return true - } else if (!reg.optional) { - return null //die - } - return true - }; - var doOrBlock = orBlock; - - // '(foo && #Noun)' - require all matches on the term - const andBlock = function (state) { - const { regs } = state; - let reg = regs[state.r]; - - let skipNum = doAndBlock$1(state); - if (skipNum) { - // handle 'not' logic - if (reg.negative === true) { - return null // die - } - if (state.hasGroup === true) { - const g = getGroup$2(state, state.t); - g.length += skipNum; - } - // ensure we're at the end - if (reg.end === true) { - let end = state.phrase_length - 1; - if (state.t + state.start_i !== end) { - return null - } - } - state.t += skipNum; - // log(`✓ |found-and|`) - return true - } else if (!reg.optional) { - return null //die - } - return true - }; - var doAndBlock = andBlock; - - // '!foo' should match anything that isn't 'foo' - // if it matches, return false - const doNegative = function (state) { - const { regs } = state; - let reg = regs[state.r]; - let tmpReg = Object.assign({}, reg); - tmpReg.negative = false; // try removing it - let foundNeg = matchTerm(state.terms[state.t], tmpReg, state.start_i + state.t, state.phrase_length); - if (foundNeg === true) { - return null //bye! - } - return true - }; - var doNegative$1 = doNegative; - - // 'foo? foo' matches are tricky. - const foundOptional = function (state) { - const { regs } = state; - let reg = regs[state.r]; - let term = state.terms[state.t]; - // does the next reg match it too? - let nextRegMatched = matchTerm(term, regs[state.r + 1], state.start_i + state.t, state.phrase_length); - if (reg.negative || nextRegMatched) { - // but does the next reg match the next term?? - // only skip if it doesn't - let nextTerm = state.terms[state.t + 1]; - if (!nextTerm || !matchTerm(nextTerm, regs[state.r + 1], state.start_i + state.t, state.phrase_length)) { - state.r += 1; - } - } - }; - - var foundOptional$1 = foundOptional; - - // keep 'foo+' or 'foo*' going.. - const greedyMatch = function (state) { - const { regs, phrase_length } = state; - let reg = regs[state.r]; - state.t = getGreedy(state, regs[state.r + 1]); - if (state.t === null) { - return null //greedy was too short - } - // foo{2,4} - has a greed-minimum - if (reg.min && reg.min > state.t) { - return null //greedy was too short - } - // 'foo+$' - if also an end-anchor, ensure we really reached the end - if (reg.end === true && state.start_i + state.t !== phrase_length) { - return null //greedy didn't reach the end - } - return true - }; - var greedyMatch$1 = greedyMatch; - - // for: ['we', 'have'] - // a match for "we have" should work as normal - // but matching "we've" should skip over implict terms - const contractionSkip = function (state) { - let term = state.terms[state.t]; - let reg = state.regs[state.r]; - // did we match the first part of a contraction? - if (term.implicit && state.terms[state.t + 1]) { - let nextTerm = state.terms[state.t + 1]; - // ensure next word is implicit - if (!nextTerm.implicit) { - return - } - // we matched "we've" - skip-over [we, have] - if (reg.word === term.normal) { - state.t += 1; - } - // also skip for @hasContraction - if (reg.method === 'hasContraction') { - state.t += 1; - } - } - }; - var contractionSkip$1 = contractionSkip; - - // '[foo]' should also be logged as a group - const setGroup = function (state, startAt) { - let reg = state.regs[state.r]; - // Get or create capture group - const g = getGroup$2(state, startAt); - // Update group - add greedy or increment length - if (state.t > 1 && reg.greedy) { - g.length += state.t - startAt; - } else { - g.length++; - } - }; - - // when a reg matches a term - const simpleMatch = function (state) { - const { regs } = state; - let reg = regs[state.r]; - let term = state.terms[state.t]; - let startAt = state.t; - // if it's a negative optional match... :0 - if (reg.optional && regs[state.r + 1] && reg.negative) { - return true - } - // okay, it was a match, but if it's optional too, - // we should check the next reg too, to skip it? - if (reg.optional && regs[state.r + 1]) { - foundOptional$1(state); - } - // Contraction skip: - // did we match the first part of a contraction? - if (term.implicit && state.terms[state.t + 1]) { - contractionSkip$1(state); - } - //advance to the next term! - state.t += 1; - //check any ending '$' flags - //if this isn't the last term, refuse the match - if (reg.end === true && state.t !== state.terms.length && reg.greedy !== true) { - return null //die - } - // keep 'foo+' going... - if (reg.greedy === true) { - let alive = greedyMatch$1(state); - if (!alive) { - return null - } - } - // log '[foo]' as a group - if (state.hasGroup === true) { - setGroup(state, startAt); - } - return true - }; - var simpleMatch$1 = simpleMatch; - - // i formally apologize for how complicated this is. - - /** - * try a sequence of match tokens ('regs') - * on a sequence of terms, - * starting at this certain term. - */ - const tryHere = function (terms, regs, start_i, phrase_length) { - if (terms.length === 0 || regs.length === 0) { - return null - } - // all the variables that matter - let state = { - t: 0, - terms: terms, - r: 0, - regs: regs, - groups: {}, - start_i: start_i, - phrase_length: phrase_length, - inGroup: null, - }; - - // we must satisfy every token in 'regs' - // if we get to the end, we have a match. - for (; state.r < regs.length; state.r += 1) { - let reg = regs[state.r]; - // Check if this reg has a named capture group - state.hasGroup = Boolean(reg.group); - // Reuse previous capture group if same - if (state.hasGroup === true) { - state.inGroup = reg.group; - } else { - state.inGroup = null; - } - //have we run-out of terms? - if (!state.terms[state.t]) { - //are all remaining regs optional or negative? - const alive = regs.slice(state.r).some(remain => !remain.optional); - if (alive === false) { - break //done! - } - return null // die - } - // support 'unspecific greedy' .* properly - if (reg.anything === true && reg.greedy === true) { - let alive = doAstrix$1(state); - if (!alive) { - return null - } - continue - } - // slow-OR - multi-word OR (a|b|foo bar) - if (reg.choices !== undefined && reg.operator === 'or') { - let alive = doOrBlock(state); - if (!alive) { - return null - } - continue - } - // slow-AND - multi-word AND (#Noun && foo) blocks - if (reg.choices !== undefined && reg.operator === 'and') { - let alive = doAndBlock(state); - if (!alive) { - return null - } - continue - } - // support '.' as any-single - if (reg.anything === true) { - let alive = simpleMatch$1(state); - if (!alive) { - return null - } - continue - } - // support 'foo*$' until the end - if (isEndGreedy(reg, state) === true) { - let alive = simpleMatch$1(state); - if (!alive) { - return null - } - continue - } - // ok, finally test the term-reg - let hasMatch = matchTerm(state.terms[state.t], reg, state.start_i + state.t, state.phrase_length); - if (hasMatch === true) { - let alive = simpleMatch$1(state); - if (!alive) { - return null - } - continue - } - // ok, it doesn't match - but maybe it wasn't *supposed* to? - if (reg.negative) { - let alive = doNegative$1(state); - if (!alive) { - return null - } - } - //ok who cares, keep going - if (reg.optional === true) { - continue - } - - // finally, we die - return null - } - //return our results, as pointers - let pntr = [null, start_i, state.t + start_i]; - if (pntr[1] === pntr[2]) { - return null //found 0 terms - } - let groups = {}; - Object.keys(state.groups).forEach(k => { - let o = state.groups[k]; - let start = start_i + o.start; - groups[k] = [null, start, start + o.length]; - }); - return { pointer: pntr, groups: groups } - }; - var fromHere = tryHere; - - // support returning a subset of a match - // like 'foo [bar] baz' -> bar - const getGroup = function (res, group) { - let ptrs = []; - let byGroup = {}; - if (res.length === 0) { - return { ptrs, byGroup } - } - if (typeof group === 'number') { - group = String(group); - } - if (group) { - res.forEach(r => { - if (r.groups[group]) { - ptrs.push(r.groups[group]); - } - }); - } else { - res.forEach(r => { - ptrs.push(r.pointer); - Object.keys(r.groups).forEach(k => { - byGroup[k] = byGroup[k] || []; - byGroup[k].push(r.groups[k]); - }); - }); - } - return { ptrs, byGroup } - }; - var getGroup$1 = getGroup; - - // make proper pointers - const addSentence = function (res, n) { - res.pointer[0] = n; - Object.keys(res.groups).forEach(k => { - res.groups[k][0] = n; - }); - return res - }; - - const handleStart = function (terms, regs, n) { - let res = fromHere(terms, regs, 0, terms.length); - if (res) { - res = addSentence(res, n); - return res //getGroup([res], group) - } - return null - }; - - // ok, here we go. - const runMatch$2 = function (docs, todo, cache) { - cache = cache || []; - let { regs, group, justOne } = todo; - let results = []; - if (!regs || regs.length === 0) { - return { ptrs: [], byGroup: {} } - } - - const minLength = regs.filter(r => r.optional !== true && r.negative !== true).length; - docs: for (let n = 0; n < docs.length; n += 1) { - let terms = docs[n]; - // let index = terms[0].index || [] - // can we skip this sentence? - if (cache[n] && failFast$1(regs, cache[n])) { - continue - } - // ^start regs only run once, per phrase - if (regs[0].start === true) { - let foundStart = handleStart(terms, regs, n); - if (foundStart) { - results.push(foundStart); - } - continue - } - //ok, try starting the match now from every term - for (let i = 0; i < terms.length; i += 1) { - let slice = terms.slice(i); - // ensure it's long-enough - if (slice.length < minLength) { - break - } - let res = fromHere(slice, regs, i, terms.length); - // did we find a result? - if (res) { - // res = addSentence(res, index[0]) - res = addSentence(res, n); - results.push(res); - // should we stop here? - if (justOne === true) { - break docs - } - // skip ahead, over these results - let end = res.pointer[2]; - if (Math.abs(end - 1) > i) { - i = Math.abs(end - 1); - } - } - } - } - // ensure any end-results ($) match until the last term - if (regs[regs.length - 1].end === true) { - results = results.filter(res => { - let n = res.pointer[0]; - return docs[n].length === res.pointer[2] - }); - } - // grab the requested group - results = getGroup$1(results, group); - // add ids to pointers - results.ptrs.forEach(ptr => { - let [n, start, end] = ptr; - ptr[3] = docs[n][start].id;//start-id - ptr[4] = docs[n][end - 1].id;//end-id - }); - return results - }; - - var match$1 = runMatch$2; - - const methods$b = { - one: { - termMethods, - parseMatch, - match: match$1, - }, - }; - - var methods$c = methods$b; - - var lib$3 = { - /** pre-parse any match statements */ - parseMatch: function (str, opts) { - const world = this.world(); - let killUnicode = world.methods.one.killUnicode; - if (killUnicode) { - str = killUnicode(str, world); - } - return world.methods.one.parseMatch(str, opts, world) - } - }; - - var match = { - api: api$u, - methods: methods$c, - lib: lib$3, - }; - - const isClass = /^\../; - const isId = /^#./; - - const escapeXml = (str) => { - str = str.replace(/&/g, '&'); - str = str.replace(//g, '>'); - str = str.replace(/"/g, '"'); - str = str.replace(/'/g, '''); - return str - }; - - // interpret .class, #id, tagName - const toTag = function (k) { - let start = ''; - let end = ''; - k = escapeXml(k); - if (isClass.test(k)) { - start = ``; - } - start += '>'; - return { start, end } - }; - - const getIndex = function (doc, obj) { - let starts = {}; - let ends = {}; - Object.keys(obj).forEach(k => { - let res = obj[k]; - let tag = toTag(k); - if (typeof res === 'string') { - res = doc.match(res); - } - res.docs.forEach(terms => { - // don't highlight implicit terms - if (terms.every(t => t.implicit)) { - return - } - let a = terms[0].id; - starts[a] = starts[a] || []; - starts[a].push(tag.start); - let b = terms[terms.length - 1].id; - ends[b] = ends[b] || []; - ends[b].push(tag.end); - }); - }); - return { starts, ends } - }; - - const html = function (obj) { - // index ids to highlight - let { starts, ends } = getIndex(this, obj); - // create the text output - let out = ''; - this.docs.forEach(terms => { - for (let i = 0; i < terms.length; i += 1) { - let t = terms[i]; - // do a span tag - if (starts.hasOwnProperty(t.id)) { - out += starts[t.id].join(''); - } - out += t.pre || '' + t.text || ''; - if (ends.hasOwnProperty(t.id)) { - out += ends[t.id].join(''); - } - out += t.post || ''; - } - }); - return out - }; - var html$1 = { html }; - - const trimEnd = /[,:;)\]*.?~!\u0022\uFF02\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4—-]+$/; - const trimStart = - /^[(['"*~\uFF02\u201C\u2018\u201F\u201B\u201E\u2E42\u201A\u00AB\u2039\u2035\u2036\u2037\u301D\u0060\u301F]+/; - - const punctToKill = /[,:;)('"\u201D\]]/; - const isHyphen = /^[-–—]$/; - const hasSpace = / /; - - const textFromTerms = function (terms, opts, keepSpace = true) { - let txt = ''; - terms.forEach((t) => { - let pre = t.pre || ''; - let post = t.post || ''; - if (opts.punctuation === 'some') { - pre = pre.replace(trimStart, ''); - // replace a hyphen with a space - if (isHyphen.test(post)) { - post = ' '; - } - post = post.replace(punctToKill, ''); - // cleanup exclamations - post = post.replace(/\?!+/, '?'); - post = post.replace(/!+/, '!'); - post = post.replace(/\?+/, '?'); - // kill elipses - post = post.replace(/\.{2,}/, ''); - // kill abbreviation periods - if (t.tags.has('Abbreviation')) { - post = post.replace(/\./, ''); - } - } - if (opts.whitespace === 'some') { - pre = pre.replace(/\s/, ''); //remove pre-whitespace - post = post.replace(/\s+/, ' '); //replace post-whitespace with a space - } - if (!opts.keepPunct) { - pre = pre.replace(trimStart, ''); - if (post === '-') { - post = ' '; - } else { - post = post.replace(trimEnd, ''); - } - } - // grab the correct word format - let word = t[opts.form || 'text'] || t.normal || ''; - if (opts.form === 'implicit') { - word = t.implicit || t.text; - } - if (opts.form === 'root' && t.implicit) { - word = t.root || t.implicit || t.normal; - } - // add an implicit space, for contractions - if ((opts.form === 'machine' || opts.form === 'implicit' || opts.form === 'root') && t.implicit) { - if (!post || !hasSpace.test(post)) { - post += ' '; - } - } - txt += pre + word + post; - }); - if (keepSpace === false) { - txt = txt.trim(); - } - if (opts.lowerCase === true) { - txt = txt.toLowerCase(); - } - return txt - }; - - const textFromDoc = function (docs, opts) { - let text = ''; - if (!docs || !docs[0] || !docs[0][0]) { - return text - } - for (let i = 0; i < docs.length; i += 1) { - // middle - text += textFromTerms(docs[i], opts, true); - } - if (!opts.keepSpace) { - text = text.trim(); - } - if (opts.keepPunct === false) { - // don't remove ':)' etc - if (!docs[0][0].tags.has('Emoticon')) { - text = text.replace(trimStart, ''); - } - let last = docs[docs.length - 1]; - if (!last[last.length - 1].tags.has('Emoticon')) { - text = text.replace(trimEnd, ''); - } - } - if (opts.cleanWhitespace === true) { - text = text.trim(); - } - return text - }; - - const fmts = { - 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', - } - }; - fmts.clean = fmts.normal; - fmts.reduced = fmts.root; - var fmts$1 = fmts; - - const defaults$2 = { - text: true, - terms: true, - }; - - let opts = { case: 'none', unicode: 'some', form: 'machine', punctuation: 'some' }; - - const merge = function (a, b) { - return Object.assign({}, a, b) - }; - - const fns$2 = { - text: (terms) => { - return 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), - - offset: (terms) => { - let len = fns$2.text(terms).length; - return { - index: terms[0].offset.index, - start: terms[0].offset.start, - length: len, - } - }, - terms: (terms) => { - return terms.map(t => { - let term = Object.assign({}, t); - term.tags = Array.from(t.tags); - return term - }) - }, - confidence: (_terms, view, i) => view.eq(i).confidence(), - syllables: (_terms, view, i) => view.eq(i).syllables(), - sentence: (_terms, view, i) => view.eq(i).fullSentence().text(), - dirty: (terms) => terms.some(t => t.dirty === true) - }; - fns$2.sentences = fns$2.sentence; - fns$2.clean = fns$2.normal; - fns$2.reduced = fns$2.root; - - const toJSON$4 = function (view, option) { - option = option || {}; - if (typeof option === 'string') { - option = {}; - } - option = Object.assign({}, defaults$2, option); - // run any necessary upfront steps - if (option.offset) { - view.compute('offset'); - } - return view.docs.map((terms, i) => { - let res = {}; - Object.keys(option).forEach(k => { - if (option[k] && fns$2[k]) { - res[k] = fns$2[k](terms, view, i); - } - }); - return res - }) - }; - - - const methods$a = { - /** return data */ - json: function (n) { - let res = toJSON$4(this, n); - if (typeof n === 'number') { - return res[n] - } - return res - }, - }; - methods$a.data = methods$a.json; - var json = methods$a; - - /* eslint-disable no-console */ - const logClientSide = function (view) { - console.log('%c -=-=- ', 'background-color:#6699cc;'); - view.forEach(m => { - console.groupCollapsed(m.text()); - let terms = m.docs[0]; - let out = terms.map(t => { - let text = t.text || '-'; - if (t.implicit) { - text = '[' + t.implicit + ']'; - } - let tags = '[' + Array.from(t.tags).join(', ') + ']'; - return { text, tags } - }); - console.table(out, ['text', 'tags']); - console.groupEnd(); - }); - }; - var logClientSide$1 = logClientSide; - - // https://stackoverflow.com/questions/9781218/how-to-change-node-jss-console-font-color - const reset = '\x1b[0m'; - - //cheaper than requiring chalk - const cli = { - green: str => '\x1b[32m' + str + reset, - red: str => '\x1b[31m' + str + reset, - blue: str => '\x1b[34m' + str + reset, - magenta: str => '\x1b[35m' + str + reset, - cyan: str => '\x1b[36m' + str + reset, - yellow: str => '\x1b[33m' + str + reset, - black: str => '\x1b[30m' + str + reset, - dim: str => '\x1b[2m' + str + reset, - i: str => '\x1b[3m' + str + reset, - }; - var cli$1 = cli; - - /* eslint-disable no-console */ - - const tagString = function (tags, model) { - if (model.one.tagSet) { - tags = tags.map(tag => { - if (!model.one.tagSet.hasOwnProperty(tag)) { - return tag - } - const c = model.one.tagSet[tag].color || 'blue'; - return cli$1[c](tag) - }); - } - return tags.join(', ') - }; - - const showTags = function (view) { - let { docs, model } = view; - if (docs.length === 0) { - console.log(cli$1.blue('\n ──────')); - } - docs.forEach(terms => { - console.log(cli$1.blue('\n ┌─────────')); - terms.forEach(t => { - let tags = [...(t.tags || [])]; - let text = t.text || '-'; - if (t.sense) { - text = '{' + t.sense + '}'; - } - if (t.implicit) { - text = '[' + t.implicit + ']'; - } - text = cli$1.yellow(text); - let word = "'" + text + "'"; - word = word.padEnd(18); - let str = cli$1.blue(' │ ') + cli$1.i(word) + ' - ' + tagString(tags, model); - console.log(str); - }); - }); - }; - var showTags$1 = showTags; - - /* eslint-disable no-console */ - - const showChunks = function (view) { - let { docs } = view; - console.log(''); - docs.forEach(terms => { - let out = []; - terms.forEach(term => { - if (term.chunk === 'Noun') { - out.push(cli$1.blue(term.implicit || term.normal)); - } else if (term.chunk === 'Verb') { - out.push(cli$1.green(term.implicit || term.normal)); - } else if (term.chunk === 'Adjective') { - out.push(cli$1.yellow(term.implicit || term.normal)); - } else if (term.chunk === 'Pivot') { - out.push(cli$1.red(term.implicit || term.normal)); - } else { - out.push(term.implicit || term.normal); - } - }); - console.log(out.join(' '), '\n'); - }); - }; - var showChunks$1 = showChunks; - - const split$1 = (txt, offset, index) => { - let buff = index * 9; //there are 9 new chars addded to each highlight - let start = offset.start + buff; - let end = start + offset.length; - let pre = txt.substring(0, start); - let mid = txt.substring(start, end); - let post = txt.substring(end, txt.length); - return [pre, mid, post] - }; - - const spliceIn = function (txt, offset, index) { - let parts = split$1(txt, offset, index); - return `${parts[0]}${cli$1.blue(parts[1])}${parts[2]}` - }; - - const showHighlight = function (doc) { - if (!doc.found) { - return - } - let bySentence = {}; - doc.fullPointer.forEach(ptr => { - bySentence[ptr[0]] = bySentence[ptr[0]] || []; - bySentence[ptr[0]].push(ptr); - }); - Object.keys(bySentence).forEach(k => { - let full = doc.update([[Number(k)]]); - let txt = full.text(); - let matches = doc.update(bySentence[k]); - let json = matches.json({ offset: true }); - json.forEach((obj, i) => { - txt = spliceIn(txt, obj.offset, i); - }); - console.log(txt); // eslint-disable-line - }); - }; - var showHighlight$1 = showHighlight; - - /* eslint-disable no-console */ - - function isClientSide() { - return typeof window !== 'undefined' && window.document - } - //output some helpful stuff to the console - const debug = function (opts = {}) { - let view = this; - if (typeof opts === 'string') { - let tmp = {}; - tmp[opts] = true; //allow string input - opts = tmp; - } - if (isClientSide()) { - logClientSide$1(view); - return view - } - if (opts.tags !== false) { - showTags$1(view); - console.log('\n'); - } - // output chunk-view, too - if (opts.chunks === true) { - showChunks$1(view); - console.log('\n'); - } - // highlight match in sentence - if (opts.highlight === true) { - showHighlight$1(view); - console.log('\n'); - } - return view - }; - var debug$1 = debug; - - const toText$3 = function (term) { - let pre = term.pre || ''; - let post = term.post || ''; - return pre + term.text + post - }; - - const findStarts = function (doc, obj) { - let starts = {}; - Object.keys(obj).forEach(reg => { - let m = doc.match(reg); - m.fullPointer.forEach(a => { - starts[a[3]] = { fn: obj[reg], end: a[2] }; - }); - }); - return starts - }; - - const wrap = function (doc, obj) { - // index ids to highlight - let starts = findStarts(doc, obj); - let text = ''; - doc.docs.forEach((terms, n) => { - for (let i = 0; i < terms.length; i += 1) { - let t = terms[i]; - // do a span tag - if (starts.hasOwnProperty(t.id)) { - let { fn, end } = starts[t.id]; - let m = doc.update([[n, i, end]]); - text += fn(m); - i = end - 1; - text += terms[i].post || ''; - } else { - text += toText$3(t); - } - } - }); - return text - }; - var wrap$1 = wrap; - - const isObject$2 = val => { - return Object.prototype.toString.call(val) === '[object Object]' - }; - - // sort by frequency - const topk = function (arr) { - let obj = {}; - arr.forEach(a => { - obj[a] = obj[a] || 0; - obj[a] += 1; - }); - let res = Object.keys(obj).map(k => { - return { normal: k, count: obj[k] } - }); - return res.sort((a, b) => (a.count > b.count ? -1 : 0)) - }; - - /** some named output formats */ - const out = function (method) { - // support custom outputs - if (isObject$2(method)) { - return wrap$1(this, method) - } - // text out formats - if (method === 'text') { - return this.text() - } - if (method === 'normal') { - return this.text('normal') - } - if (method === 'machine' || method === 'reduced') { - return this.text('machine') - } - - // json data formats - if (method === 'json') { - return this.json() - } - if (method === 'offset' || method === 'offsets') { - this.compute('offset'); - return this.json({ offset: true }) - } - if (method === 'array') { - let arr = this.docs.map(terms => { - return terms - .reduce((str, t) => { - return str + t.pre + t.text + t.post - }, '') - .trim() - }); - return arr.filter(str => str) - } - // return terms sorted by frequency - if (method === 'freq' || method === 'frequency' || method === 'topk') { - return topk(this.json({ normal: true }).map(o => o.normal)) - } - - // some handy ad-hoc outputs - if (method === 'terms') { - let list = []; - this.docs.forEach(s => { - let terms = s.terms.map(t => t.text); - terms = terms.filter(t => t); - list = list.concat(terms); - }); - return list - } - if (method === 'tags') { - return this.docs.map(terms => { - return terms.reduce((h, t) => { - h[t.implicit || t.normal] = Array.from(t.tags); - return h - }, {}) - }) - } - if (method === 'debug') { - return this.debug() //allow - } - return this.text() - }; - - const methods$9 = { - /** */ - debug: debug$1, - /** */ - out: out, - }; - - var out$1 = methods$9; - - const isObject$1 = val => { - return Object.prototype.toString.call(val) === '[object Object]' - }; - - var text = { - /** */ - text: function (fmt) { - let opts = { - keepSpace: true, - keepPunct: true, - }; - if (fmt && typeof fmt === 'string' && fmts$1.hasOwnProperty(fmt)) { - opts = Object.assign({}, fmts$1[fmt]); - } else if (fmt && isObject$1(fmt)) { - opts = Object.assign({}, fmt, opts);//todo: fixme - } - if (this.pointer) { - opts.keepSpace = false; - let ptr = this.pointer[0]; - if (ptr && ptr[1]) { - opts.keepPunct = false; - } else { - opts.keepPunct = true; - } - } else { - opts.keepPunct = true; - } - return textFromDoc(this.docs, opts) - }, - }; - - const methods$8 = Object.assign({}, out$1, text, json, html$1); - - const addAPI$1 = function (View) { - Object.assign(View.prototype, methods$8); - }; - var api$t = addAPI$1; - - var output = { - api: api$t, - }; - - // do the pointers intersect? - const doesOverlap = function (a, b) { - if (a[0] !== b[0]) { - return false - } - let [, startA, endA] = a; - let [, startB, endB] = b; - // [a,a,a,-,-,-,] - // [-,-,b,b,b,-,] - if (startA <= startB && endA > startB) { - return true - } - // [-,-,-,a,a,-,] - // [-,-,b,b,b,-,] - if (startB <= startA && endB > startA) { - return true - } - return false - }; - - // get widest min/max - const getExtent = function (ptrs) { - let min = ptrs[0][1]; - let max = ptrs[0][2]; - ptrs.forEach(ptr => { - if (ptr[1] < min) { - min = ptr[1]; - } - if (ptr[2] > max) { - max = ptr[2]; - } - }); - return [ptrs[0][0], min, max] - }; - - // collect pointers by sentence number - const indexN = function (ptrs) { - let byN = {}; - ptrs.forEach(ref => { - byN[ref[0]] = byN[ref[0]] || []; - byN[ref[0]].push(ref); - }); - return byN - }; - - // remove exact duplicates - const uniquePtrs = function (arr) { - let obj = {}; - for (let i = 0; i < arr.length; i += 1) { - obj[arr[i].join(',')] = arr[i]; - } - return Object.values(obj) - }; - - // a before b - // console.log(doesOverlap([0, 0, 4], [0, 2, 5])) - // // b before a - // console.log(doesOverlap([0, 3, 4], [0, 1, 5])) - // // disjoint - // console.log(doesOverlap([0, 0, 3], [0, 4, 5])) - // neighbours - // console.log(doesOverlap([0, 1, 3], [0, 3, 5])) - // console.log(doesOverlap([0, 3, 5], [0, 1, 3])) - - // console.log( - // getExtent([ - // [0, 3, 4], - // [0, 4, 5], - // [0, 1, 2], - // ]) - // ) - - // split a pointer, by match pointer - const pivotBy = function (full, m) { - let [n, start] = full; - let mStart = m[1]; - let mEnd = m[2]; - let res = {}; - // is there space before the match? - if (start < mStart) { - let end = mStart < full[2] ? mStart : full[2]; // find closest end-point - res.before = [n, start, end]; //before segment - } - res.match = m; - // is there space after the match? - if (full[2] > mEnd) { - res.after = [n, mEnd, full[2]]; //after segment - } - return res - }; - - const doesMatch = function (full, m) { - return full[1] <= m[1] && m[2] <= full[2] - }; - - const splitAll = function (full, m) { - let byN = indexN(m); - let res = []; - full.forEach(ptr => { - let [n] = ptr; - let matches = byN[n] || []; - matches = matches.filter(p => doesMatch(ptr, p)); - if (matches.length === 0) { - res.push({ passthrough: ptr }); - return - } - // ensure matches are in-order - matches = matches.sort((a, b) => a[1] - b[1]); - // start splitting our left-to-right - let carry = ptr; - matches.forEach((p, i) => { - let found = pivotBy(carry, p); - // last one - if (!matches[i + 1]) { - res.push(found); - } else { - res.push({ before: found.before, match: found.match }); - if (found.after) { - carry = found.after; - } - } - }); - }); - return res - }; - - var splitAll$1 = splitAll; - - const max$1 = 4; - - // sweep-around looking for our start term uuid - const blindSweep = function (id, doc, n) { - for (let i = 0; i < max$1; i += 1) { - // look up a sentence - if (doc[n - i]) { - let index = doc[n - i].findIndex(term => term.id === id); - if (index !== -1) { - return [n - i, index] - } - } - // look down a sentence - if (doc[n + i]) { - let index = doc[n + i].findIndex(term => term.id === id); - if (index !== -1) { - return [n + i, index] - } - } - } - return null - }; - - const repairEnding = function (ptr, document) { - let [n, start, , , endId] = ptr; - let terms = document[n]; - // look for end-id - let newEnd = terms.findIndex(t => t.id === endId); - if (newEnd === -1) { - // if end-term wasn't found, so go all the way to the end - ptr[2] = document[n].length; - ptr[4] = terms.length ? terms[terms.length - 1].id : null; - } else { - ptr[2] = newEnd; // repair ending pointer - } - return document[n].slice(start, ptr[2] + 1) - }; - - /** return a subset of the document, from a pointer */ - const getDoc$1 = function (ptrs, document) { - let doc = []; - ptrs.forEach((ptr, i) => { - if (!ptr) { - return - } - let [n, start, end, id, endId] = ptr; //parsePointer(ptr) - let terms = document[n] || []; - if (start === undefined) { - start = 0; - } - if (end === undefined) { - end = terms.length; - } - if (id && (!terms[start] || terms[start].id !== id)) { - // console.log(' repairing pointer...') - let wild = blindSweep(id, document, n); - if (wild !== null) { - let len = end - start; - terms = document[wild[0]].slice(wild[1], wild[1] + len); - // actually change the pointer - let startId = terms[0] ? terms[0].id : null; - ptrs[i] = [wild[0], wild[1], wild[1] + len, startId]; - } - } else { - terms = terms.slice(start, end); - } - if (terms.length === 0) { - return - } - if (start === end) { - return - } - // test end-id, if it exists - if (endId && terms[terms.length - 1].id !== endId) { - terms = repairEnding(ptr, document); - } - // otherwise, looks good! - doc.push(terms); - }); - doc = doc.filter(a => a.length > 0); - return doc - }; - var getDoc$2 = getDoc$1; - - // flat list of terms from nested document - const termList = function (docs) { - let arr = []; - for (let i = 0; i < docs.length; i += 1) { - for (let t = 0; t < docs[i].length; t += 1) { - arr.push(docs[i][t]); - } - } - return arr - }; - - var methods$7 = { - one: { - termList, - getDoc: getDoc$2, - pointer: { - indexN, - splitAll: splitAll$1, - } - }, - }; - - // a union is a + b, minus duplicates - const getUnion = function (a, b) { - let both = a.concat(b); - let byN = indexN(both); - let res = []; - both.forEach(ptr => { - let [n] = ptr; - if (byN[n].length === 1) { - // we're alone on this sentence, so we're good - res.push(ptr); - return - } - // there may be overlaps - let hmm = byN[n].filter(m => doesOverlap(ptr, m)); - hmm.push(ptr); - let range = getExtent(hmm); - res.push(range); - }); - res = uniquePtrs(res); - return res - }; - var getUnion$1 = getUnion; - - // two disjoint - // console.log(getUnion([[1, 3, 4]], [[0, 1, 2]])) - // two disjoint - // console.log(getUnion([[0, 3, 4]], [[0, 1, 2]])) - // overlap-plus - // console.log(getUnion([[0, 1, 4]], [[0, 2, 6]])) - // overlap - // console.log(getUnion([[0, 1, 4]], [[0, 2, 3]])) - // neighbours - // console.log(getUnion([[0, 1, 3]], [[0, 3, 5]])) - - const subtract = function (refs, not) { - let res = []; - let found = splitAll$1(refs, not); - found.forEach(o => { - if (o.passthrough) { - res.push(o.passthrough); - } - if (o.before) { - res.push(o.before); - } - if (o.after) { - res.push(o.after); - } - }); - return res - }; - var getDifference = subtract; - - // console.log(subtract([[0, 0, 2]], [[0, 0, 1]])) - // console.log(subtract([[0, 0, 2]], [[0, 1, 2]])) - - // [a,a,a,a,-,-,] - // [-,-,b,b,b,-,] - // [-,-,x,x,-,-,] - const intersection = function (a, b) { - // find the latest-start - let start = a[1] < b[1] ? b[1] : a[1]; - // find the earliest-end - let end = a[2] > b[2] ? b[2] : a[2]; - // does it form a valid pointer? - if (start < end) { - return [a[0], start, end] - } - return null - }; - - const getIntersection = function (a, b) { - let byN = indexN(b); - let res = []; - a.forEach(ptr => { - let hmm = byN[ptr[0]] || []; - hmm = hmm.filter(p => doesOverlap(ptr, p)); - // no sentence-pairs, so no intersection - if (hmm.length === 0) { - return - } - hmm.forEach(h => { - let overlap = intersection(ptr, h); - if (overlap) { - res.push(overlap); - } - }); - }); - return res - }; - var getIntersection$1 = getIntersection; - - // console.log(getIntersection([[0, 1, 3]], [[0, 2, 4]])) - - const isArray$3 = function (arr) { - return Object.prototype.toString.call(arr) === '[object Array]' - }; - - const getDoc = (m, view) => { - if (typeof m === 'string' || isArray$3(m)) { - return view.match(m) - } - if (!m) { - return view.none() - } - // support pre-parsed reg object - return m - }; - - // 'harden' our json pointers, again - const addIds = function (ptrs, docs) { - return ptrs.map(ptr => { - let [n, start] = ptr; - if (docs[n] && docs[n][start]) { - ptr[3] = docs[n][start].id; - } - return ptr - }) - }; - - const methods$6 = {}; - - // all parts, minus duplicates - methods$6.union = function (m) { - m = getDoc(m, this); - let ptrs = getUnion$1(this.fullPointer, m.fullPointer); - ptrs = addIds(ptrs, this.document); - return this.toView(ptrs) - }; - methods$6.and = methods$6.union; - - // only parts they both have - methods$6.intersection = function (m) { - m = getDoc(m, this); - let ptrs = getIntersection$1(this.fullPointer, m.fullPointer); - ptrs = addIds(ptrs, this.document); - return this.toView(ptrs) - }; - - // only parts of a that b does not have - methods$6.not = function (m) { - m = getDoc(m, this); - let ptrs = getDifference(this.fullPointer, m.fullPointer); - ptrs = addIds(ptrs, this.document); - return this.toView(ptrs) - }; - methods$6.difference = methods$6.not; - - // get opposite of a - methods$6.complement = function () { - let doc = this.all(); - let ptrs = getDifference(doc.fullPointer, this.fullPointer); - ptrs = addIds(ptrs, this.document); - return this.toView(ptrs) - }; - - // remove overlaps - methods$6.settle = function () { - let ptrs = this.fullPointer; - ptrs.forEach(ptr => { - ptrs = getUnion$1(ptrs, [ptr]); - }); - ptrs = addIds(ptrs, this.document); - return this.update(ptrs) - }; - - - const addAPI = function (View) { - // add set/intersection/union - Object.assign(View.prototype, methods$6); - }; - var api$s = addAPI; - - var pointers = { - methods: methods$7, - api: api$s, - }; - - var lib$2 = { - // compile a list of matches into a match-net - buildNet: function (matches) { - const methods = this.methods(); - let net = methods.one.buildNet(matches, this.world()); - net.isNet = true; - return net - } - }; - - const api$q = function (View) { - - /** speedy match a sequence of matches */ - View.prototype.sweep = function (net, opts = {}) { - const { world, docs } = this; - const { methods } = world; - let found = methods.one.bulkMatch(docs, net, this.methods, opts); - - // apply any changes - if (opts.tagger !== false) { - methods.one.bulkTagger(found, docs, this.world); - } - // fix the pointers - // collect all found results into a View - found = found.map(o => { - let ptr = o.pointer; - let term = docs[ptr[0]][ptr[1]]; - let len = ptr[2] - ptr[1]; - if (term.index) { - o.pointer = [ - term.index[0], - term.index[1], - ptr[1] + len - ]; - } - return o - }); - let ptrs = found.map(o => o.pointer); - // cleanup results a bit - found = found.map(obj => { - obj.view = this.update([obj.pointer]); - delete obj.regs; - delete obj.needs; - delete obj.pointer; - delete obj._expanded; - return obj - }); - return { - view: this.update(ptrs), - found - } - }; - - }; - var api$r = api$q; - - // extract the clear needs for an individual match token - const getTokenNeeds = function (reg) { - // negatives can't be cached - if (reg.optional === true || reg.negative === true) { - return null - } - if (reg.tag) { - return '#' + reg.tag - } - if (reg.word) { - return reg.word - } - if (reg.switch) { - return `%${reg.switch}%` - } - return null - }; - - const getNeeds = function (regs) { - let needs = []; - regs.forEach(reg => { - 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 = []; - regs.forEach(reg => { - if (reg.operator === 'or' && !reg.optional) { - // 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) { - wants.push(n); - } - }); - }); - } - } - }); - return wants - }; - - const parse$7 = function (matches, world) { - const parseMatch = world.methods.one.parseMatch; - matches.forEach(obj => { - 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); - obj.wants = getWants(obj.regs); - // get rid of tiny sentences - obj.minWords = obj.regs.filter(o => !o.optional).length; - }); - return matches - }; - - var parse$8 = parse$7; - - // do some indexing on the list of matches - const compile = function (matches, world) { - // turn match-syntax into json - matches = parse$8(matches, world); - - // collect by wants and needs - let hooks = {}; - matches.forEach(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 - }); - }); - - // keep all un-cacheable matches (those with no needs) - let always = matches.filter(o => o.needs.length === 0 && o.wants.length === 0); - return { - hooks, - always - } - }; - - var buildNet = compile; - - // for each cached-sentence, find a list of possible matches - 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]); - } - }); - // remove duplicates - let already = {}; - maybe = maybe.filter(m => { - if (already[m.match]) { - return false - } - already[m.match] = true; - return true - }); - return maybe - }) - }; - - var getHooks$1 = getHooks; - - // filter-down list of maybe-matches - const localTrim = function (maybeList, docCache) { - return maybeList.map((list, n) => { - let haves = docCache[n]; - // ensure all stated-needs of the match are met - list = list.filter(obj => { - return obj.needs.every(need => haves.has(need)) - }); - // ensure nothing matches in our 'ifNo' property - list = list.filter(obj => { - if (obj.ifNo !== undefined && obj.ifNo.some(no => docCache[n].has(no)) === true) { - return false - } - return true - }); - // 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 - return obj.wants.find(str => haves.has(str)) - }); - return list - }) - }; - var trimDown = localTrim; - - // finally, - // actually run these match-statements on the terms - const runMatch = function (maybeList, document, methods, opts) { - let results = []; - for (let n = 0; n < maybeList.length; n += 1) { - for (let i = 0; i < maybeList[n].length; i += 1) { - let m = maybeList[n][i]; - // ok, actually do the work. - let res = methods.one.match([document[n]], m); - // found something. - if (res.ptrs.length > 0) { - // let index=document[n][0].index - res.ptrs.forEach(ptr => { - ptr[0] = n; // fix the sentence pointer - let todo = Object.assign({}, m, { pointer: ptr }); - if (m.unTag !== undefined) { - todo.unTag = m.unTag; - } - results.push(todo); - }); - //ok cool, can we stop early? - if (opts.matchOne === true) { - return [results[0]] - } - } - } - } - return results - }; - var runMatch$1 = runMatch; - - const tooSmall = function (maybeList, document) { - return maybeList.map((arr, i) => { - let termCount = document[i].length; - arr = arr.filter(o => { - return termCount >= o.minWords - }); - return arr - }) - }; - - const sweep$1 = function (document, net, methods, opts = {}) { - // find suitable matches to attempt, on each sentence - let docCache = methods.one.cacheDoc(document); - // collect possible matches for this document - if (!net.hooks) { - console.log(net); - } - 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 - if (net.always.length > 0) { - maybeList = maybeList.map(arr => arr.concat(net.always)); - } - // if we don't have enough words - maybeList = tooSmall(maybeList, document); - - // 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 }) - return results - }; - var bulkMatch = sweep$1; - - // is this tag consistent with the tags they already have? - const canBe = function (terms, tag, model) { - let tagSet = model.one.tagSet; - if (!tagSet.hasOwnProperty(tag)) { - return true - } - let not = tagSet[tag].not || []; - for (let i = 0; i < terms.length; i += 1) { - let term = terms[i]; - for (let k = 0; k < not.length; k += 1) { - if (term.tags.has(not[k]) === true) { - return false //found a tag conflict - bail! - } - } - } - return true - }; - var canBe$1 = canBe; - - const tagger = function (list, document, world) { - const { model, methods } = world; - const { getDoc, setTag, unTag } = methods.one; - if (list.length === 0) { - return list - } - // some logging for debugging - const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; - if (env.DEBUG_TAGS) { - console.log(`\n\n \x1b[32m→ ${list.length} post-tagger:\x1b[0m`); //eslint-disable-line - } - return list.map(todo => { - if (!todo.tag && !todo.chunk) { - return - } - let reason = todo.reason || todo.match; - let terms = getDoc([todo.pointer], document)[0]; - // handle 'safe' tag - if (todo.safe === true) { - // check for conflicting tags - if (canBe$1(terms, todo.tag, model) === false) { - return - } - // dont tag half of a hyphenated word - if (terms[terms.length - 1].post === '-') { - return - } - } - if (todo.tag !== undefined) { - 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) { - setTag(terms, 'Plural', world, todo.safe, 'quick-plural'); - } - } - } - if (todo.unTag !== undefined) { - unTag(terms, todo.unTag, world, todo.safe, reason); - } - // allow setting chunks, too - if (todo.chunk) { - terms.forEach(t => t.chunk = todo.chunk); - } - }) - }; - var bulkTagger = tagger; - - var methods$5 = { - buildNet, - bulkMatch, - bulkTagger - }; - - var sweep = { - lib: lib$2, - api: api$r, - methods: { - one: methods$5, - } - }; - - const isMulti = / /; - - const addChunk = function (term, tag) { - if (tag === 'Noun') { - term.chunk = tag; - } - if (tag === 'Verb') { - term.chunk = tag; - } - }; - - const tagTerm = function (term, tag, tagSet, isSafe) { - // does it already have this tag? - if (term.tags.has(tag) === true) { - return null - } - // allow this shorthand in multiple-tag strings - if (tag === '.') { - return null - } - // for known tags, do logical dependencies first - let known = tagSet[tag]; - if (known) { - // first, we remove any conflicting tags - if (known.not && known.not.length > 0) { - for (let o = 0; o < known.not.length; o += 1) { - // if we're in tagSafe, skip this term. - if (isSafe === true && term.tags.has(known.not[o])) { - return null - } - term.tags.delete(known.not[o]); - } - } - // add parent tags - if (known.parents && known.parents.length > 0) { - for (let o = 0; o < known.parents.length; o += 1) { - term.tags.add(known.parents[o]); - addChunk(term, known.parents[o]); - } - } - } - // finally, add our tag - term.tags.add(tag); - // now it's dirty - term.dirty = true; - // add a chunk too, if it's easy - addChunk(term, tag); - return true - }; - - // support '#Noun . #Adjective' syntax - const multiTag = function (terms, tagString, tagSet, isSafe) { - let tags = tagString.split(isMulti); - terms.forEach((term, i) => { - let tag = tags[i]; - if (tag) { - tag = tag.replace(/^#/, ''); - tagTerm(term, tag, tagSet, isSafe); - } - }); - }; - - const isArray$2 = function (arr) { - return Object.prototype.toString.call(arr) === '[object Array]' - }; - - // verbose-mode tagger debuging - 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 = 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(22)} ${i(reason)}`); // eslint-disable-line - }; - - // add a tag to all these terms - const setTag$1 = function (terms, tag, world = {}, isSafe, reason) { - const tagSet = world.model.one.tagSet || {}; - if (!tag) { - return - } - // some logging for debugging - const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; - if (env && env.DEBUG_TAGS) { - log$1(terms, tag, reason); - } - if (isArray$2(tag) === true) { - tag.forEach(tg => setTag$1(terms, tg, world, isSafe)); - return - } - tag = tag.trim(); - // support '#Noun . #Adjective' syntax - if (isMulti.test(tag)) { - multiTag(terms, tag, tagSet, isSafe); - return - } - tag = tag.replace(/^#/, ''); - // let set = false - for (let i = 0; i < terms.length; i += 1) { - tagTerm(terms[i], tag, tagSet, isSafe); - } - }; - var setTag$2 = setTag$1; - - // remove this tag, and its children, from these terms - const unTag = function (terms, tag, tagSet) { - tag = tag.trim().replace(/^#/, ''); - for (let i = 0; i < terms.length; i += 1) { - let term = terms[i]; - // support clearing all tags, with '*' - if (tag === '*') { - term.tags.clear(); - continue - } - // for known tags, do logical dependencies first - let known = tagSet[tag]; - // removing #Verb should also remove #PastTense - if (known && known.children.length > 0) { - for (let o = 0; o < known.children.length; o += 1) { - term.tags.delete(known.children[o]); - } - } - term.tags.delete(tag); - } - }; - var unTag$1 = unTag; - - const e=function(e){return e.children=e.children||[],e._cache=e._cache||{},e.props=e.props||{},e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],e},t=/^ *(#|\/\/)/,n$1=function(t){let n=t.trim().split(/->/),r=[];n.forEach((t=>{r=r.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let n=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return n=n.map((e=>e.trim())).filter((e=>e)),n=n.map((t=>e({id:t}))),n}return [e({id:t})]}(t));})),r=r.filter((e=>e));let i=r[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},i=e=>"[object Array]"===Object.prototype.toString.call(e),c=e=>(e=e||"").trim(),s$1=function(c=[]){return "string"==typeof c?function(r){let i=r.split(/\r?\n/),c=[];i.forEach((e=>{if(!e.trim()||t.test(e))return;let r=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);c.push({indent:r,node:n$1(e)});}));let s=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{n[e.id]=e;}));let r=e({});return t.forEach((t=>{if((t=e(t)).parent)if(n.hasOwnProperty(t.parent)){let e=n[t.parent];delete t.parent,e.children.push(t);}else console.warn(`[Grad] - missing node '${t.parent}'`);else r.children.push(t);})),r}(c):(r(s=c).forEach(e),s);var s;},h=e=>""+e+"",o=e=>""+e+"",l=function(e,t){let n="-> ";t&&(n=o("→ "));let i="";return r(e).forEach(((e,r)=>{let c=e.id||"";if(t&&(c=h(c)),0===r&&!e.id)return;let s=e._cache.parents.length;i+=" ".repeat(s)+n+c+"\n";})),i},a=function(e){let t=r(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},p$1={text:l,txt:l,array:a,flat:a},d=function(e,t){return "nested"===t||"json"===t?e:"debug"===t?(console.log(l(e,!0)),null):p$1.hasOwnProperty(t)?p$1[t](e):e},u=e=>{r(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]));}));},f$1=(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 i(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n]);}})),e),j=/\//;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(t){if(t=c(t),!j.test(t)){let e=this.json.children.find((e=>e.id===t));return new g$1(e)}let n=((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,t)||e({});return new g$1(n)}add(t,n={}){if(i(t))return t.forEach((e=>this.add(c(e),n))),this;t=c(t);let r=e({id:t,props:n});return this.json.children.push(r),new g$1(r)}remove(e){return e=c(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return r(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return (e=>{let t=r(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 r(this.json)}fillDown(){var e;return e=this.json,r(e,((e,t)=>{t.props=f$1(t.props,e.props);})),this}depth(){u(this.json);let e=r(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 u(this.json),d(this.json,e)}debug(){return u(this.json),d(this.json,"debug"),this}}const _=function(e){let t=s$1(e);return new g$1(t)};_.prototype.plugin=function(e){e(this);}; - - // i just made these up - const colors = { - Noun: 'blue', - Verb: 'green', - Negative: 'green', - Date: 'red', - Value: 'red', - Adjective: 'magenta', - Preposition: 'cyan', - Conjunction: 'cyan', - Determiner: 'cyan', - Adverb: 'cyan', - }; - - var colors$1 = colors; - - const getColor = function (node) { - if (colors$1.hasOwnProperty(node.id)) { - return colors$1[node.id] - } - if (colors$1.hasOwnProperty(node.is)) { - return colors$1[node.is] - } - let found = node._cache.parents.find(c => colors$1[c]); - return colors$1[found] - }; - - // convert tags to our final format - const fmt = function (nodes) { - const res = {}; - nodes.forEach(node => { - let { not, also, is, novel } = node.props; - let parents = node._cache.parents; - if (also) { - parents = parents.concat(also); - } - res[node.id] = { - is, - not, - novel, - also, - parents, - children: node._cache.children, - color: getColor(node) - }; - }); - // lastly, add all children of all nots - Object.keys(res).forEach(k => { - let nots = new Set(res[k].not); - res[k].not.forEach(not => { - if (res[not]) { - res[not].children.forEach(tag => nots.add(tag)); - } - }); - res[k].not = Array.from(nots); - }); - return res - }; - - var fmt$1 = fmt; - - const toArr = function (input) { - if (!input) { - return [] - } - if (typeof input === 'string') { - return [input] - } - return input - }; - - const addImplied = function (tags, already) { - Object.keys(tags).forEach(k => { - // support deprecated fmts - if (tags[k].isA) { - tags[k].is = tags[k].isA; - } - if (tags[k].notA) { - tags[k].not = tags[k].notA; - } - // add any implicit 'is' tags - if (tags[k].is && typeof tags[k].is === 'string') { - if (!already.hasOwnProperty(tags[k].is) && !tags.hasOwnProperty(tags[k].is)) { - tags[tags[k].is] = {}; - } - } - // add any implicit 'not' tags - if (tags[k].not && typeof tags[k].not === 'string' && !tags.hasOwnProperty(tags[k].not)) { - if (!already.hasOwnProperty(tags[k].not) && !tags.hasOwnProperty(tags[k].not)) { - tags[tags[k].not] = {}; - } - } - }); - return tags - }; - - - const validate = function (tags, already) { - - tags = addImplied(tags, already); - - // property validation - Object.keys(tags).forEach(k => { - tags[k].children = toArr(tags[k].children); - tags[k].not = toArr(tags[k].not); - }); - // not links are bi-directional - // add any incoming not tags - Object.keys(tags).forEach(k => { - let nots = tags[k].not || []; - nots.forEach(no => { - if (tags[no] && tags[no].not) { - tags[no].not.push(k); - } - }); - }); - return tags - }; - var validate$1 = validate; - - // 'fill-down' parent logic inference - const compute$6 = function (allTags) { - // setup graph-lib format - const flatList = Object.keys(allTags).map(k => { - let o = allTags[k]; - const props = { not: new Set(o.not), also: o.also, is: o.is, novel: o.novel }; - return { id: k, parent: o.is, props, children: [] } - }); - const graph = _(flatList).cache().fillDown(); - return graph.out('array') - }; - - const fromUser = function (tags) { - Object.keys(tags).forEach(k => { - tags[k] = Object.assign({}, tags[k]); - tags[k].novel = true; - }); - return tags - }; - - const addTags$1 = function (tags, already) { - // are these tags internal ones, or user-generated? - if (Object.keys(already).length > 0) { - tags = fromUser(tags); - } - tags = validate$1(tags, already); - - let allTags = Object.assign({}, already, tags); - // do some basic setting-up - // 'fill-down' parent logic - const nodes = compute$6(allTags); - // convert it to our final format - const res = fmt$1(nodes); - return res - }; - var addTags$2 = addTags$1; - - var methods$4 = { - one: { - setTag: setTag$2, - unTag: unTag$1, - addTags: addTags$2 - }, - }; - - /* eslint no-console: 0 */ - const isArray$1 = function (arr) { - return Object.prototype.toString.call(arr) === '[object Array]' - }; - const fns$1 = { - /** add a given tag, to all these terms */ - tag: function (input, reason = '', isSafe) { - if (!this.found || !input) { - return this - } - let terms = this.termList(); - if (terms.length === 0) { - return this - } - const { methods, verbose, world } = this; - // logger - if (verbose === true) { - console.log(' + ', input, reason || ''); - } - if (isArray$1(input)) { - input.forEach(tag => methods.one.setTag(terms, tag, world, isSafe, reason)); - } else { - methods.one.setTag(terms, input, world, isSafe, reason); - } - // uncache - this.uncache(); - return this - }, - - /** add a given tag, only if it is consistent */ - tagSafe: function (input, reason = '') { - return this.tag(input, reason, true) - }, - - /** remove a given tag from all these terms */ - unTag: function (input, reason) { - if (!this.found || !input) { - return this - } - let terms = this.termList(); - if (terms.length === 0) { - return this - } - const { methods, verbose, model } = this; - // logger - if (verbose === true) { - console.log(' - ', input, reason || ''); - } - let tagSet = model.one.tagSet; - if (isArray$1(input)) { - input.forEach(tag => methods.one.unTag(terms, tag, tagSet)); - } else { - methods.one.unTag(terms, input, tagSet); - } - // uncache - this.uncache(); - return this - }, - - /** return only the terms that can be this tag */ - canBe: function (tag) { - let tagSet = this.model.one.tagSet; - // everything can be an unknown tag - if (!tagSet.hasOwnProperty(tag)) { - return this - } - let not = tagSet[tag].not || []; - let nope = []; - this.document.forEach((terms, n) => { - terms.forEach((term, i) => { - let found = not.find(no => term.tags.has(no)); - if (found) { - nope.push([n, i, i + 1]); - } - }); - }); - let noDoc = this.update(nope); - return this.difference(noDoc) - }, - }; - var tag$1 = fns$1; - - const tagAPI = function (View) { - Object.assign(View.prototype, tag$1); - }; - var api$p = tagAPI; - - // wire-up more pos-tags to our model - const addTags = function (tags) { - const { model, methods } = this.world(); - const tagSet = model.one.tagSet; - const fn = methods.one.addTags; - let res = fn(tags, tagSet); - model.one.tagSet = res; - return this - }; - - var lib$1 = { addTags }; - - const boringTags = new Set(['Auxiliary', 'Possessive']); - - const sortByKids = function (tags, tagSet) { - tags = tags.sort((a, b) => { - // (unknown tags are interesting) - if (boringTags.has(a) || !tagSet.hasOwnProperty(b)) { - return 1 - } - if (boringTags.has(b) || !tagSet.hasOwnProperty(a)) { - return -1 - } - let kids = tagSet[a].children || []; - let aKids = kids.length; - kids = tagSet[b].children || []; - let bKids = kids.length; - return aKids - bKids - }); - return tags - }; - - const tagRank = function (view) { - const { document, world } = view; - const tagSet = world.model.one.tagSet; - document.forEach(terms => { - terms.forEach(term => { - let tags = Array.from(term.tags); - term.tagRank = sortByKids(tags, tagSet); - }); - }); - }; - var tagRank$1 = tagRank; - - var tag = { - model: { - one: { tagSet: {} } - }, - compute: { - tagRank: tagRank$1 - }, - methods: methods$4, - api: api$p, - lib: lib$1 - }; - - const initSplit = /(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g; //!TODO: speedup this regex - const newLine = /((?:\r?\n|\r)+)/; // Match different new-line formats - // Start with a regex: - const basicSplit = function (text) { - let all = []; - //first, split by newline - let lines = text.split(newLine); - for (let i = 0; i < lines.length; i++) { - //split by period, question-mark, and exclamation-mark - let arr = lines[i].split(initSplit); - for (let o = 0; o < arr.length; o++) { - all.push(arr[o]); - } - } - return all - }; - var basicSplit$1 = basicSplit; - - const isAcronym$2 = /[ .][A-Z]\.? *$/i; - const hasEllipse = /(?:\u2026|\.{2,}) *$/; - const hasLetter$1 = /\p{L}/u; - - /** 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 = function (text, model) { - let abbrevs = model.one.abbreviations || new Set(); - 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 - } - // 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) { - //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); - } - //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$1(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] = ''; - } - } - //if we never got a sentence, return the given text - if (sentences.length === 0) { - return [text] - } - //move whitespace to the ends of sentences, when possible - //['hello',' world'] -> ['hello ','world'] - for (let i = 1; i < sentences.length; i += 1) { - let ws = sentences[i].match(startWhitespace); - if (ws !== null) { - sentences[i - 1] += ws[0]; - sentences[i] = sentences[i].replace(startWhitespace, ''); - } - } - return sentences - }; - var sentence = splitSentences; - - const hasHyphen = function (str, model) { - let parts = str.split(/[-–—]/); - if (parts.length <= 1) { - return false - } - const { prefixes, suffixes } = model.one; - - //dont split 're-do' - if (prefixes.hasOwnProperty(parts[0])) { - return false - } - //dont split 'flower-like' - parts[1] = parts[1].trim().replace(/[.?!]$/, ''); - if (suffixes.hasOwnProperty(parts[1])) { - return false - } - //letter-number 'aug-20' - let reg = /^([a-z\u00C0-\u00FF`"'/]+)[-–—]([a-z0-9\u00C0-\u00FF].*)/i; - if (reg.test(str) === true) { - return true - } - //number-letter '20-aug' - let reg2 = /^([0-9]{1,4})[-–—]([a-z\u00C0-\u00FF`"'/-]+$)/i; - if (reg2.test(str) === true) { - return true - } - return false - }; - - const splitHyphens = function (word) { - let arr = []; - //support multiple-hyphenated-terms - const hyphens = word.split(/[-–—]/); - let whichDash = '-'; - let found = word.match(/[-–—]/); - if (found && found[0]) { - whichDash = found; - } - for (let o = 0; o < hyphens.length; o++) { - if (o === hyphens.length - 1) { - arr.push(hyphens[o]); - } else { - arr.push(hyphens[o] + whichDash); - } - } - return arr - }; - - // combine '2 - 5' like '2-5' is - // 2-4: 2, 4 - const combineRanges = function (arr) { - const startRange = /^[0-9]{1,4}(:[0-9][0-9])?([a-z]{1,2})? ?[-–—] ?$/; - const endRange = /^[0-9]{1,4}([a-z]{1,2})? ?$/; - for (let i = 0; i < arr.length - 1; i += 1) { - if (arr[i + 1] && startRange.test(arr[i]) && endRange.test(arr[i + 1])) { - arr[i] = arr[i] + arr[i + 1]; - arr[i + 1] = null; - } - } - return arr - }; - var combineRanges$1 = combineRanges; - - const isSlash = /\p{L} ?\/ ?\p{L}+$/u; - - // 'he / she' should be one word - const combineSlashes = function (arr) { - for (let i = 1; i < arr.length - 1; i++) { - if (isSlash.test(arr[i])) { - arr[i - 1] += arr[i] + arr[i + 1]; - arr[i] = null; - arr[i + 1] = null; - } - } - return arr - }; - var combineSlashes$1 = combineSlashes; - - const wordlike = /\S/; - const isBoundary = /^[!?.]+$/; - const naiiveSplit = /(\S+)/; - - let notWord = ['.', '?', '!', ':', ';', '-', '–', '—', '--', '...', '(', ')', '[', ']', '"', "'", '`']; - notWord = notWord.reduce((h, c) => { - h[c] = true; - return h - }, {}); - - const isArray = function (arr) { - return Object.prototype.toString.call(arr) === '[object Array]' - }; - - //turn a string into an array of strings (naiive for now, lumped later) - const splitWords = function (str, model) { - let result = []; - let arr = []; - //start with a naiive split - str = str || ''; - if (typeof str === 'number') { - str = String(str); - } - if (isArray(str)) { - return str - } - const words = str.split(naiiveSplit); - for (let i = 0; i < words.length; i++) { - //split 'one-two' - if (hasHyphen(words[i], model) === true) { - arr = arr.concat(splitHyphens(words[i])); - continue - } - arr.push(words[i]); - } - //greedy merge whitespace+arr to the right - let carry = ''; - for (let i = 0; i < arr.length; i++) { - let word = arr[i]; - //if it's more than a whitespace - if (wordlike.test(word) === true && notWord.hasOwnProperty(word) === false && isBoundary.test(word) === false) { - //put whitespace on end of previous term, if possible - if (result.length > 0) { - result[result.length - 1] += carry; - result.push(word); - } else { - //otherwise, but whitespace before - result.push(carry + word); - } - carry = ''; - } else { - carry += word; - } - } - //handle last one - if (carry) { - if (result.length === 0) { - result[0] = ''; - } - result[result.length - 1] += carry; //put it on the end - } - // combine 'one / two' - result = combineSlashes$1(result); - result = combineRanges$1(result); - // remove empty results - result = result.filter(s => s); - return result - }; - var term = 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]+/; - const endings = - /[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/; - const hasApostrophe$1 = /['’]/; - const hasAcronym = /^[a-z]\.([a-z]\.)+/i; - const minusNumber = /^[-+.][0-9]/; - const shortYear = /^'[0-9]{2}/; - - const normalizePunctuation = function (str) { - let original = str; - let pre = ''; - let post = ''; - // number cleanups - str = str.replace(startings, found => { - pre = found; - // support '-40' - if ((pre === '-' || pre === '+' || pre === '.') && minusNumber.test(str)) { - pre = ''; - return found - } - // support years like '97 - if (pre === `'` && shortYear.test(str)) { - pre = ''; - return found - } - return '' - }); - str = str.replace(endings, found => { - post = found; - // keep s-apostrophe - "flanders'" or "chillin'" - if (hasApostrophe$1.test(found) && /[sn]['’]$/.test(original) && hasApostrophe$1.test(pre) === false) { - post = post.replace(hasApostrophe$1, ''); - return `'` - } - //keep end-period in acronym - if (hasAcronym.test(str) === true) { - post = post.replace(/\./, ''); - return '.' - } - return '' - }); - //we went too far.. - if (str === '') { - // do a very mild parse, and hope for the best. - original = original.replace(/ *$/, after => { - post = after || ''; - return '' - }); - str = original; - pre = ''; - } - return { str, pre, post } - }; - var tokenize$1 = normalizePunctuation; - - const parseTerm = txt => { - // cleanup any punctuation as whitespace - let { str, pre, post } = tokenize$1(txt); - const parsed = { - text: str, - pre: pre, - post: post, - tags: new Set(), - }; - return parsed - }; - var whitespace = parseTerm; - - /** some basic operations on a string to reduce noise */ - const clean = function (str) { - str = str || ''; - str = str.toLowerCase(); - str = str.trim(); - let original = str; - //punctuation - str = str.replace(/[,;.!?]+$/, ''); - //coerce Unicode ellipses - str = str.replace(/\u2026/g, '...'); - //en-dash - str = str.replace(/\u2013/g, '-'); - //strip leading & trailing grammatical punctuation - if (/^[:;]/.test(str) === false) { - str = str.replace(/\.{3,}$/g, ''); - str = str.replace(/[",.!:;?)]+$/g, ''); - str = str.replace(/^['"(]+/g, ''); - } - // remove zero-width characters - str = str.replace(/[\u200B-\u200D\uFEFF]/g, ''); - //do this again.. - str = str.trim(); - //oh shucks, - if (str === '') { - str = original; - } - //no-commas in numbers - str = str.replace(/([0-9]),([0-9])/g, '$1$2'); - return str - }; - var cleanup = clean; - - // do acronyms need to be ASCII? ... kind of? - const periodAcronym$1 = /([A-Z]\.)+[A-Z]?,?$/; - const oneLetterAcronym$1 = /^[A-Z]\.,?$/; - const noPeriodAcronym$1 = /[A-Z]{2,}('s|,)?$/; - const lowerCaseAcronym$1 = /([a-z]\.)+[a-z]\.?$/; - - const isAcronym$1 = function (str) { - //like N.D.A - if (periodAcronym$1.test(str) === true) { - return true - } - //like c.e.o - if (lowerCaseAcronym$1.test(str) === true) { - return true - } - //like 'F.' - if (oneLetterAcronym$1.test(str) === true) { - return true - } - //like NDA - if (noPeriodAcronym$1.test(str) === true) { - return true - } - return false - }; - - const doAcronym = function (str) { - if (isAcronym$1(str)) { - str = str.replace(/\./g, ''); - } - return str - }; - var doAcronyms = doAcronym; - - const normalize$1 = function (term, world) { - const killUnicode = world.methods.one.killUnicode; - // console.log(world.methods.one) - let str = term.text || ''; - str = cleanup(str); - //(very) rough ASCII transliteration - bjŏrk -> bjork - str = killUnicode(str, world); - str = doAcronyms(str); - term.normal = str; - }; - 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 { 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) => { - normal(t, world); - }); - return terms - }); - return input - }; - - var methods$3 = { - one: { - killUnicode: killUnicode$1, - tokenize: { - splitSentences: sentence, - splitTerms: term, - splitWhitespace: whitespace, - fromString, - }, - }, - }; - - const aliases$1 = { - '&': 'and', - '@': 'at', - '%': 'percent', - 'plz': 'please', - 'bein': 'being', - }; - var aliases$2 = aliases$1; - - var misc$8 = [ - 'approx', - 'apt', - 'bc', - 'cyn', - 'eg', - 'esp', - 'est', - 'etc', - 'ex', - 'exp', - 'prob', //probably - 'pron', // Pronunciation - 'gal', //gallon - 'min', - 'pseud', - 'fig', //figure - 'jd', - 'lat', //latitude - 'lng', //longitude - 'vol', //volume - 'fm', //not am - 'def', //definition - 'misc', - 'plz', //please - 'ea', //each - 'ps', - 'sec', //second - 'pt', - 'pref', //preface - 'pl', //plural - 'pp', //pages - 'qt', //quarter - 'fr', //french - 'sq', - 'nee', //given name at birth - 'ss', //ship, or sections - 'tel', - 'temp', - 'vet', - 'ver', //version - 'fem', //feminine - 'masc', //masculine - 'eng', //engineering/english - 'adj', //adjective - 'vb', //verb - 'rb', //adverb - 'inf', //infinitive - 'situ', // in situ - 'vivo', - 'vitro', - 'wr', //world record - ]; - - var honorifics$1 = [ - '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', - //miss - //misses - ]; - - var months = ['jan', 'feb', 'mar', 'apr', 'jun', 'jul', 'aug', 'sep', 'sept', 'oct', 'nov', 'dec']; - - var nouns$2 = [ - 'ad', - 'al', - 'arc', - 'ba', - 'bl', - 'ca', - 'cca', - 'col', - 'corp', - 'ft', - 'fy', - 'ie', - 'lit', - 'ma', - 'md', - 'pd', - 'tce', - ]; - - var organizations = ['dept', 'univ', 'assn', 'bros', 'inc', 'ltd', 'co']; - - var places$2 = [ - 'rd', - 'st', - 'dist', - 'mt', - 'ave', - 'blvd', - 'cl', - // 'ct', - 'cres', - 'hwy', - //states - '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', - ]; - - // units that are abbreviations too - var units = [ - 'dl', - 'ml', - 'gal', - 'ft', //ambiguous - 'qt', - 'pt', - 'tbl', - 'tsp', - 'tbsp', - 'km', - 'dm', //decimeter - 'cm', - 'mm', - 'mi', - 'td', - 'hr', //hour - 'hrs', //hour - 'kg', - 'hg', - 'dg', //decigram - 'cg', //centigram - 'mg', //milligram - 'µg', //microgram - 'lb', //pound - 'oz', //ounce - 'sq ft', - 'hz', //hertz - 'mps', //meters per second - 'mph', - 'kmph', //kilometers per hour - 'kb', //kilobyte - 'mb', //megabyte - 'gb', //ambig - 'tb', //terabyte - 'lx', //lux - 'lm', //lumen - 'pa', //ambig - 'fl oz', // - - 'yb', - ]; - - // add our abbreviation list to our lexicon - let list$2 = [ - [misc$8], - [units, 'Unit'], - [nouns$2, 'Noun'], - [honorifics$1, 'Honorific'], - [months, 'Month'], - [organizations, 'Organization'], - [places$2, 'Place'], - ]; - // create key-val for sentence-tokenizer - let abbreviations = {}; - // add them to a future lexicon - let lexicon$1 = {}; - - list$2.forEach(a => { - a[0].forEach(w => { - // sentence abbrevs - abbreviations[w] = true; - // future-lexicon - lexicon$1[w] = 'Abbreviation'; - if (a[1] !== undefined) { - lexicon$1[w] = [lexicon$1[w], a[1]]; - } - }); - }); - - // dashed prefixes that are not independent words - // 'mid-century', 'pre-history' - var prefixes$1 = [ - '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', //out-lived - // 'counter', - // 'mid', - // 'out', - // 'non', - // 'over', - // 'post', - // 'semi', - // 'super', //'super-cool' - // 'ultra', //'ulta-cool' - // 'under', - // 'whole', - ].reduce((h, str) => { - h[str] = true; - return h - }, {}); - - // dashed suffixes that are not independent words - // 'flower-like', 'president-elect' - var suffixes$5 = { - 'like': true, - 'ish': true, - 'less': true, - 'able': true, - 'elect': true, - 'type': true, - 'designate': true, - // 'fold':true, - }; - - //a hugely-ignorant, and widely subjective transliteration of latin, cryllic, greek unicode characters to english ascii. - //approximate visual (not semantic or phonetic) relationship between unicode and ascii characters - //http://en.wikipedia.org/wiki/List_of_Unicode_characters - //https://docs.google.com/spreadsheet/ccc?key=0Ah46z755j7cVdFRDM1A2YVpwa1ZYWlpJM2pQZ003M0E - let compact = { - '!': '¡', - '?': '¿Ɂ', - '"': '“”"❝❞', - "'": '‘‛❛❜’', - '-': '—–', - 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: 'ŹźŻżŽžƵƶȤȥɀΖ', - }; - //decompress data into two hashes - let unicode = {}; - Object.keys(compact).forEach(function (k) { - compact[k].split('').forEach(function (s) { - unicode[s] = k; - }); - }); - var unicode$1 = unicode; - - var model$4 = { - one: { - aliases: aliases$2, - abbreviations, - prefixes: prefixes$1, - suffixes: suffixes$5, - lexicon: lexicon$1, //give this one forward - unicode: unicode$1, - }, - }; - - const hasSlash = /\//; - const hasDomain = /[a-z]\.[a-z]/i; - const isMath = /[0-9]/; - // const hasSlash = /[a-z\u00C0-\u00FF] ?\/ ?[a-z\u00C0-\u00FF]/ - // const hasApostrophe = /['’]s$/ - - const addAliases = function (term, world) { - let str = term.normal || term.text; - const aliases = world.model.one.aliases; - // lookup known aliases like '&' - if (aliases.hasOwnProperty(str)) { - term.alias = term.alias || []; - term.alias.push(aliases[str]); - } - // support slashes as aliases - if (hasSlash.test(str) && !hasDomain.test(str) && !isMath.test(str)) { - let arr = str.split(hasSlash); - // don't split urls and things - if (arr.length <= 2) { - arr.forEach(word => { - word = word.trim(); - if (word !== '') { - term.alias = term.alias || []; - term.alias.push(word); - } - }); - } - } - // aliases for apostrophe-s - // if (hasApostrophe.test(str)) { - // let main = str.replace(hasApostrophe, '').trim() - // term.alias = term.alias || [] - // term.alias.push(main) - // } - return term - }; - var alias = addAliases; - - const hasDash = /^\p{Letter}+-\p{Letter}+$/u; - // 'machine' is a normalized form that looses human-readability - const doMachine = function (term) { - let str = term.implicit || term.normal || term.text; - // remove apostrophes - str = str.replace(/['’]s$/, ''); - str = str.replace(/s['’]$/, 's'); - //lookin'->looking (make it easier for conjugation) - str = str.replace(/([aeiou][ktrp])in'$/, '$1ing'); - //turn re-enactment to reenactment - if (hasDash.test(str)) { - str = str.replace(/-/g, ''); - } - //#tags, @mentions - str = str.replace(/^[#@]/, ''); - if (str !== term.normal) { - term.machine = str; - } - }; - var machine = doMachine; - - // sort words by frequency - const freq = function (view) { - let docs = view.docs; - let counts = {}; - for (let i = 0; i < docs.length; i += 1) { - for (let t = 0; t < docs[i].length; t += 1) { - let term = docs[i][t]; - let word = term.machine || term.normal; - counts[word] = counts[word] || 0; - counts[word] += 1; - } - } - // add counts on each term - for (let i = 0; i < docs.length; i += 1) { - for (let t = 0; t < docs[i].length; t += 1) { - let term = docs[i][t]; - let word = term.machine || term.normal; - term.freq = counts[word]; - } - } - }; - var freq$1 = freq; - - // get all character startings in doc - const offset = function (view) { - let elapsed = 0; - let index = 0; - let docs = view.document; //start from the actual-top - for (let i = 0; i < docs.length; i += 1) { - for (let t = 0; t < docs[i].length; t += 1) { - let term = docs[i][t]; - term.offset = { - index: index, - start: elapsed + term.pre.length, - length: term.text.length, - }; - elapsed += term.pre.length + term.text.length + term.post.length; - index += 1; - } - } - }; - - - var offset$1 = offset; - - // cheat- add the document's pointer to the terms - const index = function (view) { - // console.log('reindex') - let document = view.document; - for (let n = 0; n < document.length; n += 1) { - for (let i = 0; i < document[n].length; i += 1) { - document[n][i].index = [n, i]; - } - } - // let ptrs = b.fullPointer - // console.log(ptrs) - // for (let i = 0; i < docs.length; i += 1) { - // const [n, start] = ptrs[i] - // for (let t = 0; t < docs[i].length; t += 1) { - // let term = docs[i][t] - // term.index = [n, start + t] - // } - // } - }; - - var index$1 = index; - - const wordCount = function (view) { - let n = 0; - let docs = view.docs; - for (let i = 0; i < docs.length; i += 1) { - for (let t = 0; t < docs[i].length; t += 1) { - if (docs[i][t].normal === '') { - continue //skip implicit words - } - n += 1; - docs[i][t].wordCount = n; - } - } - }; - - var wordCount$1 = wordCount; - - // cheat-method for a quick loop - const termLoop$1 = function (view, fn) { - let docs = view.docs; - for (let i = 0; i < docs.length; i += 1) { - for (let t = 0; t < docs[i].length; t += 1) { - fn(docs[i][t], view.world); - } - } - }; - - const methods$2 = { - alias: (view) => termLoop$1(view, alias), - machine: (view) => termLoop$1(view, machine), - normal: (view) => termLoop$1(view, normal), - freq: freq$1, - offset: offset$1, - index: index$1, - wordCount: wordCount$1, - }; - var compute$5 = methods$2; - - var tokenize = { - compute: compute$5, - methods: methods$3, - model: model$4, - hooks: ['alias', 'machine', 'index', 'id'], - }; - - // const plugin = function (world) { - // let { methods, model, parsers } = world - // Object.assign({}, methods, _methods) - // Object.assign(model, _model) - // methods.one.tokenize.fromString = tokenize - // parsers.push('normal') - // parsers.push('alias') - // parsers.push('machine') - // // extend View class - // // addMethods(View) - // } - // export default plugin - - // lookup last word in the type-ahead prefixes - const typeahead$1 = function (view) { - const prefixes = view.model.one.typeahead; - const docs = view.docs; - if (docs.length === 0 || Object.keys(prefixes).length === 0) { - return - } - let lastPhrase = docs[docs.length - 1] || []; - let lastTerm = lastPhrase[lastPhrase.length - 1]; - // if we've already put whitespace, end. - if (lastTerm.post) { - return - } - // if we found something - if (prefixes.hasOwnProperty(lastTerm.normal)) { - let found = prefixes[lastTerm.normal]; - // add full-word as an implicit result - lastTerm.implicit = found; - lastTerm.machine = found; - lastTerm.typeahead = true; - // tag it, as our assumed term - if (view.compute.preTagger) { - view.last().unTag('*').compute(['lexicon', 'preTagger']); - } - } - }; - - var compute$4 = { typeahead: typeahead$1 }; - - // assume any discovered prefixes - const autoFill = function () { - const docs = this.docs; - if (docs.length === 0) { - return this - } - let lastPhrase = docs[docs.length - 1] || []; - let term = lastPhrase[lastPhrase.length - 1]; - if (term.typeahead === true && term.machine) { - term.text = term.machine; - term.normal = term.machine; - } - return this - }; - - const api$n = function (View) { - View.prototype.autoFill = autoFill; - }; - var api$o = api$n; - - // generate all the possible prefixes up-front - const getPrefixes = function (arr, opts, world) { - let index = {}; - let collisions = []; - let existing = world.prefixes || {}; - arr.forEach((str) => { - str = str.toLowerCase().trim(); - let max = str.length; - if (opts.max && max > opts.max) { - max = opts.max; - } - for (let size = opts.min; size < max; size += 1) { - let prefix = str.substring(0, size); - // ensure prefix is not a word - if (opts.safe && world.model.one.lexicon.hasOwnProperty(prefix)) { - continue - } - // does it already exist? - if (existing.hasOwnProperty(prefix) === true) { - collisions.push(prefix); - continue - } - if (index.hasOwnProperty(prefix) === true) { - collisions.push(prefix); - continue - } - index[prefix] = str; - } - }); - // merge with existing prefixes - index = Object.assign({}, existing, index); - // remove ambiguous-prefixes - collisions.forEach((str) => { - delete index[str]; - }); - return index - }; - - var allPrefixes = getPrefixes; - - const isObject = val => { - return Object.prototype.toString.call(val) === '[object Object]' - }; - - const defaults$1 = { - safe: true, - min: 3, - }; - - const prepare = function (words = [], opts = {}) { - let model = this.model(); - opts = Object.assign({}, defaults$1, opts); - if (isObject(words)) { - Object.assign(model.one.lexicon, words); - words = Object.keys(words); - } - let prefixes = allPrefixes(words, opts, this.world()); - // manually combine these with any existing prefixes - Object.keys(prefixes).forEach(str => { - // explode any overlaps - if (model.one.typeahead.hasOwnProperty(str)) { - delete model.one.typeahead[str]; - return - } - model.one.typeahead[str] = prefixes[str]; - }); - return this - }; - - var lib = { - typeahead: prepare - }; - - const model$3 = { - one: { - typeahead: {} //set a blank key-val - } - }; - var typeahead = { - model: model$3, - api: api$o, - lib, - compute: compute$4, - hooks: ['typeahead'] - }; - - // order here matters - nlp$1.extend(change); //0kb - nlp$1.extend(output); //0kb - nlp$1.extend(match); //10kb - nlp$1.extend(pointers); //2kb - nlp$1.extend(tag); //2kb - nlp$1.plugin(contractions); //~6kb - nlp$1.extend(tokenize); //7kb - nlp$1.plugin(cache$1); //~1kb - nlp$1.extend(lookup); //7kb - nlp$1.extend(typeahead); //1kb - nlp$1.extend(lexicon$2); //1kb - nlp$1.extend(sweep); //1kb - - //nouns with irregular plural/singular forms - //used in nouns.toPlural(), and also in the lexicon. - - var irregularPlurals = { - // -a - addendum: 'addenda', - corpus: 'corpora', - criterion: 'criteria', - curriculum: 'curricula', - genus: 'genera', - memorandum: 'memoranda', - opus: 'opera', - ovum: 'ova', - phenomenon: 'phenomena', - referendum: 'referenda', - - // -ae - alga: 'algae', - alumna: 'alumnae', - antenna: 'antennae', - formula: 'formulae', - larva: 'larvae', - nebula: 'nebulae', - vertebra: 'vertebrae', - - // -is - analysis: 'analyses', - axis: 'axes', - diagnosis: 'diagnoses', - parenthesis: 'parentheses', - prognosis: 'prognoses', - synopsis: 'synopses', - thesis: 'theses', - neurosis: 'neuroses', - // -x - appendix: 'appendices', - index: 'indices', - matrix: 'matrices', - ox: 'oxen', - sex: 'sexes', - - // -i - alumnus: 'alumni', - bacillus: 'bacilli', - cactus: 'cacti', - fungus: 'fungi', - hippopotamus: 'hippopotami', - libretto: 'libretti', - modulus: 'moduli', - nucleus: 'nuclei', - octopus: 'octopi', - radius: 'radii', - stimulus: 'stimuli', - syllabus: 'syllabi', - - // -ie - cookie: 'cookies', - calorie: 'calories', - auntie: 'aunties', - movie: 'movies', - pie: 'pies', - rookie: 'rookies', - tie: 'ties', - zombie: 'zombies', - - // -f - leaf: 'leaves', - loaf: 'loaves', - thief: 'thieves', - - // ee- - foot: 'feet', - goose: 'geese', - tooth: 'teeth', - - // -eaux - beau: 'beaux', - chateau: 'chateaux', - tableau: 'tableaux', - - // -ses - 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', - - }; - - // generated in ./lib/lexicon - var lexData = { - "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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 BASE = 36; - const seq = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; - - const cache = seq.split('').reduce(function (h, c, i) { - h[c] = i; - return h - }, {}); - - // 0, 1, 2, ..., A, B, C, ..., 00, 01, ... AA, AB, AC, ..., AAA, AAB, ... - const toAlphaCode = function (n) { - if (seq[n] !== undefined) { - return seq[n] - } - let places = 1; - let range = BASE; - let s = ''; - for (; n >= range; n -= range, places++, range *= BASE) {} - while (places--) { - const d = n % BASE; - s = String.fromCharCode((d < 10 ? 48 : 55) + d) + s; - n = (n - d) / BASE; - } - return s - }; - - const fromAlphaCode = function (s) { - if (cache[s] !== undefined) { - return cache[s] - } - let n = 0; - let places = 1; - let range = BASE; - let pow = 1; - for (; places < s.length; n += range, places++, range *= BASE) {} - for (let i = s.length - 1; i >= 0; i--, pow *= BASE) { - let d = s.charCodeAt(i) - 48; - if (d > 10) { - d -= 7; - } - n += d * pow; - } - return n - }; - - var encoding = { - toAlphaCode, - fromAlphaCode - }; - - const symbols = function (t) { - //... process these lines - const reSymbol = new RegExp('([0-9A-Z]+):([0-9A-Z]+)'); - for (let i = 0; i < t.nodes.length; i++) { - const m = reSymbol.exec(t.nodes[i]); - if (!m) { - t.symCount = i; - break - } - t.syms[encoding.fromAlphaCode(m[1])] = encoding.fromAlphaCode(m[2]); - } - //remove from main node list - t.nodes = t.nodes.slice(t.symCount, t.nodes.length); - }; - var parseSymbols = symbols; - - // References are either absolute (symbol) or relative (1 - based) - const indexFromRef = function (trie, ref, index) { - const dnode = encoding.fromAlphaCode(ref); - if (dnode < trie.symCount) { - return trie.syms[dnode] - } - return index + dnode + 1 - trie.symCount - }; - - const toArray$3 = function (trie) { - const all = []; - const crawl = (index, pref) => { - let node = trie.nodes[index]; - if (node[0] === '!') { - all.push(pref); - node = node.slice(1); //ok, we tried. remove it. - } - const matches = node.split(/([A-Z0-9,]+)/g); - for (let i = 0; i < matches.length; i += 2) { - const str = matches[i]; - const ref = matches[i + 1]; - if (!str) { - continue - } - const have = pref + str; - //branch's end - if (ref === ',' || ref === undefined) { - all.push(have); - continue - } - const newIndex = indexFromRef(trie, ref, index); - crawl(newIndex, have); - } - }; - crawl(0, ''); - return all - }; - - //PackedTrie - Trie traversal of the Trie packed-string representation. - const unpack$2 = function (str) { - const trie = { - nodes: str.split(';'), - syms: [], - symCount: 0 - }; - //process symbols, if they have them - if (str.match(':')) { - parseSymbols(trie); - } - return toArray$3(trie) - }; - - var traverse = unpack$2; - - const unpack = function (str) { - if (!str) { - return {} - } - //turn the weird string into a key-value object again - const obj = str.split('|').reduce((h, s) => { - const arr = s.split('¦'); - h[arr[0]] = arr[1]; - return h - }, {}); - const all = {}; - Object.keys(obj).forEach(function (cat) { - const arr = traverse(obj[cat]); - //special case, for botched-boolean - if (cat === 'true') { - cat = true; - } - for (let i = 0; i < arr.length; i++) { - const k = arr[i]; - if (all.hasOwnProperty(k) === true) { - if (Array.isArray(all[k]) === false) { - all[k] = [all[k], cat]; - } else { - all[k].push(cat); - } - } else { - all[k] = cat; - } - } - }); - return all - }; - - var unpack$1 = unpack; - - //words that can't be compressed, for whatever reason - let misc$6 = { - // numbers - '20th century fox': 'Organization', - '7 eleven': 'Organization', - 'motel 6': 'Organization', - g8: 'Organization', - vh1: 'Organization', - - // ampersands - 'at&t': 'Organization', - 'black & decker': 'Organization', - 'h & m': 'Organization', - 'johnson & johnson': 'Organization', - 'procter & gamble': 'Organization', - "ben & jerry's": 'Organization', - '&': 'Conjunction', - - //pronouns - i: ['Pronoun', 'Singular'], - he: ['Pronoun', 'Singular'], - she: ['Pronoun', 'Singular'], - it: ['Pronoun', 'Singular'], - they: ['Pronoun', 'Plural'], - we: ['Pronoun', 'Plural'], - was: ['Copula', 'PastTense'], - is: ['Copula', 'PresentTense'], - are: ['Copula', 'PresentTense'], - am: ['Copula', 'PresentTense'], - were: ['Copula', 'PastTense'], - her: ['Possessive', 'Pronoun'], - his: ['Possessive', 'Pronoun'], - hers: ['Possessive', 'Pronoun'], - their: ['Possessive', 'Pronoun'], - themselves: ['Possessive', 'Pronoun'], - your: ['Possessive', 'Pronoun'], - our: ['Possessive', 'Pronoun'], - my: ['Possessive', 'Pronoun'], - its: ['Possessive', 'Pronoun'], - - // misc - vs: ['Conjunction', 'Abbreviation'], - if: ['Condition', 'Preposition'], - closer: 'Comparative', - closest: 'Superlative', - much: 'Adverb', - may: 'Modal', - - - // 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', - - }; - var misc$7 = misc$6; - - //just some of the most common emoticons - //faster than - //http://stackoverflow.com/questions/28077049/regex-matching-emoticons - var emoticons = [ - ':(', - ':)', - ':P', - ':p', - ':O', - ';(', - ';)', - ';P', - ';p', - ';O', - ':3', - ':|', - ':/', - ':\\', - ':$', - ':*', - ':@', - ':-(', - ':-)', - ':-P', - ':-p', - ':-O', - ':-3', - ':-|', - ':-/', - ':-\\', - ':-$', - ':-*', - ':-@', - ':^(', - ':^)', - ':^P', - ':^p', - ':^O', - ':^3', - ':^|', - ':^/', - ':^\\', - ':^$', - ':^*', - ':^@', - '):', - '(:', - '$:', - '*:', - ')-:', - '(-:', - '$-:', - '*-:', - ')^:', - '(^:', - '$^:', - '*^:', - '<3', - ' { - let wordsObj = unpack$1(lexData[tag]); - // POS tag, or something fancier? - if (!hasSwitch.test(tag)) { - // set them as simple word key-value lookup - Object.keys(wordsObj).forEach(w => { - lexicon[w] = tag; - }); - return - } - // add them as seperate key-val object - Object.keys(wordsObj).forEach(w => { - switches[w] = tag; - // pluralize Noun|Verb switches - if (tag === 'Noun|Verb') { - let plural = nounToPlural(w, tmpModel$1); - switches[plural] = 'Plural|Verb'; - } - }); - }); - // add ':)' - emoticons.forEach(str => lexicon[str] = 'Emoticon'); - - // misc cleanup - delete lexicon['']; - delete lexicon[null]; - delete lexicon[' ']; - - const jj = 'Adjective'; - - var adj$1 = { - beforeTags: { - Determiner: jj, //the detailed - // Copula: jj, //is detailed - Possessive: jj, //spencer's detailed - }, - - afterTags: { - // Noun: jj, //detailed plan, overwhelming evidence - Adjective: jj, //intoxicated little - }, - - beforeWords: { - seem: jj, //seem prepared - seemed: jj, - seems: jj, - feel: jj, //feel prepared - feels: jj, - felt: jj, - appear: jj, - appears: jj, - appeared: jj, - also: jj, - over: jj, //over cooked - under: jj, - too: jj, //too insulting - it: jj, //find it insulting - but: jj, //nothing but frustrating - still: jj, //still scared - // adverbs that are adjective-ish - really: jj, //really damaged - quite: jj, - well: jj, - very: jj, - deeply: jj, - // always: jj, - // never: jj, - profoundly: jj, - extremely: jj, - so: jj, - badly: jj, - mostly: jj, - totally: jj, - awfully: jj, - rather: jj, - nothing: jj, //nothing secret, - something: jj,//something wrong - anything: jj, - }, - afterWords: { - too: jj, //insulting too - also: jj, //insulting too - or: jj, //insulting or - }, - }; - - const g = 'Gerund'; - - // Adj|Gerund - // Noun|Gerund - - var gerund = { - beforeTags: { - // Verb: g, // loves shocking - Adverb: g, //quickly shocking - Preposition: g, //by insulting - Conjunction: g, //to insulting - }, - afterTags: { - Adverb: g, //shocking quickly - Possessive: g, //shocking spencer's - Person: g, //telling spencer - Pronoun: g, //shocking him - Determiner: g, //shocking the - Copula: g, //shocking is - Preposition: g, //dashing by, swimming in - Conjunction: g, //insulting to - Comparative: g, //growing shorter - }, - beforeWords: { - been: g, - keep: g,//keep going - continue: g,// - stop: g,// - am: g,//am watching - be: g,//be timing - me: g,//got me thinking - // action-words - began: g, - start: g, - starts: g, - started: g, - stops: g, - stopped: g, - help: g, - helps: g, - avoid: g, - avoids: g, - love: g,//love painting - loves: g, - loved: g, - hate: g, - hates: g, - hated: g, - // was:g,//was working - // is:g, - // be:g, - }, - afterWords: { - you: g, //telling you - me: g, // - her: g, // - him: g, // - them: g, // - their: g, // fighting their - it: g, //dumping it - this: g, //running this - there: g, // swimming there - on: g, // landing on - about: g, // talking about - for: g, // paying for - }, - }; - - // rallying the troops - // her rallying cry - 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 - }), - - afterTags: Object.assign({}, adj$1.afterTags, gerund.afterTags, { - Singular: 'Adjective'//shocking ignorance - }), - - beforeWords: Object.assign({}, adj$1.beforeWords, gerund.beforeWords, { - is: 'Adjective', - was: 'Adjective', - suggest: 'Gerund', - recommend: 'Gerund', - }), - - afterWords: Object.assign({}, adj$1.afterWords, gerund.afterWords, { - to: 'Gerund', - not: 'Gerund',//trying not to car - the: 'Gerund' //sweeping the country - }), - }; - // console.log(clue) - var adjGerund$1 = clue$6; - - const n = 'Singular'; - var noun$1 = { - beforeTags: { - Determiner: n, //the date - Possessive: n, //his date - Acronym: n,//u.s. state - // ProperNoun:n, - Noun: n, //nasa funding - Adjective: n, //whole bottles - // Verb:true, //save storm victims - PresentTense: n, //loves hiking - Gerund: n, //uplifting victims - PastTense: n, //saved storm victims - Infinitive: n, //profess love - Date: n,//9pm show - }, - afterTags: { - Value: n, //date nine -? - Modal: n, //date would - Copula: n, //fear is - PresentTense: n, //babysitting sucks - PastTense: n, //babysitting sucked - // Noun:n, //talking therapy, planning process - Demonym: n//american touch - }, - // ownTags: { ProperNoun: n }, - beforeWords: { - the: n,//the brands - with: n,//with cakes - without: n,// - // was:n, //was time -- was working - // is:n, // - of: n, //of power - for: n, //for rats - any: n, //any rats - all: n, //all tips - on: n, //on time - // thing-ish verbs - cut: n,//cut spending - cuts: n,//cut spending - save: n,// - saved: n,// - saves: n,// - make: n,// - makes: n,// - made: n,// - minus: n,//minus laughing - plus: n,// - than: n,//more than age - another: n,// - versus: n,// - neither: n,// - // strong adjectives - favorite: n,// - best: n,// - daily: n,// - weekly: n,// - linear: n,// - binary: n,// - mobile: n,// - lexical: n,// - technical: n,// - computer: n,// - scientific: n,// - formal: n - }, - afterWords: { - of: n, //date of birth (preposition) - system: n, - aid: n, - method: n, - utility: n, - tool: n, - reform: n, - therapy: n, - philosophy: n, - room: n, - authority: n, - says: n, - said: n, - wants: n, - wanted: n, - }, - }; - - // the commercial market - // watching the commercial - - const misc$5 = { - beforeTags: { - Determiner: undefined, //the premier university - Cardinal: 'Noun'//1950 convertable - } - }; - const clue$5 = { - beforeTags: Object.assign({}, adj$1.beforeTags, noun$1.beforeTags, misc$5.beforeTags), - afterTags: Object.assign({}, adj$1.afterTags, noun$1.afterTags), - beforeWords: Object.assign({}, adj$1.beforeWords, noun$1.beforeWords, { - // are representative - are: 'Adjective', is: 'Adjective', was: 'Adjective', be: 'Adjective', - }), - afterWords: Object.assign({}, adj$1.afterWords, noun$1.afterWords), - }; - var adjNoun = clue$5; - - // the boiled egg - // boiled the water - - const past$1 = { - beforeTags: { - Adverb: 'PastTense', //quickly detailed - Pronoun: 'PastTense', //he detailed - ProperNoun: 'PastTense', //toronto closed - Auxiliary: 'PastTense', - Noun: 'PastTense', //eye closed -- i guess. - }, - afterTags: { - Possessive: 'PastTense', //hooked him - Pronoun: 'PastTense', //hooked me - Determiner: 'PastTense', //hooked the - Adverb: 'PastTense', //cooked perfectly - Comparative: 'PastTense',//closed higher - Date: 'PastTense',// alleged thursday - }, - beforeWords: { - be: 'PastTense',//be hooked - get: 'PastTense',//get charged - had: 'PastTense', - has: 'PastTense', - have: 'PastTense', - been: 'PastTense', - it: 'PastTense',//it intoxicated him - as: 'PastTense',//as requested - for: 'Adjective',//for discounted items - }, - afterWords: { - by: 'PastTense', //damaged by - back: 'PastTense', //charged back - out: 'PastTense', //charged out - in: 'PastTense', //crowded in - up: 'PastTense', //heated up - down: 'PastTense', //hammered down - for: 'PastTense', //settled for - the: 'PastTense', //settled the - with: 'PastTense', //obsessed with - as: 'PastTense', //known as - on: 'PastTense', //focused on - }, - }; - - var adjPast = { - beforeTags: Object.assign({}, adj$1.beforeTags, past$1.beforeTags), - afterTags: Object.assign({}, adj$1.afterTags, past$1.afterTags), - beforeWords: Object.assign({}, adj$1.beforeWords, past$1.beforeWords), - afterWords: Object.assign({}, adj$1.afterWords, past$1.afterWords), - }; - - const v = 'Infinitive'; - - var verb = { - beforeTags: { - Modal: v, //would date - Adverb: v, //quickly date - Negative: v, //not date - Plural: v, //characters drink - // ProperNoun: vb,//google thought - }, - afterTags: { - Determiner: v, //flash the - Adverb: v, //date quickly - Possessive: v, //date his - // Noun:true, //date spencer - Preposition: v, //date around, dump onto, grumble about - // Conjunction: v, // dip to, dip through - }, - beforeWords: { - i: v, //i date - we: v, //we date - you: v, //you date - they: v, //they date - to: v, //to date - please: v, //please check - will: v, //will check - have: v, - had: v, - would: v, - could: v, - should: v, - do: v, - did: v, - does: v, - can: v, - must: v, - us: v, - me: v, - // them: v, - he: v, - she: v, - it: v, - being: v, - }, - afterWords: { - the: v, //echo the - me: v, //date me - you: v, //date you - him: v, //loves him - her: v, // - them: v, // - it: v, //hope it - a: v, //covers a - an: v, //covers an - // from: v, //ranges from - up: v,//serves up - down: v,//serves up - by: v, - // in: v, //bob in - out: v, - // on: v, - off: v, - when: v,//starts when - // for:true, //settled for - all: v,//shiver all night - // conjunctions - to: v,//dip to - because: v,// - although: v,// - before: v,// - how: v,// - otherwise: v,// - though: v,// - yet: v,// - }, - }; - - // 'would mean' vs 'is mean' - const misc$4 = { - afterTags: { - Noun: 'Adjective',//ruling party - Conjunction: undefined //clean and excellent - } - }; - const clue$4 = { - beforeTags: Object.assign({}, adj$1.beforeTags, verb.beforeTags, { - // always clean - Adverb: undefined, Negative: undefined - }), - afterTags: Object.assign({}, adj$1.afterTags, verb.afterTags, misc$4.afterTags), - beforeWords: Object.assign({}, adj$1.beforeWords, verb.beforeWords, { - // have seperate contracts - have: undefined, had: undefined, not: undefined, - //went wrong, got wrong - went: 'Adjective', goes: 'Adjective', got: 'Adjective', - // be sure - be: 'Adjective' - }), - afterWords: Object.assign({}, adj$1.afterWords, verb.afterWords, { - to: undefined//slick to the touch - }), - }; - // console.log(clue.beforeWords) - // console.log(clue) - var adjPresent = clue$4; - - // 'operating the crane', or 'operating room' - const misc$3 = { - beforeTags: { - Copula: 'Gerund', PastTense: 'Gerund', PresentTense: 'Gerund', Infinitive: 'Gerund' - }, - afterTags: {}, - beforeWords: { - are: 'Gerund', were: 'Gerund', be: 'Gerund', no: 'Gerund', without: 'Gerund', - //are you playing - you: 'Gerund', we: 'Gerund', they: 'Gerund', he: 'Gerund', she: 'Gerund', - //stop us playing - us: 'Gerund', them: 'Gerund' - }, - afterWords: { - // offering the - the: 'Gerund', this: 'Gerund', that: 'Gerund', - //got me thinking - me: 'Gerund', us: 'Gerund', them: 'Gerund', - }, - }; - const clue$3 = { - beforeTags: Object.assign({}, gerund.beforeTags, noun$1.beforeTags, misc$3.beforeTags), - afterTags: Object.assign({}, gerund.afterTags, noun$1.afterTags, misc$3.afterTags), - beforeWords: Object.assign({}, gerund.beforeWords, noun$1.beforeWords, misc$3.beforeWords), - afterWords: Object.assign({}, gerund.afterWords, noun$1.afterWords, misc$3.afterWords), - }; - var nounGerund = clue$3; - - // 'boot the ball' - 'the red boot' - // 'boots the ball' - 'the red boots' - const clue$2 = { - beforeTags: Object.assign({}, verb.beforeTags, noun$1.beforeTags, { - // Noun: undefined - Adjective: 'Singular',//great name - }), - afterTags: Object.assign({}, verb.afterTags, noun$1.afterTags, { - ProperNoun: 'Infinitive', Gerund: 'Infinitive', Adjective: 'Infinitive', - Copula: 'Singular', - }), - beforeWords: Object.assign({}, verb.beforeWords, noun$1.beforeWords, { - // is time - is: 'Singular', was: 'Singular', - //balance of power - of: 'Singular' - }), - afterWords: Object.assign({}, verb.afterWords, noun$1.afterWords, { - // for: 'Infinitive',//work for - instead: 'Infinitive', - // that: 'Singular',//subject that was - // for: 'Infinitive',//work for - about: 'Infinitive',//talk about - to: null, - by: null, - in: null - }), - }; - // console.log(clue.afterWords.of) - var nounVerb = clue$2; - - const p = 'Person'; - - var person$1 = { - beforeTags: { - Honorific: p, - Person: p, - Preposition: p, //with sue - }, - afterTags: { - Person: p, - ProperNoun: p, - Verb: p, //bob could - // Modal:true, //bob could - // Copula:true, //bob is - // PresentTense:true, //bob seems - }, - ownTags: { - ProperNoun: p, //capital letter - }, - beforeWords: { - hi: p, - hey: p, - yo: p, - dear: p, - hello: p, - }, - afterWords: { - // person-usually verbs - said: p, - says: p, - told: p, - tells: p, - feels: p, - felt: p, - seems: p, - thinks: p, - thought: p, - spends: p, - spendt: p, - plays: p, - played: p, - sing: p, - sang: p, - learn: p, - learned: p, - wants: p, - wanted: p - // and:true, //sue and jeff - }, - }; - - // 'april o'neil' - 'april 1st' - - const m$1 = 'Month'; - const month = { - beforeTags: { - Date: m$1, - Value: m$1, - }, - afterTags: { - Date: m$1, - Value: m$1, - }, - beforeWords: { - by: m$1, - in: m$1, - on: m$1, - during: m$1, - after: m$1, - before: m$1, - between: m$1, - until: m$1, - til: m$1, - sometime: m$1, - of: m$1, //5th of april - this: m$1, //this april - next: m$1, - last: m$1, - previous: m$1, - following: m$1, - }, - afterWords: { - sometime: m$1, - in: m$1, - of: m$1, - until: m$1, - the: m$1, //june the 4th - }, - }; - var personDate = { - beforeTags: Object.assign({}, person$1.beforeTags, month.beforeTags), - afterTags: Object.assign({}, person$1.afterTags, month.afterTags), - beforeWords: Object.assign({}, person$1.beforeWords, month.beforeWords), - afterWords: Object.assign({}, person$1.afterWords, month.afterWords), - }; - - // 'babling brook' vs 'brook sheilds' - - const clue$1 = { - beforeTags: Object.assign({}, noun$1.beforeTags, person$1.beforeTags), - afterTags: Object.assign({}, noun$1.afterTags, person$1.afterTags), - beforeWords: Object.assign({}, noun$1.beforeWords, person$1.beforeWords, { i: 'Infinitive', we: 'Infinitive' }), - afterWords: Object.assign({}, noun$1.afterWords, person$1.afterWords), - }; - var personNoun = clue$1; - - // 'rob the store' - 'rob lowe' - const clues$2 = { - 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; - - // 'paris hilton' vs 'paris france' - const place = { - beforeTags: { - Place: 'Place' - }, - afterTags: { - Place: 'Place', - Abbreviation: 'Place' - }, - beforeWords: { - in: 'Place', - by: 'Place', - near: 'Place', - from: 'Place', - to: 'Place', - }, - afterWords: { - in: 'Place', - by: 'Place', - near: 'Place', - from: 'Place', - to: 'Place', - government: 'Place', - council: 'Place', - region: 'Place', - city: 'Place', - }, - }; - - const clue = { - beforeTags: Object.assign({}, place.beforeTags, person$1.beforeTags), - afterTags: Object.assign({}, place.afterTags, person$1.afterTags), - beforeWords: Object.assign({}, place.beforeWords, person$1.beforeWords), - afterWords: Object.assign({}, place.afterWords, person$1.afterWords), - }; - var personPlace = clue; - - const clues = { - 'Adj|Gerund': adjGerund$1, - 'Adj|Noun': adjNoun, - 'Adj|Past': adjPast, - 'Adj|Present': adjPresent, - 'Noun|Verb': nounVerb, - 'Noun|Gerund': nounGerund, - 'Person|Noun': personNoun, - 'Person|Date': personDate, - 'Person|Verb': personVerb, - 'Person|Place': personPlace, - }; - - const copy = (obj, more) => { - let res = Object.keys(obj).reduce((h, k) => { - h[k] = obj[k] === 'Infinitive' ? 'PresentTense' : 'Plural'; - return h - }, {}); - return Object.assign(res, more) - }; - - // make a copy of this one - clues['Plural|Verb'] = { - beforeWords: copy(clues['Noun|Verb'].beforeWords, { - - }), - afterWords: copy(clues['Noun|Verb'].afterWords, { - his: 'PresentTense', her: 'PresentTense', its: 'PresentTense', - in: null, to: null, - }), - beforeTags: copy(clues['Noun|Verb'].beforeTags, { - Conjunction: 'PresentTense', //and changes - Noun: undefined, //the century demands - ProperNoun: 'PresentTense'//john plays - }), - afterTags: copy(clues['Noun|Verb'].afterTags, { - Gerund: 'Plural',//ice caps disappearing - Noun: 'PresentTense', //changes gears - Value: 'PresentTense' //changes seven gears - }), - }; - // add some custom plural clues - var clues$1 = clues; - - //just a foolish lookup of known suffixes - const Adj$2 = 'Adjective'; - const Inf$1 = 'Infinitive'; - const Pres$1 = 'PresentTense'; - const Sing$1 = 'Singular'; - const Past$1 = 'PastTense'; - const Avb = 'Adverb'; - const Plrl = 'Plural'; - const Actor$1 = 'Actor'; - const Vb = 'Verb'; - const Noun$2 = 'Noun'; - const Last$1 = 'LastName'; - const Modal = 'Modal'; - const Place = 'Place'; - const Prt = 'Participle'; - - var suffixPatterns = [ - null, - null, - { - //2-letter - ea: Sing$1, - ia: Noun$2, - ic: Adj$2, - ly: Avb, - "'n": Vb, - "'t": Vb, - }, - { - //3-letter - oed: Past$1, - ued: Past$1, - xed: Past$1, - ' so': Avb, - "'ll": Modal, - "'re": 'Copula', - azy: Adj$2, - eer: Noun$2, - end: Vb, - ped: Past$1, - ffy: Adj$2, - ify: Inf$1, - ing: 'Gerund', - ize: Inf$1, - ibe: Inf$1, - lar: Adj$2, - mum: Adj$2, - nes: Pres$1, - nny: Adj$2, - // oid: Adj, - ous: Adj$2, - que: Adj$2, - rol: Sing$1, - sis: Sing$1, - ogy: Sing$1, - oid: Sing$1, - ian: Sing$1, - zes: Pres$1, - eld: Past$1, - ken: Prt,//awoken - ven: Prt,//woven - ten: Prt,//brighten - ect: Inf$1, - ict: Inf$1, - // ide: Inf, - ign: Inf$1, - ful: Adj$2, - bal: Adj$2, - }, - { - //4-letter - amed: Past$1, - aped: Past$1, - ched: Past$1, - lked: Past$1, - rked: Past$1, - reed: Past$1, - nded: Past$1, - mned: Adj$2, - cted: Past$1, - dged: Past$1, - ield: Sing$1, - akis: Last$1, - cede: Inf$1, - chuk: Last$1, - czyk: Last$1, - ects: Pres$1, - ends: Vb, - enko: Last$1, - ette: Sing$1, - wner: Sing$1,//owner - fies: Pres$1, - fore: Avb, - gate: Inf$1, - gone: Adj$2, - ices: Plrl, - ints: Plrl, - ruct: Inf$1, - ines: Plrl, - ions: Plrl, - less: Adj$2, - llen: Adj$2, - made: Adj$2, - nsen: Last$1, - oses: Pres$1, - ould: Modal, - some: Adj$2, - sson: Last$1, - // tage: Inf, - tion: Sing$1, - tage: Noun$2, - ique: Sing$1, - tive: Adj$2, - tors: Noun$2, - vice: Sing$1, - lier: Sing$1, - fier: Sing$1, - wned: Past$1, - gent: Sing$1, - tist: Sing$1, - pist: Sing$1, - rist: Sing$1, - mist: Sing$1, - yist: Sing$1, - vist: Sing$1, - lite: Sing$1, - site: Sing$1, - rite: Sing$1, - mite: Sing$1, - bite: Sing$1, - mate: Sing$1, - date: Sing$1, - ndal: Sing$1, - vent: Sing$1, - uist: Sing$1, - gist: Sing$1, - note: Sing$1, - cide: Sing$1,//homicide - wide: Adj$2,//nationwide - // side: Adj,//alongside - vide: Inf$1,//provide - ract: Inf$1, - duce: Inf$1, - pose: Inf$1, - eive: Inf$1, - lyze: Inf$1, - lyse: Inf$1, - iant: Adj$2, - nary: Adj$2, - }, - { - //5-letter - elist: Sing$1, - holic: Sing$1, - phite: Sing$1, - tized: Past$1, - urned: Past$1, - eased: Past$1, - ances: Plrl, - bound: Adj$2, - ettes: Plrl, - fully: Avb, - ishes: Pres$1, - ities: Plrl, - marek: Last$1, - nssen: Last$1, - ology: Noun$2, - osome: Sing$1, - tment: Sing$1, - ports: Plrl, - rough: Adj$2, - tches: Pres$1, - tieth: 'Ordinal', - tures: Plrl, - wards: Avb, - where: Avb, - archy: Noun$2, - pathy: Noun$2, - opoly: Noun$2, - embly: Noun$2, - phate: Noun$2, - ndent: Sing$1, - scent: Sing$1, - onist: Sing$1, - anist: Sing$1, - alist: Sing$1, - olist: Sing$1, - icist: Sing$1, - ounce: Inf$1, - iable: Adj$2, - borne: Adj$2, - gnant: Adj$2, - inant: Adj$2, - igent: Adj$2, - atory: Adj$2, - // ctory: Adj, - rient: Sing$1, - dient: Sing$1, - }, - { - //6-letter - auskas: Last$1, - parent: Sing$1, - cedent: Sing$1, - ionary: Sing$1, - cklist: Sing$1, - keeper: Actor$1, - logist: Actor$1, - teenth: 'Value', - }, - { - //7-letter - opoulos: Last$1, - borough: Place, - sdottir: Last$1, //swedish female - }, - ]; - - //prefixes give very-little away, in general. - // more-often for scientific terms, etc. - const Adj$1 = 'Adjective'; - const Noun$1 = 'Noun'; - const Verb$1 = 'Verb'; - - var prefixPatterns = [ - null, - null, - { - // 2-letter - }, - { - // 3-letter - neo: Noun$1, - bio: Noun$1, - // pre: Noun, - 'de-': Verb$1, - 're-': Verb$1, - 'un-': Verb$1, - }, - { - // 4-letter - anti: Noun$1, - auto: Noun$1, - faux: Adj$1, - hexa: Noun$1, - kilo: Noun$1, - mono: Noun$1, - nano: Noun$1, - octa: Noun$1, - poly: Noun$1, - semi: Adj$1, - tele: Noun$1, - 'pro-': Adj$1, - 'mis-': Verb$1, - 'dis-': Verb$1, - 'pre-': Adj$1, //hmm - }, - { - // 5-letter - anglo: Noun$1, - centi: Noun$1, - ethno: Noun$1, - ferro: Noun$1, - grand: Noun$1, - hepta: Noun$1, - hydro: Noun$1, - intro: Noun$1, - macro: Noun$1, - micro: Noun$1, - milli: Noun$1, - nitro: Noun$1, - penta: Noun$1, - quasi: Adj$1, - radio: Noun$1, - tetra: Noun$1, - 'omni-': Adj$1, - 'post-': Adj$1, - }, - { - // 6-letter - pseudo: Adj$1, - 'extra-': Adj$1, - 'hyper-': Adj$1, - 'inter-': Adj$1, - 'intra-': Adj$1, - 'deca-': Adj$1, - // 'trans-': Noun, - }, - { - // 7-letter - electro: Noun$1, - }, - ]; - - //regex suffix patterns and their most common parts of speech, - //built using wordnet, by spencer kelly. - //this mapping shrinks-down the uglified build - const Adj = 'Adjective'; - const Inf = 'Infinitive'; - const Pres = 'PresentTense'; - const Sing = 'Singular'; - const Past = 'PastTense'; - const Adverb = 'Adverb'; - const Exp = 'Expression'; - const Actor = 'Actor'; - const Verb = 'Verb'; - const Noun = 'Noun'; - const Last = 'LastName'; - - var endsWith = { - a: [ - [/.[aeiou]na$/, Noun, 'tuna'], - [/.[oau][wvl]ska$/, Last], - [/.[^aeiou]ica$/, Sing, 'harmonica'], - [/^([hyj]a+)+$/, Exp, 'haha'], //hahah - ], - c: [[/.[^aeiou]ic$/, Adj]], - d: [ - //==-ed== - //double-consonant - [/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/, Past, 'popped'], - //double-vowel - [/.[aeo]{2}[bdgmnprvz]ed$/, Past, 'rammed'], - //-hed - [/.[aeiou][sg]hed$/, Past, 'gushed'], - //-rd - [/.[aeiou]red$/, Past, 'hired'], - [/.[aeiou]r?ried$/, Past, 'hurried'], - // ard - [/[^aeiou]ard$/, Sing, 'steward'], - // id - [/[aeiou][^aeiou]id$/, Adj, ''], - [/.[vrl]id$/, Adj, 'livid'], - - // ===== -ed ====== - //-led - [/..led$/, Past, 'hurled'], - //-sed - [/.[iao]sed$/, Past, ''], - [/[aeiou]n?[cs]ed$/, Past, ''], - //-med - [/[aeiou][rl]?[mnf]ed$/, Past, ''], - //-ked - [/[aeiou][ns]?c?ked$/, Past, 'bunked'], - //-gned - [/[aeiou]gned$/, Past], - //-ged - [/[aeiou][nl]?ged$/, Past], - //-ted - [/.[tdbwxyz]ed$/, Past], - [/[^aeiou][aeiou][tvx]ed$/, Past], - //-ied - [/.[cdflmnprstv]ied$/, Past, 'emptied'], - ], - e: [ - [/.[lnr]ize$/, Inf, 'antagonize'], - [/.[^aeiou]ise$/, Inf, 'antagonise'], - [/.[aeiou]te$/, Inf, 'bite'], - [/.[^aeiou][ai]ble$/, Adj, 'fixable'], - [/.[^aeiou]eable$/, Adj, 'maleable'], - [/.[ts]ive$/, Adj, 'festive'], - [/[a-z]-like$/, Adj, 'woman-like'], - ], - h: [ - [/.[^aeiouf]ish$/, Adj, 'cornish'], - [/.v[iy]ch$/, Last, '..ovich'], - [/^ug?h+$/, Exp, 'ughh'], - [/^uh[ -]?oh$/, Exp, 'uhoh'], - [/[a-z]-ish$/, Adj, 'cartoon-ish'], - ], - i: [[/.[oau][wvl]ski$/, Last, 'polish-male']], - k: [ - [/^(k){2}$/, Exp, 'kkkk'], //kkkk - ], - l: [ - [/.[gl]ial$/, Adj, 'familial'], - [/.[^aeiou]ful$/, Adj, 'fitful'], - [/.[nrtumcd]al$/, Adj, 'natal'], - [/.[^aeiou][ei]al$/, Adj, 'familial'], - ], - m: [ - [/.[^aeiou]ium$/, Sing, 'magnesium'], - [/[^aeiou]ism$/, Sing, 'schism'], - [/^[hu]m+$/, Exp, 'hmm'], - [/^\d+ ?[ap]m$/, 'Date', '3am'], - ], - n: [ - [/.[lsrnpb]ian$/, Adj, 'republican'], - [/[^aeiou]ician$/, Actor, 'musician'], - [/[aeiou][ktrp]in'$/, 'Gerund', "cookin'"], // 'cookin', 'hootin' - ], - o: [ - [/^no+$/, Exp, 'noooo'], - [/^(yo)+$/, Exp, 'yoo'], - [/^wo{2,}[pt]?$/, Exp, 'woop'], //woo - ], - r: [ - [/.[bdfklmst]ler$/, 'Noun'], - [/[aeiou][pns]er$/, Sing], - [/[^i]fer$/, Inf], - [/.[^aeiou][ao]pher$/, Actor], - [/.[lk]er$/, 'Noun'], - [/.ier$/, 'Comparative'], - ], - t: [ - [/.[di]est$/, 'Superlative'], - [/.[icldtgrv]ent$/, Adj], - [/[aeiou].*ist$/, Adj], - [/^[a-z]et$/, Verb], - ], - s: [ - [/.[^aeiou]ises$/, Pres], - [/.[rln]ates$/, Pres], - [/.[^z]ens$/, Verb], - [/.[lstrn]us$/, Sing], - [/.[aeiou]sks$/, Pres], - [/.[aeiou]kes$/, Pres], - [/[aeiou][^aeiou]is$/, Sing], - [/[a-z]'s$/, Noun], - [/^yes+$/, Exp], //yessss - ], - v: [ - [/.[^aeiou][ai][kln]ov$/, Last], //east-europe - ], - y: [ - [/.[cts]hy$/, Adj], - [/.[st]ty$/, Adj], - [/.[tnl]ary$/, Adj], - [/.[oe]ry$/, Sing], - [/[rdntkbhs]ly$/, Adverb], - [/.(gg|bb|zz)ly$/, Adj], - [/...lly$/, Adverb], - [/.[gk]y$/, Adj], - [/[bszmp]{2}y$/, Adj], - [/.[ai]my$/, Adj], - [/[ea]{2}zy$/, Adj], - [/.[^aeiou]ity$/, Sing], - ], - }; - - const vb = 'Verb'; - const nn = 'Noun'; - - var neighbours$2 = { - // looking at the previous word's tags: - leftTags: [ - ['Adjective', nn], - ['Possessive', nn], - ['Determiner', nn], - ['Adverb', vb], - ['Pronoun', vb], - ['Value', nn], - ['Ordinal', nn], - ['Modal', vb], - ['Superlative', nn], - ['Demonym', nn], - ['Honorific', 'Person'], //dr. Smith - ], - // looking at the previous word: - leftWords: [ - ['i', vb], - ['first', nn], - ['it', vb], - ['there', vb], - ['not', vb], - ['because', nn], - ['if', nn], - ['but', nn], - ['who', vb], - ['this', nn], - ['his', nn], - ['when', nn], - ['you', vb], - ['very', 'Adjective'], - ['old', nn], - ['never', vb], - ['before', nn], - ['a', 'Singular'], - ['the', nn], - ['been', vb], - ], - - // looking at the next word's tags: - rightTags: [ - ['Copula', nn], - ['PastTense', nn], - ['Conjunction', nn], - ['Modal', nn], - ], - // looking at the next word: - rightWords: [ - ['there', vb], - ['me', vb], - ['man', 'Adjective'], - ['only', vb], - ['him', vb], - ['it', vb],//relaunch it - ['were', nn], - ['took', nn], - ['himself', vb], - ['went', nn], - ['who', nn], - ['jr', 'Person'], - ], - }; - - // generated in ./lib/pairs - var data = { - "Comparative": { - "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" - }, - "Gerund": { - "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" - }, - "Participle": { - "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" - }, - "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", - "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" - }, - "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|", - "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" - }, - "Superlative": { - "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 prefix$3 = /^.([0-9]+)/; - - // handle compressed form of key-value pair - const getKeyVal = function (word, model) { - let val = model.exceptions[word]; - let m = val.match(prefix$3); - if (m === null) { - // return not compressed form - return model.exceptions[word] - } - // uncompress it - let num = Number(m[1]) || 0; - let pre = word.substr(0, num); - return pre + val.replace(prefix$3, '') - }; - - // get suffix-rules according to last char of word - const getRules = function (word, rules = {}) { - let char = word[word.length - 1]; - let list = rules[char] || []; - // do we have a generic suffix? - if (rules['']) { - list = list.concat(rules['']); - } - return list - }; - - const convert = function (word, model, debug) { - // check list of irregulars - if (model.exceptions.hasOwnProperty(word)) { - if (debug) { - console.log("exception, ", word, model.exceptions[word]); - } - return getKeyVal(word, model) - } - // if model is reversed, try rev rules - let rules = model.rules; - if (model.reversed) { - rules = model.rev; - } - // try suffix rules - rules = getRules(word, rules); - for (let i = 0; i < rules.length; i += 1) { - let suffix = rules[i][0]; - if (word.endsWith(suffix)) { - if (debug) { - console.log("rule, ", rules[i]); - } - let reg = new RegExp(suffix + '$'); - return word.replace(reg, rules[i][1]) - } - } - if (debug) { - console.log(' x - ' + word); - } - // return the original word unchanged - return word - }; - var convert$1 = convert; - - // index rules by last-char - const indexRules = function (rules) { - let byChar = {}; - rules.forEach((a) => { - let suff = a[0] || ''; - let char = suff[suff.length - 1] || ''; - byChar[char] = byChar[char] || []; - byChar[char].push(a); - }); - return byChar - }; - - const prefix$2 = /^([0-9]+)/; - - const expand$2 = function (key = '', val = '') { - val = String(val); - let m = val.match(prefix$2); - if (m === null) { - return [key, val] - } - let num = Number(m[1]) || 0; - let pre = key.substring(0, num); - let full = pre + val.replace(prefix$2, ''); - return [key, full] - }; - - const toArray$2 = function (txt) { - const pipe = /\|/; - return txt.split(/,/).map(str => { - let a = str.split(pipe); - return expand$2(a[0], a[1]) - }) - }; - - const uncompress = function (model = {}) { - model = Object.assign({}, model); - - // compress fwd rules - model.rules = toArray$2(model.rules); - model.rules = indexRules(model.rules); - - // compress reverse rules - if (model.rev) { - model.rev = toArray$2(model.rev); - model.rev = indexRules(model.rev); - } - - // compress exceptions - model.exceptions = toArray$2(model.exceptions); - model.exceptions = model.exceptions.reduce((h, a) => { - h[a[0]] = a[1]; - return h - }, {}); - return model - }; - var uncompress$1 = uncompress; - - // console.log(expand('fixture', '6ing')) - // console.log(toArray('heard|4')) - - const reverseObj = function (obj) { - return Object.entries(obj).reduce((h, a) => { - h[a[1]] = a[0]; - return h - }, {}) - }; - - const reverse = function (model) { - let { rules, exceptions, rev } = model; - exceptions = reverseObj(exceptions); - return { - reversed: !Boolean(model.reversed),//toggle this - rules, - exceptions, - rev - } - }; - var reverse$1 = reverse; - - // import { reverse, uncompress } from '/Users/spencer/mountain/suffix-thumb' - // const uncompress = function () { } - // const reverse = function () { } - const fromPast = uncompress$1(data.PastTense); - const fromPresent = uncompress$1(data.PresentTense); - const fromGerund = uncompress$1(data.Gerund); - const fromParticiple = uncompress$1(data.Participle); - - const toPast$4 = reverse$1(fromPast); - const toPresent$4 = reverse$1(fromPresent); - const toGerund$3 = reverse$1(fromGerund); - const toParticiple = reverse$1(fromParticiple); - - const toComparative = uncompress$1(data.Comparative); - const toSuperlative = uncompress$1(data.Superlative); - const fromComparative = reverse$1(toComparative); - const fromSuperlative = reverse$1(toSuperlative); - - var models = { - fromPast, - fromPresent, - fromGerund, - fromParticiple, - toPast: toPast$4, - toPresent: toPresent$4, - toGerund: toGerund$3, - toParticiple, - // adjectives - toComparative, - toSuperlative, - fromComparative, - fromSuperlative - }; - // console.log(convert('collide', toPast)) - - var regexNormal = [ - //web tags - [/^[\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'], - - // timezones - [/^[PMCE]ST$/, 'Timezone', 'EST'], - - //names - [/^ma?c'.*/, 'LastName', "mc'neil"], - [/^o'[drlkn].*/, 'LastName', "o'connor"], - [/^ma?cd[aeiou]/, 'LastName', 'mcdonald'], - - //slang things - [/^(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/h - [/^(m|k|cm|km)\/(s|h|hr)$/, 'Unit', '5 k/m'], - // μg/g - [/^(ug|ng|mg)\/(l|m3|ft3)$/, 'Unit', 'ug/L'], - ]; - - var regexText = [ - // #coolguy - [/^#[\p{Number}_]*\p{Letter}/u, 'HashTag'],// can't be all numbers - - // @spencermountain - [/^@\w{2,}$/, 'AtMention'], - - // period-ones acronyms - f.b.i. - [/^([A-Z]\.){2}[A-Z]?/i, ['Acronym', 'Noun'], 'F.B.I'], //ascii-only - - // ending-apostrophes - [/.{3}[lkmnp]in['‘’‛‵′`´]$/, 'Gerund', "chillin'"], - [/.{4}s['‘’‛‵′`´]$/, 'Possessive', "flanders'"], - - //from https://www.regextester.com/106421 - // [/^([\u00a9\u00ae\u2319-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/, 'Emoji', 'emoji-range'] - // unicode character range - [/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u, 'Emoji', 'emoji-class'] - ]; - - var 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'], - // times - [/^[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'], //can remove? - - // iso-dates - [/^[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'], - - // timezones - [/^utc ?[+-]?[0-9]+$/, 'Timezone', 'utc-9'], - [/^(gmt|utc)[+-][0-9]{1,2}$/i, 'Timezone', 'gmt-3'], - - //phone numbers - [/^[0-9]{3}-[0-9]{4}$/, 'PhoneNumber', '421-0029'], - [/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/, 'PhoneNumber', '1-800-'], - - - //money - //like $5.30 - [ - /^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u, - ['Money', 'Value'], - '$5.30', - ], - //like 5.30$ - [ - /^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u, - ['Money', 'Value'], - '5.30£', - ], - //like - [/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i, ['Money', 'Value'], '$400usd'], - - //numbers - // 50 | -50 | 3.23 | 5,999.0 | 10+ - [/^[-+]?[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'], - // .73th - [/^\.[0-9]+\+?$/, ['Cardinal', 'NumericValue'], '.73th'], - //percent - [/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/, ['Percent', 'Cardinal', 'NumericValue'], '-4%'], - [/^\.[0-9]+%$/, ['Percent', 'Cardinal', 'NumericValue'], '.3%'], - //fraction - [/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/, ['Fraction', 'NumericValue'], '2/3rds'], - //range - [/^[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 - [/^[0-9.]+([a-z]{1,4})$/, 'Value', '9km'], - ]; - - //nouns that also signal the title of an unknown organization - //todo remove/normalize plural forms - var orgWords$1 = [ - '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', - // 'standard', - 'subcommittee', - 'syndicat', - 'systems', - 'telecommunications', - 'telegraph', - 'television', - 'times', - 'tribunal', - 'tv', - 'union', - 'university', - 'utilities', - 'workers', - ].reduce((h, str) => { - h[str] = true; - return h - }, {}); - - var rules$1 = [ - [/([^v])ies$/i, '$1y'], - [/(ise)s$/i, '$1'],//promises - [/(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'],//causes - [/(ease)s$/i, '$1'],//diseases - [/(ious)es$/i, '$1'],//geniouses - [/(ouse)s$/i, '$1'],//houses - [/(ose)s$/i, '$1'],//roses - - [/(..[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, ''], - ]; - - const invertObj = function (obj) { - return Object.keys(obj).reduce((h, k) => { - h[obj[k]] = k; - return h - }, {}) - }; - - const toSingular$2 = function (str, model) { - const { irregularPlurals } = model.two; - let invert = invertObj(irregularPlurals); //(not very efficient) - // check irregulars list - if (invert.hasOwnProperty(str)) { - return invert[str] - } - // go through our regexes - for (let i = 0; i < rules$1.length; i++) { - if (rules$1[i][0].test(str) === true) { - // console.log(rules[i]) - str = str.replace(rules$1[i][0], rules$1[i][1]); - return str - } - } - return str - }; - var nounToSingular = toSingular$2; - - let guessVerb = { - Gerund: ['ing'], - Actor: ['erer'], - Infinitive: [ - 'ate', - 'ize', - 'tion', - 'rify', - 'then', - 'ress', - 'ify', - 'age', - 'nce', - 'ect', - 'ise', - 'ine', - 'ish', - 'ace', - 'ash', - 'ure', - 'tch', - 'end', - 'ack', - 'and', - 'ute', - 'ade', - 'ock', - 'ite', - 'ase', - 'ose', - 'use', - 'ive', - 'int', - 'nge', - 'lay', - 'est', - 'ain', - 'ant', - 'ent', - 'eed', - 'er', - 'le', - 'unk', - 'ung', - 'upt', - 'en', - ], - PastTense: ['ept', 'ed', 'lt', 'nt', 'ew', 'ld'], - PresentTense: [ - 'rks', - 'cks', - 'nks', - 'ngs', - 'mps', - 'tes', - 'zes', - 'ers', - 'les', - 'acks', - 'ends', - 'ands', - 'ocks', - 'lays', - 'eads', - 'lls', - 'els', - 'ils', - 'ows', - 'nds', - 'ays', - 'ams', - 'ars', - 'ops', - 'ffs', - 'als', - 'urs', - 'lds', - 'ews', - 'ips', - 'es', - 'ts', - 'ns', - ], - Participle: ['ken', 'wn'] - }; - //flip it into a lookup object - guessVerb = Object.keys(guessVerb).reduce((h, k) => { - guessVerb[k].forEach(a => (h[a] = k)); - return h - }, {}); - var guess = guessVerb; - - /** it helps to know what we're conjugating from */ - const getTense$1 = function (str) { - let three = str.substring(str.length - 3); - if (guess.hasOwnProperty(three) === true) { - return guess[three] - } - let two = str.substring(str.length - 2); - if (guess.hasOwnProperty(two) === true) { - return guess[two] - } - let one = str.substring(str.length - 1); - if (one === 's') { - return 'PresentTense' - } - return null - }; - var getTense$2 = getTense$1; - - const toParts = function (str, model) { - let prefix = ''; - let prefixes = {}; - if (model.one && model.one.prefixes) { - prefixes = model.one.prefixes; - } - // pull-apart phrasal verb 'fall over' - let [verb, particle] = str.split(/ /); - // support 'over cleaned' - if (particle && prefixes[verb] === true) { - prefix = verb; - verb = particle; - particle = ''; - } - return { - prefix, verb, particle - } - }; - - - // dunno about these.. - const copulaMap = { - are: 'be', - were: 'be', - been: 'be', - is: 'be', - am: 'be', - was: 'be', - be: 'be', - being: 'be', - }; - - const toInfinitive$6 = function (str, model, tense) { - const { fromPast, fromPresent, fromGerund, fromParticiple } = model.two.models; - // if (str.length < 3) { - // return str - // } - let { prefix, verb, particle } = toParts(str, model); - let inf = ''; - if (!tense) { - tense = getTense$2(str); - } - if (copulaMap.hasOwnProperty(str)) { - inf = copulaMap[str]; - } else if (tense === 'Participle') { - inf = convert$1(verb, fromParticiple); - } else if (tense === 'PastTense') { - inf = convert$1(verb, fromPast); - } else if (tense === 'PresentTense') { - inf = convert$1(verb, fromPresent); - } else if (tense === 'Gerund') { - inf = convert$1(verb, fromGerund); - } else { - return str - } - - // stitch phrasal back on - if (particle) { - inf += ' ' + particle; - } - // stitch prefix back on - if (prefix) { - inf = prefix + ' ' + inf; - } - return inf - }; - var toInfinitive$7 = toInfinitive$6; - - // console.log(toInfinitive('snarled', { one: {} })) - // console.log(convert('snarled', fromPast)) - - // import { toPast, toPresent, toGerund, toParticiple } from '../../../../model/models/index.js' - - // pull-apart phrasal verb 'fall over' - const parse$6 = (inf) => { - if (/ /.test(inf)) { - return inf.split(/ /) - } - return [inf, ''] - }; - - //we run this on every verb in the lexicon, so please keep it fast - //we assume the input word is a proper infinitive - const conjugate = function (inf, model) { - const { toPast, toPresent, toGerund, toParticiple } = model.two.models; - // ad-hoc Copula response - if (inf === 'be') { - return { - Infinitive: inf, - Gerund: 'being', - PastTense: 'was', - PresentTense: 'is', - } - } - let [str, particle] = parse$6(inf); - let found = { - Infinitive: inf, - PastTense: convert$1(str, toPast), - PresentTense: convert$1(str, toPresent), - Gerund: convert$1(str, toGerund), - FutureTense: 'will ' + inf - }; - // add past-participle if it's interesting - // drive -> driven (not drove) - let pastPrt = convert$1(str, toParticiple); - if (pastPrt !== inf && pastPrt !== found.PastTense) { - found.Participle = pastPrt; - } - // put phrasal-verbs back together again - if (particle) { - Object.keys(found).forEach(k => { - found[k] += ' ' + particle; - }); - } - return found - }; - - var conjugate$1 = conjugate; - - // console.log(toPresent.rules.y) - // console.log(convert('buy', toPresent)) - - //sweep-through all suffixes - const suffixLoop$1 = function (str = '', suffixes = []) { - const len = str.length; - let max = len <= 6 ? len - 1 : 6; - for (let i = max; i >= 1; i -= 1) { - let suffix = str.substring(len - i, str.length); - if (suffixes[suffix.length].hasOwnProperty(suffix) === true) { - let pre = str.slice(0, len - i); - let post = suffixes[suffix.length][suffix]; - return pre + post - } - } - return null - }; - var doRules = suffixLoop$1; - - const s = 'ically'; - const ical = new Set([ - 'analyt' + s, //analytical - 'chem' + s,// chemical - 'class' + s, //classical - 'clin' + s, // clinical - 'crit' + s,// critical - 'ecolog' + s,// ecological - 'electr' + s,// electrical - 'empir' + s, // empirical - 'frant' + s, // frantical - 'grammat' + s,// grammatical - 'ident' + s, // identical - 'ideolog' + s, // ideological - 'log' + s, // logical - 'mag' + s, //magical - 'mathemat' + s,// mathematical - 'mechan' + s,// mechanical - 'med' + s,// medical - 'method' + s, // methodical - 'method' + s,// methodical - 'mus' + s, // musical - 'phys' + s, // physical - 'phys' + s,// physical - 'polit' + s,// political - 'pract' + s,// practical - 'rad' + s, //radical - 'satir' + s, // satirical - 'statist' + s, // statistical - 'techn' + s,// technical - 'technolog' + s, // technological - 'theoret' + s,// theoretical - 'typ' + s,// typical - 'vert' + s,// vertical - 'whims' + s,// whimsical - ]); - - const suffixes$3 = [ - 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', - } - ]; - - const noAdj = 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' - ]); - - // exceptions to rules - const exceptions$3 = { - wholly: 'whole', - fully: 'full', - truly: 'true', - gently: 'gentle', - singly: 'single', - customarily: 'customary', - idly: 'idle', - publically: 'public', - quickly: 'fast', - - well: 'good',// -? - }; - - - const toAdjective = function (str) { - if (!str.endsWith('ly')) { - return null - } - // 'electronic' vs 'electronical' - if (ical.has(str)) { - return str.replace(/ically/, 'ical') - } - if (noAdj.has(str)) { - return null - } - if (exceptions$3.hasOwnProperty(str)) { - return exceptions$3[str] - } - return doRules(str, suffixes$3) || str - }; - var advToAdjective = toAdjective; - - // console.log(toAdjective('emphatically')) - // console.log(toAdjective('usually')) - // console.log(toAdjective('mechanically')) - // console.log(toAdjective('vertically')) - - const suffixes$2 = [ - null, - { - y: 'ily' - }, - { - ly: 'ly',//unchanged - ic: 'ically' - }, - { - ial: 'ially', - ual: 'ually', - tle: 'tly', - ble: 'bly', - ple: 'ply', - ary: 'arily', - }, - {}, - {}, - {}, - ]; - - const exceptions$2 = { - cool: 'cooly', - whole: 'wholly', - full: 'fully', - good: 'well', - idle: 'idly', - public: 'publicly', - single: 'singly', - special: 'especially', - }; - - // a lot of adjectives *don't really* have a adverb - // 'roomy' -> 'roomily' - // but here, conjugate what it would be, if it made sense to - const toAdverb = function (str) { - if (exceptions$2.hasOwnProperty(str)) { - return exceptions$2[str] - } - let res = doRules(str, suffixes$2); - if (res) { - return res - } - return str + 'ly' - }; - var adjToAdverb = toAdverb; - // console.log(toAdverb('unsightly')) - - const suffixes$1 = [ - 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',//democratic - 'sing': 'se', - 'iful': 'y',//beautify, merciful - 'ible': 'ibility'//credible - }, - { - 'erate': 'eration' - - }, - { - 'ionate': 'ion' - }, - ]; - - const exceptions$1 = { - 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' - }; - - const dontDo = new Set([ - 'terrible', - 'annoying', - ]); - - // a lot of adjectives *don't really* have a noun-form - // 'broken' -> 'brokeness'? - // 'surreal' -> 'surrealness'? - // but here, conjugate what it would be, if it made sense to - const toNoun = function (str) { - if (exceptions$1.hasOwnProperty(str)) { - return exceptions$1[str] - } - if (dontDo.has(str)) { - return null - } - let res = doRules(str, suffixes$1); - if (res) { - return res - } - return str + 'ness' - }; - var adjToNoun = toNoun; - // console.log(toNoun('clever')) - - const adjToSuperlative = function (adj, model) { - const mod = model.two.models.toSuperlative; - return convert$1(adj, mod) - }; - const adjToComparative = function (adj, model) { - const mod = model.two.models.toComparative; - return convert$1(adj, mod) - }; - const adjFromComparative = function (adj, model) { - const mod = model.two.models.fromComparative; - return convert$1(adj, mod) - }; - const adjFromSuperlative = function (adj, model) { - const mod = model.two.models.fromSuperlative; - return convert$1(adj, mod) - }; - - var transform = { - nounToPlural, nounToSingular, - verbToInfinitive: toInfinitive$7, getTense: getTense$2, - verbConjugate: conjugate$1, - - adjToSuperlative, adjToComparative, adjFromSuperlative, adjFromComparative, - - advToAdjective, adjToAdverb, adjToNoun - }; - - // transformations to make on our lexicon - var fancyThings = { - // add plural forms of singular nouns - Singular: (word, lex, methods, model) => { - let already = model.one.lexicon; - let plural = methods.two.transform.nounToPlural(word, model); - if (!already[plural]) { - lex[plural] = lex[plural] || 'Plural'; - } - }, - - // superlative/ comparative forms for adjectives - Comparable: (word, lex, methods, model) => { - let already = model.one.lexicon; - // fast -> fastest - let sup = methods.two.transform.adjToSuperlative(word, model); - if (!already[sup]) { - lex[sup] = lex[sup] || 'Superlative'; - } - // fast -> faster - let comp = methods.two.transform.adjToComparative(word, model); - if (!already[comp]) { - lex[comp] = lex[comp] || 'Comparative'; - } - // overwrite - lex[word] = 'Adjective'; - }, - - // 'german' -> 'germans' - Demonym: (word, lex, methods, model) => { - let plural = methods.two.transform.nounToPlural(word, model); - lex[plural] = lex[plural] || ['Demonym', 'Plural']; - }, - - // conjugate all forms of these verbs - Infinitive: (word, lex, methods, model) => { - let already = model.one.lexicon; - let all = methods.two.transform.verbConjugate(word, model); - Object.entries(all).forEach(a => { - if (!already[a[1]] && !lex[a[1]]) { - lex[a[1]] = a[0]; - } - }); - }, - - // 'walk up' should conjugate, too - PhrasalVerb: (word, lex, methods, model) => { - let already = model.one.lexicon; - lex[word] = ['PhrasalVerb', 'Infinitive']; - let _multi = model.one._multiCache; - let [inf, rest] = word.split(' '); - // add root verb - if (!already[inf]) { - lex[inf] = lex[inf] || 'Infinitive'; - } - // conjugate it - let all = methods.two.transform.verbConjugate(inf, model); - Object.entries(all).forEach(a => { - // not 'walker up', or 'had taken up' - if (a[0] === 'Actor' || a[1] === '') { - return - } - // add the root verb, alone - if (!lex[a[1]] && !already[a[1]]) { - lex[a[1]] = a[0]; - } - _multi[a[1]] = true; - let str = a[1] + ' ' + rest; - lex[str] = lex[str] || [a[0], 'PhrasalVerb']; - }); - }, - - // expand 'million' - Multiple: (word, lex) => { - lex[word] = ['Multiple', 'Cardinal']; - // 'millionth' - lex[word + 'th'] = ['Multiple', 'Ordinal']; - // 'millionths' - lex[word + 'ths'] = ['Multiple', 'Fraction']; - }, - // expand number-words - Cardinal: (word, lex) => { - lex[word] = ['TextValue', 'Cardinal']; - }, - - // 'millionth' - Ordinal: (word, lex) => { - lex[word] = ['TextValue', 'Ordinal']; - lex[word + 's'] = ['TextValue', 'Fraction']; - }, - }; - - // derive clever things from our lexicon key-value pairs - // this method runs as the pre-tagger plugin gets loaded - const expand$1 = function (words, world) { - const { methods, model } = world; - 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(); - // cache multi-word terms - let split = word.split(/ /); - if (split.length > 1) { - _multi[split[0]] = true; - } - // do any clever-business, by it's tag - if (fancyThings.hasOwnProperty(tag) === true) { - fancyThings[tag](word, lex, methods, model); - } - lex[word] = lex[word] || tag; - }); - // cleanup - delete lex['']; - delete lex[null]; - delete lex[' ']; - return { lex, _multi } - }; - var expandLexicon$2 = expand$1; - - // 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: - 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 - } - // toronto, canada - tuesday, march - if (term.tags.has('Place') || term.tags.has('Date')) { - return false - } - if (terms[i - 1]) { - if (terms[i - 1].tags.has('Date') || maybeDate.has(terms[i - 1].normal)) { - 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 - }; - - // kind-of a dirty sentence chunker - const quickSplit = function (document) { - const splitHere = /[,:;]/; - let arr = []; - document.forEach(terms => { - let start = 0; - terms.forEach((term, i) => { - // does it have a comma/semicolon ? - if (splitHere.test(term.post) && splitOn(terms, i + 1)) { - arr.push(terms.slice(start, i + 1)); - start = i + 1; - } - }); - if (start < terms.length) { - arr.push(terms.slice(start, terms.length)); - } - }); - return arr - }; - - var quickSplit$1 = quickSplit; - - var methods$1 = { - two: { - quickSplit: quickSplit$1, - expandLexicon: expandLexicon$2, - transform, - }, - }; - - // import irregularVerbs from './conjugations.js' - // harvest list of irregulars for any juicy word-data - const expandIrregulars = function (model) { - const { irregularPlurals } = model.two; - const { lexicon } = model.one; - Object.entries(irregularPlurals).forEach(a => { - lexicon[a[0]] = lexicon[a[0]] || 'Singular'; - lexicon[a[1]] = lexicon[a[1]] || 'Plural'; - }); - return model - }; - var expandIrregulars$1 = expandIrregulars; - - const getWords = function (model, left, right) { - return Object.entries(model.exceptions).reduce((h, a) => { - if (left) { - h[a[0]] = left; - } - h[a[1]] = right; - return h - }, {}) - }; - - - const expandModels = function (model) { - let { lexicon } = model.one; - const { toPast, toPresent, toGerund, toSuperlative, toComparative } = model.two.models; - let res = {}; - let words = {}; - // past-tense - words = getWords(toPast, 'Infinitive', 'PastTense'); - Object.assign(res, words); - // present-tense - words = getWords(toPresent, 'Infinitive', 'Verb'); - Object.assign(res, words); - // gerund-form - words = getWords(toGerund, 'Infinitive', 'Gerund'); - Object.assign(res, words); - // superlative - words = getWords(toSuperlative, 'Adjective', 'Superlative'); - Object.assign(res, words); - // comparative - words = getWords(toComparative, 'Adjective', 'Comparative'); - Object.assign(res, words); - - model.one.lexicon = Object.assign(res, lexicon); - - return model - }; - var expandModels$1 = expandModels; - - let tmpModel = { - two: { models } - }; - - // defaults for switches - const switchDefaults = { - // 'amusing' - 'Adj|Gerund': 'Adjective', //+conjugations - // 'standard' - 'Adj|Noun': 'Adjective', - // 'boiled' - 'Adj|Past': 'Adjective', //+conjugations - // 'smooth' - 'Adj|Present': 'Adjective',//+conjugations - // 'box' - 'Noun|Verb': 'Singular', //+conjugations (no-present) - //'singing' - 'Noun|Gerund': 'Gerund', //+conjugations - // 'hope' - 'Person|Noun': 'Noun', - // 'April' - 'Person|Date': 'Month', - // 'rob' - 'Person|Verb': 'Person',//+conjugations - // 'victoria' - 'Person|Place': 'Person', - // 'boxes' - 'Plural|Verb': 'Plural', //(these are already derivative) - }; - - const expandLexicon = function (words, model) { - // do clever tricks to grow the words - const world = { model, methods: methods$1 }; - let { lex, _multi } = methods$1.two.expandLexicon(words, world); - // store multiple-word terms in a cache - Object.assign(model.one.lexicon, lex); - Object.assign(model.one._multiCache, _multi); - return model - }; - - // these words have no singular/plural conjugation - const addUncountables = function (words, model) { - Object.keys(words).forEach(k => { - if (words[k] === 'Uncountable') { - model.two.uncountable[k] = true; - words[k] = 'Uncountable'; - } - }); - return model - }; - - const expandVerb = function (str, words, doPresent) { - let obj = conjugate$1(str, tmpModel); - words[obj.PastTense] = words[obj.PastTense] || 'PastTense'; - words[obj.Gerund] = words[obj.Gerund] || 'Gerund'; - if (doPresent === true) { - // is this plural noun, or present-tense? - words[obj.PresentTense] = words[obj.PresentTense] || 'PresentTense'; - } - }; - - const expandAdjective = function (str, words, model) { - let sup = adjToSuperlative(str, model); - words[sup] = words[sup] || 'Superlative'; - let comp = adjToComparative(str, model); - words[comp] = words[comp] || 'Comparative'; - }; - - // harvest ambiguous words for any conjugations - const expandVariable = function (switchWords, model) { - let words = {}; - const lex = model.one.lexicon; - //add first tag as an assumption for each variable word - Object.keys(switchWords).forEach(w => { - const name = switchWords[w]; - words[w] = switchDefaults[name]; - // conjugate some verbs - if (name === 'Noun|Verb' || name === 'Person|Verb') { - expandVerb(w, lex, false); - } - if (name === 'Adj|Present') { - expandVerb(w, lex, true); - expandAdjective(w, lex, model); - } - if (name === 'Adj|Gerund' || name === 'Noun|Gerund') { - let inf = toInfinitive$7(w, tmpModel, 'Gerund'); - if (!lex[inf]) { - words[inf] = 'Infinitive'; //expand it later - } - } - if (name === 'Adj|Past') { - let inf = toInfinitive$7(w, tmpModel, 'PastTense'); - if (!lex[inf]) { - words[inf] = 'Infinitive'; //expand it later - } - } - }); - // add conjugations - model = expandLexicon(words, model); - return model - }; - - const expand = function (model) { - model = expandLexicon(model.one.lexicon, model); - model = addUncountables(model.one.lexicon, model); - model = expandVariable(model.two.switches, model); - model = expandModels$1(model); - model = expandIrregulars$1(model); - return model - }; - var expandLexicon$1 = expand; - - let model$1 = { - one: { - _multiCache: {}, - lexicon, - }, - two: { - irregularPlurals, - models, - - suffixPatterns, - prefixPatterns, - endsWith, - neighbours: neighbours$2, - - regexNormal, - regexText, - regexNumbers, - - switches, - clues: clues$1, - - uncountable: {}, - - orgWords: orgWords$1, - }, - - }; - model$1 = expandLexicon$1(model$1); - var model$2 = model$1; - - // console.log(model.one.lexicon.see) - - const prefix$1 = /^(under|over|mis|re|un|dis|semi)-?/; - - const tagSwitch = function (terms, i, model) { - const switches = model.two.switches; - let term = terms[i]; - if (switches.hasOwnProperty(term.normal)) { - term.switch = switches[term.normal]; - return - } - // support 'restrike' -> 'strike' - if (prefix$1.test(term.normal)) { - let stem = term.normal.replace(prefix$1, ''); - if (stem.length > 3 && switches.hasOwnProperty(stem)) { - term.switch = switches[stem]; - } - } - }; - var tagSwitch$1 = tagSwitch; - - // verbose-mode tagger debuging - const log = (term, 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 + ']'; - 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(22)} ${i(reason)}`); // eslint-disable-line - }; - - // a faster version than the user-facing one in ./methods - const setTag = function (term, tag, reason) { - if (!tag || tag.length === 0) { - return - } - // some logging for debugging - const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; - if (env && env.DEBUG_TAGS) { - log(term, tag, reason); - } - term.tags = term.tags || new Set(); - if (typeof tag === 'string') { - term.tags.add(tag); - } else { - tag.forEach(tg => term.tags.add(tg)); - } - }; - - var fastTag = setTag; - - //similar to plural/singularize rules, but not the same - const isPlural$4 = { - e: [ - 'mice', - 'louse', - 'antennae', - 'formulae', - 'nebulae', - 'vertebrae', - 'vitae', - ], - i: [ - 'tia', - 'octopi', - 'viri', - 'radii', - 'nuclei', - 'fungi', - 'cacti', - 'stimuli', - ], - n: [ - 'men', - ] - }; - // plural words as exceptions to suffix-rules - const exceptions = new Set([ - 'formulas', - 'koalas', - 'israelis', - 'menus', - ]); - - const notPlural$1 = [ - 'bus', - 'mas',//christmas - 'was', - 'las', - 'ias',//alias - 'xas', - 'vas', - 'cis',//probocis - 'lis', - 'nis',//tennis - 'ois', - 'ris', - 'sis',//thesis - 'tis',//mantis, testis - 'xis', - 'aus', - 'cus', - 'eus',//nucleus - 'fus',//doofus - 'gus',//fungus - 'ius',//radius - 'lus',//stimulus - 'nus', - 'ous', - 'pus',//octopus - 'rus',//virus - 'sus',//census - 'tus',//status,cactus - 'xus', - '\'s', - 'ss', - ]; - - const looksPlural = function (str) { - // not long enough to be plural - if (!str || str.length <= 3) { - return false - } - // 'menus' etc - if (exceptions.has(str)) { - return true - } - let end = str[str.length - 1]; - // look at 'firemen' - if (isPlural$4.hasOwnProperty(end)) { - return isPlural$4[end].find(suff => str.endsWith(suff)) - } - if (end !== 's') { - return false - } - // look for 'virus' - if (notPlural$1.find(suff => str.endsWith(suff))) { - return false - } - // ends with an s, seems plural i guess. - return true - }; - var looksPlural$1 = looksPlural; - - // tags that are neither plural or singular - const uncountable = [ - 'Acronym', - 'Abbreviation', - 'ProperNoun', - 'Uncountable', - 'Possessive', - 'Pronoun', - 'Activity', - 'Honorific', - ]; - // try to guess if each noun is a plural/singular - const setPluralSingular = function (term) { - if (!term.tags.has('Noun') || term.tags.has('Plural') || term.tags.has('Singular') || term.tags.has('Date')) { - return - } - if (uncountable.find(tag => term.tags.has(tag))) { - return - } - if (looksPlural$1(term.normal)) { - fastTag(term, 'Plural', '3-plural-guess'); - } else { - fastTag(term, 'Singular', '3-singular-guess'); - } - }; - - // try to guess the tense of a naked verb - const setTense = function (term) { - let tags = term.tags; - if (tags.has('Verb') && tags.size === 1) { - let guess = getTense$2(term.normal); - if (guess) { - fastTag(term, guess, '3-verb-tense-guess'); - } - } - }; - - //add deduced parent tags to our terms - const fillTags = function (terms, i, model) { - let term = terms[i]; - //there is probably just one tag, but we'll allow more - let tags = Array.from(term.tags); - 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]}`); - } - } - // turn 'Noun' into Plural/Singular - setPluralSingular(term); - // turn 'Verb' into Present/PastTense - setTense(term); - }; - var fillTags$1 = fillTags; - - const titleCase$1 = /^\p{Lu}[\p{Ll}'’]/u; - const hasNumber = /[0-9]/; - - const notProper = ['Date', 'Month', 'WeekDay', 'Unit']; - - // https://stackoverflow.com/a/267405/168877 - const romanNumeral = /^[IVXLCDM]{2,}$/; - const romanNumValid = /^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/; - const nope = { - li: true, - dc: true, - md: true, - dm: true, - ml: true, - }; - - - // if it's a unknown titlecase word, it's a propernoun - const checkCase = function (terms, i, model) { - let term = terms[i]; - // assume terms are already indexed - term.index = term.index || [0, 0]; - let index = term.index[1]; - let str = term.text || ''; //need case info - // titlecase and not first word of sentence - if (index !== 0 && titleCase$1.test(str) === true && hasNumber.test(str) === false) { - if (notProper.find(tag => term.tags.has(tag))) { - return null - } - fillTags$1(terms, i, model); - if (!term.tags.has('Noun')) { - term.tags.clear(); - } - fastTag(term, 'ProperNoun', '2-titlecase'); - return true - } - //roman numberals - XVII - if (str.length >= 2 && romanNumeral.test(str) && romanNumValid.test(str) && !nope[term.normal]) { - fastTag(term, 'RomanNumeral', '2-xvii'); - return true - } - - return null - }; - var checkCase$1 = checkCase; - - //sweep-through all suffixes - const suffixLoop = function (str = '', suffixes = []) { - const len = str.length; - let max = 7; - if (len <= max) { - max = len - 1; - } - for (let i = max; i > 1; i -= 1) { - let suffix = str.substring(len - i, len); - if (suffixes[suffix.length].hasOwnProperty(suffix) === true) { - // console.log(suffix) - let tag = suffixes[suffix.length][suffix]; - return tag - } - } - return null - }; - - // decide tag from the ending of the word - const tagBySuffix = function (terms, i, model) { - let term = terms[i]; - if (term.tags.size === 0) { - let tag = suffixLoop(term.normal, model.two.suffixPatterns); - if (tag !== null) { - fastTag(term, tag, '2-suffix'); - term.confidence = 0.7; - return true - } - // try implicit form of word, too - if (term.implicit) { - tag = suffixLoop(term.implicit, model.two.suffixPatterns); - if (tag !== null) { - fastTag(term, tag, '2-implicit-suffix'); - term.confidence = 0.7; - return true - } - } - // Infinitive suffix + 's' can be PresentTense - // if (term.normal[term.normal.length - 1] === 's') { - // let str = term.normal.replace(/s$/, '') - // if (suffixLoop(str, model.two.suffixPatterns) === 'Infinitive') { - // console.log(str) - // fastTag(term, 'PresentTense', '2-implied-present') - // term.confidence = 0.5 - // return true - // } - // } - } - return null - }; - var checkSuffix = tagBySuffix; - - const hasApostrophe = /['‘’‛‵′`´]/; - - // normal regexes - const doRegs = function (str, regs) { - for (let i = 0; i < regs.length; i += 1) { - if (regs[i][0].test(str) === true) { - return regs[i] - } - } - return null - }; - // suffix-regexes, indexed by last-character - const doEndsWith = function (str = '', byEnd) { - let char = str[str.length - 1]; - if (byEnd.hasOwnProperty(char) === true) { - let regs = byEnd[char] || []; - for (let r = 0; r < regs.length; r += 1) { - if (regs[r][0].test(str) === true) { - return regs[r] - } - } - } - return null - }; - - const checkRegex = function (terms, i, model, world) { - const setTag = world.methods.one.setTag; - let { regexText, regexNormal, regexNumbers, endsWith } = model.two; - let term = terms[i]; - let normal = term.machine || term.normal; - let text = term.text; - // keep dangling apostrophe? - if (hasApostrophe.test(term.post) && !hasApostrophe.test(term.pre)) { - text += term.post.trim(); - } - let arr = doRegs(text, regexText) || doRegs(normal, regexNormal); - // hide a bunch of number regexes behind this one - if (!arr && /[0-9]/.test(normal)) { - arr = doRegs(normal, regexNumbers); - } - // only run endsWith if we're desperate - if (!arr && term.tags.size === 0) { - arr = doEndsWith(normal, endsWith); - } - if (arr) { - setTag([term], arr[1], world, null, `2-regex-'${arr[2] || arr[0]}'`); - term.confidence = 0.6; - return true - } - return null - }; - var checkRegex$1 = checkRegex; - - // const prefixes = /^(anti|re|un|non|extra|inter|intra|over)([a-z-]{3})/ - - //sweep-through all prefixes - const prefixLoop = function (str = '', prefixes = []) { - const len = str.length; - let max = 7; - if (max > len - 3) { - max = len - 3; - } - for (let i = max; i > 2; i -= 1) { - let prefix = str.substring(0, i); - if (prefixes[prefix.length].hasOwnProperty(prefix) === true) { - let tag = prefixes[prefix.length][prefix]; - return tag - } - } - return null - }; - - // give 'overwork' the same tag as 'work' - const checkPrefix = function (terms, i, model) { - let term = terms[i]; - if (term.tags.size === 0) { - let tag = prefixLoop(term.normal, model.two.prefixPatterns); - if (tag !== null) { - // console.log(term.normal, '->', tag) - fastTag(term, tag, '2-prefix'); - term.confidence = 0.5; - return true - } - } - return null - }; - var checkPrefix$1 = checkPrefix; - - const min = 1400; - const max = 2100; - - 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 - } - 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') || term.tags.has('Year')) { - return true - } - // 1999 Film Festival - if (term.tags.has('ProperNoun')) { - return true - } - return false - }; - - const seemsOkay = function (term) { - if (!term) { - return false - } - 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]; - if (term.tags.has('NumericValue') && term.tags.has('Cardinal') && term.normal.length === 4) { - let num = Number(term.normal); - // number between 1400 and 2100 - if (num && !isNaN(num)) { - if (num > min && num < max) { - 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 >= 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') - } - } - } - } - } - } - return null - }; - - var checkYear = tagYear; - - const oneLetterAcronym = /^[A-Z]('s|,)?$/; - const isUpperCase = /^[A-Z-]+$/; - const periodAcronym = /([A-Z]\.)+[A-Z]?,?$/; - const noPeriodAcronym = /[A-Z]{2,}('s|,)?$/; - const lowerCaseAcronym = /([a-z]\.)+[a-z]\.?$/; - - const oneLetterWord = { - I: true, - A: true, - }; - // just uppercase acronyms, no periods - 'UNOCHA' - const isNoPeriodAcronym = function (term, model) { - let str = term.text; - // ensure it's all upper-case - if (isUpperCase.test(str) === false) { - return false - } - // long capitalized words are not usually either - if (str.length > 5) { - return false - } - // 'I' is not a acronym - if (oneLetterWord.hasOwnProperty(str)) { - return false - } - // known-words, like 'PIZZA' is not an acronym. - if (model.one.lexicon.hasOwnProperty(term.normal)) { - return false - } - //like N.D.A - if (periodAcronym.test(str) === true) { - return true - } - //like c.e.o - if (lowerCaseAcronym.test(str) === true) { - return true - } - //like 'F.' - if (oneLetterAcronym.test(str) === true) { - return true - } - //like NDA - if (noPeriodAcronym.test(str) === true) { - return true - } - return false - }; - - const isAcronym = function (terms, i, model) { - let term = terms[i]; - //these are not acronyms - if (term.tags.has('RomanNumeral') || term.tags.has('Acronym')) { - return null - } - //non-period ones are harder - if (isNoPeriodAcronym(term, model)) { - term.tags.clear(); - fastTag(term, ['Acronym', 'Noun'], '3-no-period-acronym'); - return true - } - // one-letter acronyms - if (!oneLetterWord.hasOwnProperty(term.text) && oneLetterAcronym.test(term.text)) { - term.tags.clear(); - fastTag(term, ['Acronym', 'Noun'], '3-one-letter-acronym'); - return true - } - //if it's a very-short organization? - if (term.tags.has('Organization') && term.text.length <= 3) { - fastTag(term, 'Acronym', '3-org-acronym'); - return true - } - // upper-case org, like UNESCO - if (term.tags.has('Organization') && isUpperCase.test(term.text) && term.text.length <= 6) { - fastTag(term, 'Acronym', '3-titlecase-acronym'); - return true - } - return null - }; - var checkAcronym = isAcronym; - - const lookAtWord = function (term, words) { - if (!term) { - return null - } - // look at prev word <- - let found = words.find(a => term.normal === a[0]); - if (found) { - return found[1] - } - return null - }; - - const lookAtTag = function (term, tags) { - if (!term) { - return null - } - let found = tags.find(a => term.tags.has(a[0])); - if (found) { - return found[1] - } - return null - }; - - // look at neighbours for hints on unknown words - const neighbours = function (terms, i, model) { - const { leftTags, leftWords, rightWords, rightTags } = model.two.neighbours; - let term = terms[i]; - if (term.tags.size === 0) { - let tag = null; - // look left <- - tag = tag || lookAtWord(terms[i - 1], leftWords); - // look right -> - tag = tag || lookAtWord(terms[i + 1], rightWords); - // look left <- - tag = tag || lookAtTag(terms[i - 1], leftTags); - // look right -> - tag = tag || lookAtTag(terms[i + 1], rightTags); - if (tag) { - fastTag(term, tag, '3-[neighbour]'); - fillTags$1(terms, i, model); - terms[i].confidence = 0.2; - return true - } - } - return null - }; - var neighbours$1 = neighbours; - - const isTitleCase = (str) => /^\p{Lu}[\p{Ll}'’]/u.test(str); - - const isOrg = function (term, i) { - if (!term) { - return false - } - if (term.tags.has('FirstName') || term.tags.has('Place')) { - return false - } - if (term.tags.has('ProperNoun') || term.tags.has('Organization') || term.tags.has('Acronym')) { - return true - } - // allow anything titlecased to be an org - if (isTitleCase(term.text)) { - // only tag a titlecased first-word, if it checks-out - if (i === 0) { - return term.tags.has('Singular') - } - return true - } - return false - }; - - const tagOrgs = function (terms, i, world) { - const orgWords = world.model.two.orgWords; - const setTag = world.methods.one.setTag; - let term = terms[i]; - let str = term.machine || term.normal; - if (orgWords[str] === true && isOrg(terms[i - 1])) { - setTag([terms[i]], 'Organization', world, null, '3-[org-word]'); - // loop backwards, tag organization-like things - for (let t = i; t >= 0; t -= 1) { - if (isOrg(terms[t], t)) { - setTag([terms[t]], 'Organization', world, null, '3-[org-word]'); - } else { - break - } - } - } - return null - }; - var orgWords = tagOrgs; - - const nounFallback = function (terms, i, model) { - if (terms[i].tags.size === 0) { - fastTag(terms[i], 'Noun', '3-[fallback]'); - // try to give it singluar/plural tags, too - fillTags$1(terms, i, model); - terms[i].confidence = 0.1; - } - }; - var nounFallback$1 = nounFallback; - - const isCapital = (terms, i) => { - if (terms[i].tags.has('ProperNoun')) {// 'Comfort Inn' - return 'Noun' - } - return null - }; - const isAloneVerb = (terms, i, tag) => { - if (i === 0 && !terms[1]) {// 'Help' - return tag - } - return null - }; - - const adhoc = { - 'Adj|Gerund': (terms, i) => { - return isCapital(terms, i) - }, - 'Adj|Noun': (terms, i) => { - return isCapital(terms, i) - }, - 'Adj|Past': (terms, i) => { - return isCapital(terms, i) - }, - 'Adj|Present': (terms, i) => { - return isCapital(terms, i) - }, - 'Noun|Gerund': (terms, i) => { - return isCapital(terms, i) - }, - 'Noun|Verb': (terms, i) => { - return isCapital(terms, i) || isAloneVerb(terms, i, 'Infinitive') - }, - 'Plural|Verb': (terms, i) => { - return isCapital(terms, i) || isAloneVerb(terms, i, 'PresentTense') - }, - 'Person|Noun': (terms, i) => { - return isCapital(terms, i) - }, - 'Person|Verb': (terms, i) => { - return i !== 0 && isCapital(terms, i) - }, - }; - var adhoc$1 = adhoc; - - const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; // eslint-disable-line - const prefix = /^(under|over|mis|re|un|dis|semi)-?/; - - const checkWord = (term, obj) => { - if (!term || !obj) { - return null - } - let str = term.normal || term.implicit; - const found = obj[str]; - if (found && env.DEBUG_TAGS) { - console.log(`\n \x1b[2m\x1b[3m ↓ - '${str}' \x1b[0m`);//eslint-disable-line - } - return found - }; - - const checkTag = (term, obj = {}, tagSet) => { - if (!term || !obj) { - return null - } - // rough sort, so 'Noun' is after ProperNoun, etc - let tags = Array.from(term.tags).sort((a, b) => { - let numA = tagSet[a] ? tagSet[a].parents.length : 0; - let numB = tagSet[b] ? tagSet[b].parents.length : 0; - return numA > numB ? -1 : 1 - }); - 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 - } - found = obj[found]; - return found - }; - - const pickTag = function (terms, i, clues, model) { - if (!clues) { - return null - } - const tagSet = model.one.tagSet; - // look -> right word, first - let tag = checkWord(terms[i + 1], clues.afterWords); - // look <- left word, second - tag = tag || checkWord(terms[i - 1], clues.beforeWords); - // look <- left tag - tag = tag || checkTag(terms[i - 1], clues.beforeTags, tagSet); - // look -> right tag - tag = tag || checkTag(terms[i + 1], clues.afterTags, tagSet); - // console.log(clues) - return tag - }; - - // words like 'bob' that can change between two tags - const doSwitches = function (terms, i, world) { - const model = world.model; - const setTag = world.methods.one.setTag; - const { switches, clues } = model.two; - const term = terms[i]; - let str = term.normal || term.implicit || ''; - // support prefixes for switching words - if (prefix.test(str) && !switches[str]) { - str = str.replace(prefix, ''); // could use some guards, here - } - if (term.switch) { - let form = term.switch; - // skip propernouns, acronyms, etc - if (term.tags.has('Acronym') || term.tags.has('PhrasalVerb')) { - return - } - let tag = pickTag(terms, i, clues[form], model); - // lean-harder on some variable forms - if (adhoc$1[form]) { - tag = adhoc$1[form](terms, i) || tag; - } - // did we find anything? - if (tag) { - // setTag(term, tag, model) - setTag([term], tag, world, null, `3-[variable] (${form})`); - } else if (env.DEBUG_TAGS) { - console.log(`\n -> X - '${str}' : ${form} `);//eslint-disable-line - } - } - }; - var variables = doSwitches; - - // 'out lived' is a verb-phrase - // 'over booked' is too - // 'macro-nutrient', too - const doPrefix = function (terms, i, model) { - let nextTerm = terms[i + 1]; - if (!nextTerm) { - return - } - let { prefixes } = model.one; - let term = terms[i]; - - // word like 'over' - if (prefixes[term.normal] === true) { - // 'over cooked' - if (nextTerm.tags.has('Verb')) { - fastTag(term, 'Verb', '3-[prefix]'); - fastTag(term, 'Prefix', '3-[prefix]'); - } - // 'pseudo clean' - if (nextTerm.tags.has('Adjective')) { - fastTag(term, 'Adjective', '3-[prefix]'); - fastTag(term, 'Prefix', '3-[prefix]'); - } - } - - }; - var checkHyphen = doPrefix; - - const second = { - tagSwitch: tagSwitch$1, - checkSuffix, - checkRegex: checkRegex$1, - checkCase: checkCase$1, - checkPrefix: checkPrefix$1, - checkHyphen, - checkYear, - }; - - const third = { - checkAcronym, - neighbours: neighbours$1, - orgWords, - nounFallback: nounFallback$1, - variables, - }; - - // - // these methods don't care about word-neighbours - const secondPass = function (terms, model, world) { - for (let i = 0; i < terms.length; i += 1) { - // mark Noun|Verb on term metadata - second.tagSwitch(terms, i, model); - // is it titlecased? - second.checkCase(terms, i, model); - // look at word ending - second.checkSuffix(terms, i, model); - // try look-like rules - second.checkRegex(terms, i, model, world); - // check for recognized prefix, like 'micro-' - second.checkPrefix(terms, i, model); - // turn '1993' into a year - second.checkYear(terms, i, model); - } - }; - - const thirdPass = function (terms, model, world) { - for (let i = 0; i < terms.length; i += 1) { - // let these tags get layered - let found = third.checkAcronym(terms, i, model); - // deduce parent tags - fillTags$1(terms, i, model); - // look left+right for hints - found = found || third.neighbours(terms, i, model); - // ¯\_(ツ)_/¯ - found nothing - found = found || third.nounFallback(terms, i, model); - } - for (let i = 0; i < terms.length; i += 1) { - // Johnson LLC - third.orgWords(terms, i, world); - // support 'out-lived' - second.checkHyphen(terms, i, model); - // verb-noun disambiguation, etc - third.variables(terms, i, world); - } - }; - - const preTagger = function (view) { - const { methods, model, world } = view; - // assign known-words - // view.compute('lexicon') - // roughly split sentences up by clause - let document = methods.two.quickSplit(view.docs); - // start with all terms - for (let n = 0; n < document.length; n += 1) { - let terms = document[n]; - // firstPass(terms, model) - // guess by the letters - secondPass(terms, model, world); - // guess by the neighbours - thirdPass(terms, model, world); - } - // leave a nice cache for the next people - view.compute('cache'); - return document - }; - - var preTagger$1 = preTagger; - - const toRoot$1 = { - // 'spencer's' -> 'spencer' - 'Possessive': (term) => { - let str = term.machine || term.normal || term.text; - str = str.replace(/'s$/, ''); - return str - }, - // 'drinks' -> 'drink' - 'Plural': (term, world) => { - let str = term.machine || term.normal || term.text; - return world.methods.two.transform.nounToSingular(str, world.model) - }, - // '' - 'Copula': () => { - return 'is' - }, - // 'walked' -> 'walk' - 'PastTense': (term, world) => { - let str = term.machine || term.normal || term.text; - return world.methods.two.transform.verbToInfinitive(str, world.model, 'PastTense') - }, - // 'walking' -> 'walk' - 'Gerund': (term, world) => { - let str = term.machine || term.normal || term.text; - return world.methods.two.transform.verbToInfinitive(str, world.model, 'Gerund') - }, - // 'walks' -> 'walk' - 'PresentTense': (term, world) => { - let str = term.machine || term.normal || term.text; - if (term.tags.has('Infinitive')) { - return str - } - return world.methods.two.transform.verbToInfinitive(str, world.model, 'PresentTense') - }, - // 'quieter' -> 'quiet' - 'Comparative': (term, world) => { - let str = term.machine || term.normal || term.text; - return world.methods.two.transform.adjFromComparative(str, world.model) - }, - // 'quietest' -> 'quiet' - 'Superlative': (term, world) => { - let str = term.machine || term.normal || term.text; - return world.methods.two.transform.adjFromSuperlative(str, world.model) - }, - // 'suddenly' -> 'sudden' - 'Adverb': (term, world) => { - const toAdj = world.methods.two.transform.advToAdjective; - let str = term.machine || term.normal || term.text; - return toAdj(str) - }, - }; - - const getRoot$2 = function (view) { - const world = view.world; - const keys = Object.keys(toRoot$1); - view.docs.forEach(terms => { - for (let i = 0; i < terms.length; i += 1) { - const term = terms[i]; - for (let k = 0; k < keys.length; k += 1) { - if (term.tags.has(keys[k])) { - const fn = toRoot$1[keys[k]]; - let root = fn(term, world); - if (term.normal !== root) { - term.root = root; - } - break - } - } - } - }); - }; - var root = getRoot$2; - - // rough connection between compromise tagset and Penn Treebank - // https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html - - const mapping$1 = { - // adverbs - // 'Comparative': 'RBR', - // 'Superlative': 'RBS', - 'Adverb': 'RB', - - // adjectives - 'Comparative': 'JJR', - 'Superlative': 'JJS', - 'Adjective': 'JJ', - 'TO': 'Conjunction', - - // verbs - 'Modal': 'MD', - 'Auxiliary': 'MD', - 'Gerund': 'VBG', //throwing - 'PastTense': 'VBD', //threw - 'Participle': 'VBN', //thrown - 'PresentTense': 'VBZ', //throws - 'Infinitive': 'VB', //throw - 'Particle': 'RP', //phrasal particle - 'Verb': 'VB', // throw - - // pronouns - 'Pronoun': 'PRP', - - // misc - 'Cardinal': 'CD', - 'Conjunction': 'CC', - 'Determiner': 'DT', - 'Preposition': 'IN', - // 'Determiner': 'WDT', - // 'Expression': 'FW', - 'QuestionWord': 'WP', - 'Expression': 'UH', - - //nouns - 'Possessive': 'POS', - 'ProperNoun': 'NNP', - 'Person': 'NNP', - 'Place': 'NNP', - 'Organization': 'NNP', - 'Singular': 'NNP', - 'Plural': 'NNS', - 'Noun': 'NN', - - // 'Noun':'EX', //'there' - // 'Adverb':'WRB', - // 'Noun':'PDT', //predeterminer - // 'Noun':'SYM', //symbol - // 'Noun':'NFP', // - - // WDT Wh-determiner - // WP Wh-pronoun - // WP$ Possessive wh-pronoun - // WRB Wh-adverb - }; - - const toPenn = function (term) { - // try some ad-hoc ones - if (term.tags.has('ProperNoun') && term.tags.has('Plural')) { - return 'NNPS' - } - if (term.tags.has('Possessive') && term.tags.has('Pronoun')) { - return 'PRP$' - } - if (term.normal === 'there') { - return 'EX' - } - if (term.normal === 'to') { - return 'TO' - } - // run through an ordered list of tags - let arr = term.tagRank || []; - for (let i = 0; i < arr.length; i += 1) { - if (mapping$1.hasOwnProperty(arr[i])) { - return mapping$1[arr[i]] - } - } - return null - }; - - const pennTag = function (view) { - view.compute('tagRank'); - view.docs.forEach(terms => { - terms.forEach(term => { - term.penn = toPenn(term); - }); - }); - }; - var penn = pennTag; - - var compute$3 = { preTagger: preTagger$1, root, penn }; - - const entity = ['Person', 'Place', 'Organization']; - - var nouns$1 = { - Noun: { - not: ['Verb', 'Adjective', 'Adverb', 'Value', 'Determiner'], - }, - Singular: { - is: 'Noun', - not: ['Plural', 'Uncountable'], - }, - // 'Canada' - ProperNoun: { - is: 'Noun', - }, - Person: { - is: 'Singular', - also: ['ProperNoun'], - not: ['Place', 'Organization', 'Date'], - }, - FirstName: { - is: 'Person', - }, - MaleName: { - is: 'FirstName', - not: ['FemaleName', 'LastName'], - }, - FemaleName: { - is: 'FirstName', - not: ['MaleName', 'LastName'], - }, - LastName: { - is: 'Person', - not: ['FirstName'], - }, - // 'dr.' - Honorific: { - is: 'Noun', - not: ['FirstName', 'LastName', 'Value'], - }, - Place: { - is: 'Singular', - not: ['Person', 'Organization'], - }, - Country: { - is: 'Place', - also: ['ProperNoun'], - not: ['City'], - }, - City: { - is: 'Place', - also: ['ProperNoun'], - not: ['Country'], - }, - // 'california' - Region: { - is: 'Place', - also: ['ProperNoun'], - }, - Address: { - // is: 'Place', - }, - Organization: { - is: 'ProperNoun', - not: ['Person', 'Place'], - }, - SportsTeam: { - is: 'Organization', - }, - School: { - is: 'Organization', - }, - Company: { - is: 'Organization', - }, - Plural: { - is: 'Noun', - not: ['Singular', 'Uncountable'], - }, - // 'gravity' - Uncountable: { - is: 'Noun', - }, - // 'it' - Pronoun: { - is: 'Noun', - not: entity, - }, - // 'swimmer' - Actor: { - is: 'Noun', - not: entity, - }, - // walking - Activity: { - is: 'Noun', - not: ['Person', 'Place'], - }, - // kilometres - Unit: { - is: 'Noun', - not: entity, - }, - // canadian - Demonym: { - is: 'Noun', - also: ['ProperNoun'], - not: entity, - }, - // [spencer's] hat - Possessive: { - is: 'Noun', - }, - // 'yourself' - Reflexive: { - is: 'Pronoun', - }, - }; - - var verbs$2 = { - Verb: { - not: ['Noun', 'Adjective', 'Adverb', 'Value', 'Expression'], - }, - // 'he [walks]' - PresentTense: { - is: 'Verb', - not: ['PastTense'], - }, - // 'will [walk]' - Infinitive: { - is: 'PresentTense', - not: ['Gerund'], - }, - // '[walk] now!' - Imperative: { - is: 'Infinitive', - }, - // walking - Gerund: { - is: 'PresentTense', - not: ['Copula'], - }, - // walked - PastTense: { - is: 'Verb', - not: ['PresentTense', 'Gerund'], - }, - // is/was - Copula: { - is: 'Verb', - }, - // '[could] walk' - Modal: { - is: 'Verb', - not: ['Infinitive'], - }, - // 'awaken' - Participle: { - is: 'PastTense', - }, - // '[will have had] walked' - Auxiliary: { - is: 'Verb', - not: ['PastTense', 'PresentTense', 'Gerund', 'Conjunction'], - }, - // 'walk out' - PhrasalVerb: { - is: 'Verb', - }, - // 'walk [out]' - Particle: { - is: 'PhrasalVerb', - not: ['PastTense', 'PresentTense', 'Copula', 'Gerund'], - }, - }; - - var values = { - Value: { - not: ['Verb', 'Adjective', 'Adverb'], - }, - Ordinal: { - is: 'Value', - not: ['Cardinal'], - }, - Cardinal: { - is: 'Value', - not: ['Ordinal'], - }, - Fraction: { - is: 'Value', - not: ['Noun'], - }, - Multiple: { - is: 'TextValue', - }, - RomanNumeral: { - is: 'Cardinal', - not: ['TextValue'], - }, - TextValue: { - is: 'Value', - not: ['NumericValue'], - }, - NumericValue: { - is: 'Value', - not: ['TextValue'], - }, - Money: { - is: 'Cardinal', - }, - Percent: { - is: 'Value', - }, - }; - - var dates$1 = { - Date: { - not: ['Verb', 'Adverb', 'Adjective'], - }, - Month: { - is: 'Singular', - also: ['Date'], - not: ['Year', 'WeekDay', 'Time'], - }, - WeekDay: { - is: 'Noun', - also: ['Date'], - }, - Year: { - is: 'Date', - not: ['RomanNumeral'], - }, - FinancialQuarter: { - is: 'Date', - not: 'Fraction', - }, - // 'easter' - Holiday: { - is: 'Date', - also: ['Noun'], - }, - // 'summer' - Season: { - is: 'Date', - }, - Timezone: { - is: 'Noun', - also: ['Date'], - not: ['ProperNoun'], - }, - Time: { - is: 'Date', - not: ['AtMention'], - }, - // 'months' - Duration: { - is: 'Date', - also: ['Noun'], - }, - }; - - const anything = ['Noun', 'Verb', 'Adjective', 'Adverb', 'Value', 'QuestionWord']; - - var misc$2 = { - Adjective: { - not: ['Noun', 'Verb', 'Adverb', 'Value'], - }, - Comparable: { - is: 'Adjective', - }, - Comparative: { - is: 'Adjective', - }, - Superlative: { - is: 'Adjective', - not: ['Comparative'], - }, - NumberRange: {}, - Adverb: { - not: ['Noun', 'Verb', 'Adjective', 'Value'], - }, - - Determiner: { - not: ['Noun', 'Verb', 'Adjective', 'Adverb', 'QuestionWord', 'Conjunction'], //allow 'a' to be a Determiner/Value - }, - Conjunction: { - not: anything, - }, - Preposition: { - not: ['Noun', 'Verb', 'Adjective', 'Adverb', 'QuestionWord', 'Determiner'], - }, - QuestionWord: { - not: ['Determiner'], - }, - Currency: { - is: 'Noun', - }, - Expression: { - not: ['Noun', 'Adjective', 'Verb', 'Adverb'], - }, - Abbreviation: {}, - Url: { - not: ['HashTag', 'PhoneNumber', 'Verb', 'Adjective', 'Value', 'AtMention', 'Email'], - }, - PhoneNumber: { - not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention', 'Email'], - }, - HashTag: {}, - AtMention: { - is: 'Noun', - not: ['HashTag', 'Email'], - }, - Emoji: { - not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention'], - }, - Emoticon: { - not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention'], - }, - Email: { - not: ['HashTag', 'Verb', 'Adjective', 'Value', 'AtMention'], - }, - Acronym: { - not: ['Plural', 'RomanNumeral'], - }, - Negative: { - not: ['Noun', 'Adjective', 'Value', 'Expression'], - }, - Condition: { - not: ['Verb', 'Adjective', 'Noun', 'Value'], - } - }; - - let allTags = Object.assign({}, nouns$1, verbs$2, values, dates$1, misc$2); - // const tagSet = compute(allTags) - var tags = allTags; - - var preTag = { - compute: compute$3, - methods: methods$1, - model: model$2, - tags, - hooks: ['preTagger'], - }; - - const postPunct = /[,)"';:\-–—.…]/; - - const setContraction = function (m, suffix) { - if (!m.found) { - return - } - let terms = m.termList(); - //avoid any problematic punctuation - for (let i = 0; i < terms.length - 1; i++) { - const t = terms[i]; - if (postPunct.test(t.post)) { - return - } - } - // set first word as full text - terms[0].implicit = terms[0].normal; - terms[0].text += suffix; - terms[0].normal += suffix; - // clean-up the others - terms.slice(1).forEach(t => { - t.implicit = t.normal; - t.text = ''; - t.normal = ''; - }); - for (let i = 0; i < terms.length - 1; i++) { - terms[i].post = terms[i].post.replace(/ /, ''); - } - }; - - /** turn 'i am' into i'm */ - const contract = function () { - let doc = this.not('@hasContraction'); - // we are -> we're - let m = doc.match('(we|they|you) are'); - setContraction(m, `'re`); - // they will -> they'll - m = doc.match('(he|she|they|it|we|you) will'); - setContraction(m, `'ll`); - // she is -> she's - m = doc.match('(he|she|they|it|we) is'); - setContraction(m, `'s`); - // spencer is -> spencer's - m = doc.match('#Person is'); - setContraction(m, `'s`); - // spencer would -> spencer'd - m = doc.match('#Person would'); - setContraction(m, `'d`); - // would not -> wouldn't - m = doc.match('(is|was|had|would|should|could|do|does|have|has|can) not'); - setContraction(m, `n't`); - // i have -> i've - m = doc.match('(i|we|they) have'); - setContraction(m, `'ve`); - // would have -> would've - m = doc.match('(would|should|could) have'); - setContraction(m, `'ve`); - // i am -> i'm - m = doc.match('i am'); - setContraction(m, `'m`); - // going to -> gonna - m = doc.match('going to'); - return this - }; - var contract$1 = contract; - - const titleCase = /^\p{Lu}[\p{Ll}'’]/u; //upercase, then lowercase - - const toTitleCase = function (str = '') { - str = str.replace(/^ *[a-z\u00C0-\u00FF]/, x => x.toUpperCase()); //TODO: support unicode - return str - }; - - const api$l = function (View) { - /** */ - class Contractions extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Contraction'; - } - /** i've -> 'i have' */ - expand() { - this.docs.forEach(terms => { - let isTitleCase = titleCase.test(terms[0].text); - terms.forEach((t, i) => { - t.text = t.implicit; - delete t.implicit; - //add whitespace - if (i < terms.length - 1 && t.post === '') { - t.post += ' '; - } - // flag it as dirty - t.dirty = true; - }); - // make the first word title-case? - if (isTitleCase) { - terms[0].text = toTitleCase(terms[0].text); - } - }); - this.compute('normal'); //re-set normalized text - return this - } - } - // add fn to View - View.prototype.contractions = function () { - let m = this.match('@hasContraction+'); - return new Contractions(this.document, m.pointer) - }; - View.prototype.contract = contract$1; - }; - - var api$m = api$l; - - // put n new words where 1 word was - const insertContraction = function (document, point, words) { - let [n, w] = point; - if (!words || words.length === 0) { - return - } - 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]) { - // move whitespace over - words[0].pre = document[n][w].pre; - words[words.length - 1].post = document[n][w].post; - // add the text/normal to the first term - words[0].text = document[n][w].text; - words[0].normal = document[n][w].normal; // move tags too? - } - // do the splice - document[n].splice(w, 1, ...words); - }; - var splice = insertContraction; - - const hasContraction$1 = /'/; - - const isHas = (terms, i) => { - //look for a past-tense verb - let after = terms.slice(i + 1, i + 3); - return after.some(t => t.tags.has('PastTense')) - }; - - // 's -> [possessive, 'has', or 'is'] - const apostropheS$1 = function (terms, i) { - // possessive, is/has - let before = terms[i].normal.split(hasContraction$1)[0]; - // spencer's got -> 'has' - if (isHas(terms, i)) { - return [before, 'has'] - } - // let's - if (before === 'let') { - return [before, 'us'] - } - // allow slang "there's" -> there are - if (before === 'there') { - let nextTerm = terms[i + 1]; - if (nextTerm && nextTerm.tags.has('Plural')) { - return [before, 'are'] - } - } - return [before, 'is'] - }; - var apostropheS$2 = apostropheS$1; - - const hasContraction = /'/; - //look for a past-tense verb - const hasPastTense = (terms, i) => { - let after = terms.slice(i + 1, i + 3); - return after.some(t => t.tags.has('PastTense')) - }; - // he'd walked -> had - // how'd -> did - // he'd go -> would - const _apostropheD = function (terms, i) { - let before = terms[i].normal.split(hasContraction)[0]; - // what'd, how'd - if (before === 'how' || before === 'what') { - return [before, 'did'] - } - if (hasPastTense(terms, i) === true) { - return [before, 'had'] - } - // had/would/did - return [before, 'would'] - }; - var apostropheD = _apostropheD; - - const lastNoun$1 = function (terms, i) { - for (let n = i - 1; n >= 0; n -= 1) { - if ( - terms[n].tags.has('Noun') || - terms[n].tags.has('Pronoun') || - terms[n].tags.has('Plural') || - terms[n].tags.has('Singular') - ) { - return terms[n] - } - } - return null - }; - - //ain't -> are/is not - const apostropheT = function (terms, i) { - if (terms[i].normal === "ain't" || terms[i].normal === 'aint') { - // we aint -> are not, she aint -> is not - let noun = lastNoun$1(terms, i); - if (noun) { - // plural/singular pronouns - if (noun.normal === 'we' || noun.normal === 'they') { - return ['are', 'not'] - } - // plural/singular tags - if (noun.tags && noun.tags.has('Plural')) { - return ['are', 'not'] - } - } - return ['is', 'not'] - } - let before = terms[i].normal.replace(/n't/, ''); - return [before, 'not'] - }; - - var apostropheT$1 = apostropheT; - - const banList = { - that: true, - there: true, - let: true, - here: true, - everywhere: true, - }; - - const beforePossessive = { - in: true,//in sunday's - by: true,//by sunday's - for: true,//for sunday's - }; - - const isPossessive = (terms, i) => { - let term = terms[i]; - // these can't be possessive - if (banList.hasOwnProperty(term.machine || term.normal)) { - return false - } - // if we already know it - if (term.tags.has('Possessive')) { - return true - } - //a pronoun can't be possessive - "he's house" - if (term.tags.has('Pronoun') || term.tags.has('QuestionWord')) { - return false - } - //if end of sentence, it is possessive - "was spencer's" - let nextTerm = terms[i + 1]; - if (!nextTerm) { - return true - } - //a gerund suggests 'is walking' - if (nextTerm.tags.has('Verb')) { - //fix 'jamie's bite' - if (nextTerm.tags.has('Infinitive')) { - return true - } - //fix 'spencer's runs' - if (nextTerm.tags.has('PresentTense')) { - return true - } - return false - } - //spencer's house - if (nextTerm.tags.has('Noun')) { - let nextStr = nextTerm.machine || nextTerm.normal; - // 'spencer's here' - if (nextStr === 'here' || nextStr === 'there' || nextStr === 'everywhere') { - return false - } - // the chair's his - if (nextTerm.tags.has('Possessive')) { - return false - } - // the captain's John - if (nextTerm.tags.has('ProperNoun') && !term.tags.has('ProperNoun')) { - return false - } - return true - } - // by sunday's final - if (terms[i - 1] && beforePossessive[terms[i - 1].normal] === true) { - return true - } - //rocket's red glare - let twoTerm = terms[i + 2]; - if (twoTerm && twoTerm.tags.has('Noun') && !twoTerm.tags.has('Pronoun')) { - return true - } - //othwerwise, an adjective suggests 'is good' - if (nextTerm.tags.has('Adjective') || nextTerm.tags.has('Adverb') || nextTerm.tags.has('Verb')) { - return false - } - return false - }; - var isPossessive$1 = isPossessive; - - 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(); - tmp.document = [terms]; - // offer to re-tag neighbours, too - let end = start + len; - if (start > 0) { - start -= 1; - } - if (terms[end]) { - end += 1; - } - tmp.ptrs = [[0, start, end]]; - tmp.compute(['lexicon', 'preTagger']); - // don't for a reindex of the whole document - reIndex(terms); - }; - - const byEnd = { - // how'd - d: (terms, i) => apostropheD(terms, i), - // we ain't - t: (terms, i) => apostropheT$1(terms, i), - // bob's - s: (terms, i, world) => { - // [bob's house] vs [bob's cool] - if (isPossessive$1(terms, i)) { - return world.methods.one.setTag([terms[i]], 'Possessive', world, '2-contraction') - } - return apostropheS$2(terms, i) - }, - }; - - const toDocs = function (words, view) { - let doc = view.fromText(words.join(' ')); - doc.compute('id'); - return doc.docs[0] - }; - - - //really easy ones - const contractionTwo$1 = (view) => { - let { world, document } = view; - // each sentence - document.forEach((terms, n) => { - // loop through terms backwards - for (let i = terms.length - 1; i >= 0; i -= 1) { - // is it already a contraction - if (terms[i].implicit) { - return - } - let after = null; - if (byApostrophe.test(terms[i].normal) === true) { - [, after] = terms[i].normal.split(byApostrophe); - } - let words = null; - // any known-ones, like 'dunno'? - // ['foo', 's'] - if (byEnd.hasOwnProperty(after)) { - words = byEnd[after](terms, i, world); - } - // actually insert the new terms - if (words) { - words = toDocs(words, view); - splice(document, [n, i], words); - reTag(document[n], view, i, words.length); - continue - } - } - }); - }; - var compute$2 = { contractionTwo: contractionTwo$1 }; - - var contractionTwo = { - compute: compute$2, - api: api$m, - hooks: ['contractionTwo'] - }; - - var adj = [ - // all fell apart - { match: '[(all|both)] #Determiner #Noun', group: 0, tag: 'Noun', reason: 'all-noun' }, - //sometimes not-adverbs - { match: '#Copula [(just|alone)]$', group: 0, tag: 'Adjective', reason: 'not-adverb' }, - //jack is guarded - { match: '#Singular is #Adverb? [#PastTense$]', group: 0, tag: 'Adjective', reason: 'is-filled' }, - // smoked poutine is - { match: '[#PastTense] #Singular is', group: 0, tag: 'Adjective', reason: 'smoked-poutine' }, - // baked onions are - { match: '[#PastTense] #Plural are', group: 0, tag: 'Adjective', reason: 'baked-onions' }, - // well made - { match: 'well [#PastTense]', group: 0, tag: 'Adjective', reason: 'well-made' }, - // is f*ed up - { match: '#Copula [fucked up?]', group: 0, tag: 'Adjective', reason: 'swears-adjective' }, - //jack seems guarded - { match: '#Singular (seems|appears) #Adverb? [#PastTense$]', group: 0, tag: 'Adjective', reason: 'seems-filled' }, - // jury is out - preposition ➔ adjective - { match: '#Copula #Adjective? [(out|in|through)]$', group: 0, tag: 'Adjective', reason: 'still-out' }, - // shut the door - { match: '^[#Adjective] (the|your) #Noun', group: 0, ifNo: ['all', 'even'], tag: 'Infinitive', reason: 'shut-the' }, - // the said card - { match: 'the [said] #Noun', group: 0, tag: 'Adjective', reason: 'the-said-card' }, - // a myth that uncovered wounds heal - { - 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' }, - ]; - - const adverbAdj = `(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)`; - var advAdj = [ - // kinda sparkly - // { match: `#Adverb [#Adverb]$`, ifNo: ['very', 'really', 'so'], group: 0, tag: 'Adjective', reason: 'kinda-sparkly' }, - { match: `#Adverb [#Adverb] (and|or|then)`, group: 0, tag: 'Adjective', reason: 'kinda-sparkly-and' }, - // dark green - { match: `[${adverbAdj}] #Adjective`, group: 0, tag: 'Adverb', reason: 'dark-green' }, - ]; - - var gerundAdj = [ - // Gerund-Adjectives - 'amusing, annoying' - //a staggering cost - { match: '(a|an) [#Gerund]', group: 0, tag: 'Adjective', reason: 'a|an' }, - //as amusing as - { match: 'as [#Gerund] as', group: 0, tag: 'Adjective', reason: 'as-gerund-as' }, - // more amusing than - { match: 'more [#Gerund] than', group: 0, tag: 'Adjective', reason: 'more-gerund-than' }, - // very amusing - { match: '(so|very|extremely) [#Gerund]', group: 0, tag: 'Adjective', reason: 'so-gerund' }, - // it was amusing - // { - // match: '(it|he|she|everything|something) #Adverb? was #Adverb? [#Gerund]', - // group: 0, - // tag: 'Adjective', - // reason: 'it-was-gerund', - // }, - // found it amusing - { match: '(found|found) it #Adverb? [#Gerund]', group: 0, tag: 'Adjective', reason: 'found-it-gerund' }, - // a bit amusing - { match: 'a (little|bit|wee) bit? [#Gerund]', group: 0, tag: 'Adjective', reason: 'a-bit-gerund' }, - // the amusing world - // { match: '(#Determiner|#Possessive) [%Adj|Gerund%] #Noun', group: 0, tag: 'Adjective', reason: 'amusing-world' }, - ]; - - var nounAdj = [ - //the above is clear - { match: '#Determiner [#Adjective] #Copula', group: 0, tag: 'Noun', reason: 'the-adj-is' }, - //real evil is - { match: '#Adjective [#Adjective] #Copula', group: 0, tag: 'Noun', reason: 'adj-adj-is' }, - //his fine - { match: '(his|its) [%Adj|Noun%]', group: 0, tag: 'Noun', reason: 'his-fine' }, - //is all - { match: '#Copula #Adverb? [all]', group: 0, tag: 'Noun', reason: 'is-all' }, - // have fun - { 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' }, - ]; - - var adjVerb = [ - // amusing his aunt - // { match: '[#Adjective] #Possessive #Noun', group: 0, tag: 'Verb', reason: 'gerund-his-noun' }, - // loving you - // { match: '[#Adjective] (us|you)', group: 0, tag: 'Gerund', reason: 'loving-you' }, - // slowly stunning - { match: '(slowly|quickly) [#Adjective]', group: 0, tag: 'Verb', reason: 'slowly-adj' }, - // does mean - { match: 'does (#Adverb|not)? [#Adjective]', group: 0, tag: 'PresentTense', reason: 'does-mean' }, - // okay by me - { match: '[(fine|okay|cool|ok)] by me', group: 0, tag: 'Adjective', reason: 'okay-by-me' }, - // i mean - { match: 'i (#Adverb|do)? not? [mean]', group: 0, tag: 'PresentTense', reason: 'i-mean' }, - //will secure our - { match: 'will #Adjective', tag: 'Auxiliary Infinitive', reason: 'will-adj' }, - //he disguised the thing - { match: '#Pronoun [#Adjective] #Determiner #Adjective? #Noun', group: 0, tag: 'Verb', reason: 'he-adj-the' }, - //is eager to go - { match: '#Copula [%Adj|Present%] to #Verb', group: 0, tag: 'Verb', reason: 'adj-to' }, - // rude and insulting - { match: '#Adjective and [#Gerund] !#Preposition?', group: 0, tag: 'Adjective', reason: 'rude-and-x' }, - // were over cooked - { match: '#Copula #Adverb? (over|under) [#PastTense]', group: 0, tag: 'Adjective', reason: 'over-cooked' }, - // was bland and overcooked - { match: '#Copula #Adjective+ (and|or) [#PastTense]$', group: 0, tag: 'Adjective', reason: 'bland-and-overcooked' }, - // 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', - }, - ]; - - // const adverbAdj = '(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)' - - var adv = [ - //still good - { match: '[still] #Adjective', group: 0, tag: 'Adverb', reason: 'still-advb' }, - //still make - { match: '[still] #Verb', group: 0, tag: 'Adverb', reason: 'still-verb' }, - // so hot - { match: '[so] #Adjective', group: 0, tag: 'Adverb', reason: 'so-adv' }, - // way hotter - { match: '[way] #Comparative', group: 0, tag: 'Adverb', reason: 'way-adj' }, - // way too hot - { match: '[way] #Adverb #Adjective', group: 0, tag: 'Adverb', reason: 'way-too-adj' }, - // all singing - { match: '[all] #Verb', group: 0, tag: 'Adverb', reason: 'all-verb' }, - // sing like an angel - { match: '#Verb [like]', group: 0, ifNo: ['#Modal', '#PhrasalVerb'], tag: 'Adverb', reason: 'verb-like' }, - //barely even walk - { match: '(barely|hardly) even', tag: 'Adverb', reason: 'barely-even' }, - //even held - { match: '[even] #Verb', group: 0, tag: 'Adverb', reason: 'even-walk' }, - // even the greatest - { match: '[even] (#Determiner|#Possessive)', group: 0, tag: '#Adverb', reason: 'even-the' }, - // even left - { match: 'even left', tag: '#Adverb #Verb', reason: 'even-left' }, - // way over - { match: '[way] #Adjective', group: 0, tag: '#Adverb', reason: 'way-over' }, - //cheering hard - dropped -ly's - { - match: '#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]', - ifNo: '#Copula', - group: 0, - tag: 'Adverb', - reason: 'lazy-ly', - }, - // much appreciated - { match: '[much] #Adjective', group: 0, tag: 'Adverb', reason: 'bit-1' }, - // is well - { match: '#Copula [#Adverb]$', group: 0, tag: 'Adjective', reason: 'is-well' }, - // a bit cold - { match: 'a [(little|bit|wee) bit?] #Adjective', group: 0, tag: 'Adverb', reason: 'a-bit-cold' }, - // super strong - { match: `[(super|pretty)] #Adjective`, group: 0, tag: 'Adverb', reason: 'super-strong' }, - // become overly weakened - { match: '(become|fall|grow) #Adverb? [#PastTense]', group: 0, tag: 'Adjective', reason: 'overly-weakened' }, - // a completely beaten man - { match: '(a|an) #Adverb [#Participle] #Noun', group: 0, tag: 'Adjective', reason: 'completely-beaten' }, - //a close - { match: '#Determiner #Adverb? [close]', group: 0, tag: 'Adjective', reason: 'a-close' }, - //walking close - { match: '#Gerund #Adverb? [close]', group: 0, tag: 'Adverb', reason: 'being-close' }, - // a blown motor - { match: '(the|those|these|a|an) [#Participle] #Noun', group: 0, tag: 'Adjective', reason: 'blown-motor' }, - // charged back - { match: '(#PresentTense|#PastTense) [back]', group: 0, tag: 'Adverb', reason: 'charge-back' }, - ]; - - var dates = [ - // ==== Holiday ==== - { match: '#Holiday (day|eve)', tag: 'Holiday', reason: 'holiday-day' }, - //5th of March - { match: '#Value of #Month', tag: 'Date', reason: 'value-of-month' }, - //5 March - { match: '#Cardinal #Month', tag: 'Date', reason: 'cardinal-month' }, - //march 5 to 7 - { match: '#Month #Value to #Value', tag: 'Date', reason: 'value-to-value' }, - //march the 12th - { match: '#Month the #Value', tag: 'Date', reason: 'month-the-value' }, - //june 7 - { match: '(#WeekDay|#Month) #Value', tag: 'Date', reason: 'date-value' }, - //7 june - { match: '#Value (#WeekDay|#Month)', tag: 'Date', reason: 'value-date' }, - //may twenty five - { match: '(#TextValue && #Date) #TextValue', tag: 'Date', reason: 'textvalue-date' }, - // 'aug 20-21' - { match: `#Month #NumberRange`, tag: 'Date', reason: 'aug 20-21' }, - // wed march 5th - { match: `#WeekDay #Month #Ordinal`, tag: 'Date', reason: 'week mm-dd' }, - // aug 5th 2021 - { match: `#Month #Ordinal #Cardinal`, tag: 'Date', reason: 'mm-dd-yyy' }, - - // === timezones === - // china standard time - { match: `(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time`, tag: 'Timezone', reason: 'std-time' }, - // eastern time - { - match: `(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time`, - tag: 'Timezone', - reason: 'eastern-time', - }, - // 5pm central - { match: `#Time [(eastern|mountain|pacific|central|est|pst|gmt)]`, group: 0, tag: 'Timezone', reason: '5pm-central' }, - // central european time - { match: `(central|western|eastern) european time`, tag: 'Timezone', reason: 'cet' }, - ]; - - var ambigDates = [ - // ==== WeekDay ==== - // sun the 5th - { match: '[sun] the #Ordinal', tag: 'WeekDay', reason: 'sun-the-5th' }, - //sun feb 2 - { match: '[sun] #Date', group: 0, tag: 'WeekDay', reason: 'sun-feb' }, - //1pm next sun - { match: '#Date (on|this|next|last|during)? [sun]', group: 0, tag: 'WeekDay', reason: '1pm-sun' }, - //this sat - { 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' }, - //sat november - { match: '[sat] #Date', group: 0, tag: 'WeekDay', reason: 'sat-feb' }, - - // ==== Month ==== - //all march - { match: `#Preposition [(march|may)]`, group: 0, tag: 'Month', reason: 'in-month' }, - //this march - { match: `(this|next|last) [(march|may)]`, tag: '#Date #Month', reason: 'this-month' }, - // march 5th - { match: `(march|may) the? #Value`, tag: '#Month #Date #Date', reason: 'march-5th' }, - // 5th of march - { match: `#Value of? (march|may)`, tag: '#Date #Date #Month', reason: '5th-of-march' }, - // march and feb - { match: `[(march|may)] .? #Date`, group: 0, tag: 'Month', reason: 'march-and-feb' }, - // feb to march - { match: `#Date .? [(march|may)]`, group: 0, tag: 'Month', reason: 'feb-and-march' }, - //quickly march - { match: `#Adverb [(march|may)]`, group: 0, tag: 'Verb', reason: 'quickly-march' }, - //march quickly - { match: `[(march|may)] #Adverb`, group: 0, tag: 'Verb', reason: 'march-quickly' }, - ]; - - const infNouns = - '(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)'; - var noun = [ - //'more' is not always an adverb - { 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' }, - - //some pressing issues - { match: 'some [#Verb] #Plural', group: 0, tag: 'Noun', reason: 'determiner6' }, - // my first thought - { match: '#Possessive #Ordinal [#PastTense]', group: 0, tag: 'Noun', reason: 'first-thought' }, - //the nice swim - { match: '(the|this|those|these) #Adjective [%Verb|Noun%]', group: 0, tag: 'Noun', ifNo: '#Copula', reason: 'the-adj-verb' }, - // the truly nice swim - { match: '(the|this|those|these) #Adverb #Adjective [#Verb]', group: 0, tag: 'Noun', reason: 'determiner4' }, - //the wait to vote - { match: 'the [#Verb] #Preposition .', group: 0, tag: 'Noun', reason: 'determiner1' }, - //a sense of - { match: '#Determiner [#Verb] of', group: 0, tag: 'Noun', reason: 'the-verb-of' }, - //the threat of force - { match: '#Determiner #Noun of [#Verb]', group: 0, tag: 'Noun', ifNo: '#Gerund', reason: 'noun-of-noun' }, - //Grandma's cooking, my tiptoing - // { match: '#Possessive [#Gerund]', group: 0, tag: 'Noun', reason: 'grandmas-cooking' }, - // ended in ruins - { match: '#PastTense #Preposition [#PresentTense]', group: 0, ifNo: ['#Gerund'], tag: 'Noun', reason: 'ended-in-ruins' }, - - //'u' as pronoun - { match: '#Conjunction [u]', group: 0, tag: 'Pronoun', reason: 'u-pronoun-2' }, - { match: '[u] #Verb', group: 0, tag: 'Pronoun', reason: 'u-pronoun-1' }, - //the western line - { - match: '#Determiner [(western|eastern|northern|southern|central)] #Noun', - group: 0, - tag: 'Noun', - reason: 'western-line', - }, - //linear algebra - // { - // match: '(#Determiner|#Value) [(linear|binary|mobile|lexical|technical|computer|scientific|formal)] #Noun', - // group: 0, - // tag: 'Noun', - // reason: 'technical-noun', - // }, - //air-flow - { match: '(#Singular && @hasHyphen) #PresentTense', tag: 'Noun', reason: 'hyphen-verb' }, - //is no walk - { match: 'is no [#Verb]', group: 0, tag: 'Noun', reason: 'is-no-verb' }, - //different views than - // { match: '[#Verb] than', group: 0, tag: 'Noun', reason: 'verb-than' }, - //do so - { match: 'do [so]', group: 0, tag: 'Noun', reason: 'so-noun' }, - // what the hell - { match: '#Determiner [(shit|damn|hell)]', group: 0, tag: 'Noun', reason: 'swears-noun' }, - // go to shit - { match: 'to [(shit|hell)]', group: 0, tag: 'Noun', reason: 'to-swears' }, - // the staff were - { match: '(the|these) [#Singular] (were|are)', group: 0, tag: 'Plural', reason: 'singular-were' }, - // a comdominium, or simply condo - { match: `a #Noun+ or #Adverb+? [#Verb]`, group: 0, tag: 'Noun', reason: 'noun-or-noun' }, - // walk the walk - { 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: '(the|those|these|a|an) #Adjective? [#PastTense]', group: 0, tag: 'Noun', reason: 'det-past' }, - - // ==== Actor ==== - //Aircraft designer - { match: '#Noun #Actor', tag: 'Actor', reason: 'thing-doer' }, - // co-founder - { match: `co #Singular`, tag: 'Actor', reason: 'co-noun' }, - - // ==== Singular ==== - //the sun - { match: '#Determiner [sun]', group: 0, tag: 'Singular', reason: 'the-sun' }, - //did a 900, paid a 20 - { match: '#Verb (a|an) [#Value]', group: 0, tag: 'Singular', reason: 'did-a-value' }, - //'the can' - { match: 'the [(can|will|may)]', group: 0, tag: 'Singular', reason: 'the can' }, - - // ==== Possessive ==== - //spencer kelly's - { match: '#FirstName #Acronym? (#Possessive && #LastName)', tag: 'Possessive', reason: 'name-poss' }, - //Super Corp's fundraiser - { match: '#Organization+ #Possessive', tag: 'Possessive', reason: 'org-possessive' }, - //Los Angeles's fundraiser - { match: '#Place+ #Possessive', tag: 'Possessive', reason: 'place-possessive' }, - // 10th of a second - { match: '#Value of a [second]', group: 0, unTag: 'Value', tag: 'Singular', reason: '10th-of-a-second' }, - // 10 seconds - { match: '#Value [seconds]', group: 0, unTag: 'Value', tag: 'Plural', reason: '10-seconds' }, - // in time - { match: 'in [#Infinitive]', group: 0, tag: 'Singular', reason: 'in-age' }, - // a minor in - { match: 'a [#Adjective] #Preposition', group: 0, tag: 'Noun', reason: 'a-minor-in' }, - - //the repairer said - { match: '#Determiner [#Singular] said', group: 0, tag: 'Actor', reason: 'the-actor-said' }, - //the euro sense - { - match: `#Determiner #Noun [${infNouns}] !(#Preposition|to|#Adverb)?`, - group: 0, - tag: 'Noun', - reason: 'the-noun-sense', - }, - // photographs of a computer are - { match: '[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula', group: 0, tag: 'Plural', reason: 'photographs-of' }, - // soft music playing - // { match: '%Noun|Gerund%$', tag: 'Noun', reason: 'music-playing' }, - // fight and win - { match: '#Infinitive and [%Noun|Verb%]', group: 0, tag: 'Infinitive', reason: 'fight and win' }, - // 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' }, - // 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 = [ - // the planning processes - { match: '(this|that|the|a|an) [#Gerund #Infinitive]', group: 0, tag: 'Singular', reason: 'the-planning-process' }, - // 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' }, - // 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 - { match: '#Adjective [#Gerund]', group: 0, tag: 'Noun', reason: 'early-warning' }, - //walking is cool - { match: '[#Gerund] #Adverb? not? #Copula', group: 0, tag: 'Activity', reason: 'gerund-copula' }, - //walking should be fun - { match: '[#Gerund] #Modal', group: 0, tag: 'Activity', reason: 'gerund-modal' }, - // finish listening - // { match: '#Infinitive [#Gerund]', group: 0, tag: 'Activity', reason: 'finish-listening' }, - // the ruling party - ]; - - var presNouns = [ - // do the dance - { match: '#Infinitive (this|that|the) [#Infinitive]', group: 0, tag: 'Noun', reason: 'do-this-dance' }, - //running-a-show - { match: '#Gerund #Determiner [#Infinitive]', group: 0, tag: 'Noun', reason: 'running-a-show' }, - //the-only-reason - { match: '#Determiner #Adverb [#Infinitive]', group: 0, tag: 'Noun', reason: 'the-reason' }, - // a stream runs - { match: '(the|this|a|an) [#Infinitive] #Adverb? #Verb', group: 0, tag: 'Noun', reason: 'determiner5' }, - //the test string - { match: '#Determiner [#Infinitive] #Noun', group: 0, tag: 'Noun', reason: 'determiner7' }, - //a nice deal - { match: '#Determiner #Adjective #Adjective? [#Infinitive]', group: 0, tag: 'Noun', reason: 'a-nice-inf' }, - // the mexican train - { match: '#Determiner #Demonym [#PresentTense]', group: 0, tag: 'Noun', reason: 'mexican-train' }, - //next career move - { match: '#Adjective #Noun+ [#Infinitive] #Copula', group: 0, tag: 'Noun', reason: 'career-move' }, - // at some point - { match: 'at some [#Infinitive]', group: 0, tag: 'Noun', reason: 'at-some-inf' }, - // goes to sleep - { match: '(go|goes|went) to [#Infinitive]', group: 0, tag: 'Noun', reason: 'goes-to-verb' }, - //a close watch on - { match: '(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)', group: 0, tag: 'Noun', reason: 'a-noun-inf' }, - //a tv show - { match: '(a|an) #Noun [#Infinitive]$', group: 0, tag: 'Noun', reason: 'a-noun-inf2' }, - //is mark hughes - { match: '#Copula [#Infinitive] #Noun', group: 0, tag: 'Noun', reason: 'is-pres-noun' }, - // good wait staff - // { match: '#Adjective [#Infinitive] #Noun', group: 0, tag: 'Noun', reason: 'good-wait-staff' }, - // running for congress - { match: '#Gerund #Adjective? for [#Infinitive]', group: 0, tag: 'Noun', reason: 'running-for' }, - // running to work - { match: '#Gerund #Adjective to [#Infinitive]', group: 0, tag: 'Noun', reason: 'running-to' }, - // 1 train - { match: '(one|1) [#Infinitive]', group: 0, tag: 'Singular', reason: '1-trains' }, - // about love - { match: 'about [#Infinitive]', group: 0, tag: 'Singular', reason: 'about-love' }, - // on stage - { match: 'on [#Infinitive]', group: 0, tag: 'Noun', reason: 'on-stage' }, - // any charge - { match: 'any [#Infinitive]', group: 0, tag: 'Noun', reason: 'any-charge' }, - // no doubt - { match: 'no [#Infinitive]', group: 0, tag: 'Noun', reason: 'no-doubt' }, - // number of seats - { match: 'number of [#PresentTense]', group: 0, tag: 'Noun', reason: 'number-of-x' }, - // teaches/taught - { match: '(taught|teaches|learns|learned) [#PresentTense]', group: 0, tag: 'Noun', reason: 'teaches-x' }, - - // use reverse - { - match: '(try|use|attempt|build|make) [#Verb]', - ifNo: ['#Copula', '#PhrasalVerb'], - group: 0, - tag: 'Noun', - reason: 'do-verb', - }, - - // checkmate is - { match: '^[#Infinitive] (is|was)', group: 0, tag: 'Noun', reason: 'checkmate-is' }, - // get much sleep - { match: '#Infinitive much [#Infinitive]', group: 0, tag: 'Noun', reason: 'get-much' }, - // cause i gotta - { match: '[cause] #Pronoun #Verb', group: 0, tag: 'Conjunction', reason: 'cause-cuz' }, - // the cardio dance party - { match: 'the #Singular [#Infinitive] #Noun', group: 0, tag: 'Noun', reason: 'cardio-dance' }, - // the dining experience - // { match: 'the #Noun [#Infinitive] #Copula', group: 0, tag: 'Noun', reason: 'dining-experience' }, - - // that should smoke - { match: '#Determiner #Modal [#Noun]', group: 0, tag: 'PresentTense', reason: 'should-smoke' }, - //this rocks - { match: '(this|that) [#Plural]', group: 0, tag: 'PresentTense', reason: 'this-verbs' }, - //let him glue - { - match: '(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)', - group: 0, - tag: 'Infinitive', - reason: 'let-him-glue', - }, - - // assign all tasks - { - match: '#Verb (all|every|each|most|some|no) [#PresentTense]', - ifNo: '#Modal', - group: 0, - tag: 'Noun', - reason: 'all-presentTense', - }, - // PresentTense/Noun ambiguities - // big dreams, critical thinking - // have big dreams - { match: '(had|have|#PastTense) #Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'adj-presentTense' }, - // excellent answer spencer - // { match: '^#Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'start adj-presentTense' }, - // one big reason - { match: '#Value #Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'one-big-reason' }, - // won widespread support - { match: '#PastTense #Adjective+ [#PresentTense]', group: 0, tag: 'Noun', reason: 'won-wide-support' }, - // many poses - { match: '(many|few|several|couple) [#PresentTense]', group: 0, tag: 'Noun', reason: 'many-poses' }, - // very big dreams - { match: '#Adverb #Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'very-big-dream' }, - // adorable little store - { match: '#Adjective #Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'adorable-little-store' }, - // of basic training - // { match: '#Preposition #Adjective [#PresentTense]', group: 0, tag: 'Noun', reason: 'of-basic-training' }, - // justifiying higher costs - { 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' }, - - // any questions for - { match: '(many|any|some|several) [#PresentTense] for', group: 0, tag: 'Noun', reason: 'any-verbs-for' }, - // to facilitate gas exchange with - { match: `to #PresentTense #Noun [#PresentTense] #Preposition`, group: 0, tag: 'Noun', reason: 'gas-exchange' }, - // waited until release - { - match: `#PastTense (until|as|through|without) [#PresentTense]`, - group: 0, - tag: 'Noun', - reason: 'waited-until-release', - }, - // selling like hot cakes - { match: `#Gerund like #Adjective? [#PresentTense]`, group: 0, tag: 'Plural', reason: 'like-hot-cakes' }, - // some valid reason - { match: `some #Adjective [#PresentTense]`, group: 0, tag: 'Noun', reason: 'some-reason' }, - // for some reason - { match: `for some [#PresentTense]`, group: 0, tag: 'Noun', reason: 'for-some-reason' }, - // same kind of shouts - { match: `(same|some|the|that|a) kind of [#PresentTense]`, group: 0, tag: 'Noun', reason: 'some-kind-of' }, - // a type of shout - { match: `(same|some|the|that|a) type of [#PresentTense]`, group: 0, tag: 'Noun', reason: 'some-type-of' }, - // doing better for fights - { match: `#Gerund #Adjective #Preposition [#PresentTense]`, group: 0, tag: 'Noun', reason: 'doing-better-for-x' }, - // get better aim - { match: `(get|got|have|had) #Comparative [#PresentTense]`, group: 0, tag: 'Noun', reason: 'got-better-aim' }, - // whose name was - { match: 'whose [#PresentTense] #Copula', group: 0, tag: 'Noun', reason: 'whos-name-was' }, - // give up on reason - { match: `#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]`, group: 0, tag: 'Noun', reason: 'given-up-on-x' }, - //there are reasons - { match: 'there (are|were) #Adjective? [#PresentTense]', group: 0, tag: 'Plural', reason: 'there-are' }, - - // 30 trains - { - match: '#Value [#PresentTense]', - group: 0, - ifNo: ['one', '1', '#Copula', '#Infinitive'], - tag: 'Plural', - reason: '2-trains', - }, - // compromises are possible - { match: '[#PresentTense] (are|were|was) #Adjective', group: 0, tag: 'Plural', reason: 'compromises-are-possible' }, - // hope i helped - { match: '^[(hope|guess|thought|think)] #Pronoun #Verb', group: 0, tag: 'Infinitive', reason: 'suppose-i' }, - //pursue its dreams - { match: '#PresentTense #Possessive [#PresentTense]', group: 0, tag: 'Plural', reason: 'pursue-its-dreams' }, - // our unyielding support - { match: '#Possessive #Adjective [#Verb]', group: 0, tag: 'Noun', reason: 'our-full-support' }, - // they do serve fish - { match: '(do|did|will) [#Singular] #Noun', group: 0, tag: 'PresentTense', reason: 'do-serve-fish' }, - // tastes good - { match: '[(tastes|smells)] #Adverb? #Adjective', group: 0, tag: 'PresentTense', reason: 'tastes-good' }, - // are you plauing golf - { match: '^are #Pronoun [#Noun]', group: 0, ifNo: ['here', 'there'], tag: 'Verb', reason: 'are-you-x' }, - // ignoring commute - { - match: '#Copula #Gerund [#PresentTense] !by?', - group: 0, - tag: 'Noun', - ifNo: ['going'], - reason: 'ignoring-commute', - }, - // noun-pastTense variables - { match: '#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]', group: 0, tag: 'Noun', reason: 'noun-past' }, - ]; - - var money = [ - { match: '#Money and #Money #Currency?', tag: 'Money', reason: 'money-and-money' }, - - // // $5.032 is invalid money - // doc - // .match('#Money') - // .not('#TextValue') - // .match('/\\.[0-9]{3}$/') - // .unTag('#Money', 'three-decimal money') - - // cleanup currency false-positives - // { match: '#Currency #Verb', ifNo: '#Value', unTag: 'Currency', reason: 'no-currency' }, - // 6 dollars and 5 cents - { match: '#Value #Currency [and] #Value (cents|ore|centavos|sens)', group: 0, tag: 'money', reason: 'and-5-cents' }, - // maybe currencies - { match: '#Value (mark|rand|won|rub|ore)', tag: '#Money #Currency', reason: '4 mark' }, - ]; - - // {match:'', tag:'',reason:''}, - // {match:'', tag:'',reason:''}, - // {match:'', tag:'',reason:''}, - - var fractions$1 = [ - // half a penny - { match: '[(half|quarter)] of? (a|an)', group: 0, tag: 'Fraction', reason: 'millionth' }, - // nearly half - { match: '#Adverb [half]', group: 0, tag: 'Fraction', reason: 'nearly-half' }, - // half the - { match: '[half] the', group: 0, tag: 'Fraction', reason: 'half-the' }, - // and a half - { match: '#Cardinal and a half', tag: 'Fraction', reason: 'and-a-half' }, - // two-halves - { match: '#Value (halves|halfs|quarters)', tag: 'Fraction', reason: 'two-halves' }, - - // ---ordinals as fractions--- - // a fifth - { match: 'a #Ordinal', tag: 'Fraction', reason: 'a-quarter' }, - // seven fifths - { match: '[#Cardinal+] (#Fraction && /s$/)', tag: 'Fraction', reason: 'seven-fifths' }, - // doc.match('(#Fraction && /s$/)').lookBefore('#Cardinal+$').tag('Fraction') - // one third of .. - { match: '[#Cardinal+ #Ordinal] of .', group: 0, tag: 'Fraction', reason: 'ordinal-of' }, - // 100th of - { match: '[(#NumericValue && #Ordinal)] of .', group: 0, tag: 'Fraction', reason: 'num-ordinal-of' }, - // a twenty fifth - { match: '(a|one) #Cardinal?+ #Ordinal', tag: 'Fraction', reason: 'a-ordinal' }, - - // // '3 out of 5' - { match: '#Cardinal+ out? of every? #Cardinal', tag: 'Fraction', reason: 'out-of' }, - ]; - - // {match:'', tag:'',reason:''}, - - var numbers$2 = [ - // ==== Ambiguous numbers ==== - // 'second' - { match: `#Cardinal [second]`, tag: 'Unit', reason: 'one-second' }, - //'a/an' can mean 1 - "a hour" - { - match: '!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)', - group: 0, - tag: 'Value', - reason: 'a-is-one', - }, - // ==== PhoneNumber ==== - //1 800 ... - { match: '1 #Value #PhoneNumber', tag: 'PhoneNumber', reason: '1-800-Value' }, - //(454) 232-9873 - { match: '#NumericValue #PhoneNumber', tag: 'PhoneNumber', reason: '(800) PhoneNumber' }, - - // ==== Currency ==== - // chinese yuan - { match: '#Demonym #Currency', tag: 'Currency', reason: 'demonym-currency' }, - // ten bucks - { match: '#Value [(buck|bucks|grand)]', group: 0, tag: 'Currency', reason: 'value-bucks' }, - // ==== Money ==== - { match: '[#Value+] #Currency', group: 0, tag: 'Money', reason: '15 usd' }, - - // ==== Ordinal ==== - { match: '[second] #Noun', group: 0, tag: 'Ordinal', reason: 'second-noun' }, - - // ==== Units ==== - //5 yan - { match: '#Value+ [#Currency]', group: 0, tag: 'Unit', reason: '5-yan' }, - { match: '#Value [(foot|feet)]', group: 0, tag: 'Unit', reason: 'foot-unit' }, - //5 kg. - { 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' }, - - // ==== Magnitudes ==== - //minus 7 - { match: '(minus|negative) #Value', tag: 'Value', reason: 'minus-value' }, - //seven point five - { match: '#Value (point|decimal) #Value', tag: 'Value', reason: 'value-point-value' }, - //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', - }, - ]; - - var person = [ - // ==== Honorifics ==== - { 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', - }, - // ==== FirstNames ==== - //is foo Smith - { match: '#Copula [(#Noun|#PresentTense)] #LastName', group: 0, tag: 'FirstName', reason: 'copula-noun-lastname' }, - //pope francis - { - match: '(lady|queen|sister|king|pope|father) #ProperNoun', - tag: 'Person', - reason: 'lady-titlecase', - safe: true, - }, - - // ==== Nickname ==== - // Dwayne 'the rock' Johnson - { 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: true, - }, - { match: '#Acronym #LastName', tag: 'Person', reason: 'acronym-lastname', safe: true }, - { match: '#Person (jr|sr|md)', tag: 'Person', reason: 'person-honorific' }, - //remove single 'mr' - { 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' }, - //j.k Rowling - { match: '#Noun van der? #Noun', tag: 'Person', reason: 'van der noun', safe: true }, - //king of spain - { match: '(king|queen|prince|saint|lady) of #Noun', tag: 'Person', reason: 'king-of-noun', safe: true }, - //lady Florence - { match: '(prince|lady) #Place', tag: 'Person', reason: 'lady-place' }, - //saint Foo - { match: '(king|queen|prince|saint) #ProperNoun', tag: 'Person', reason: 'saint-foo' }, - - // al sharpton - { match: 'al (#Person|#ProperNoun)', tag: 'Person', reason: 'al-borlen', safe: true }, - //ferdinand de almar - { match: '#FirstName de #Noun', tag: 'Person', reason: 'bill-de-noun' }, - //Osama bin Laden - { match: '#FirstName (bin|al) #Noun', tag: 'Person', reason: 'bill-al-noun' }, - //John L. Foo - { match: '#FirstName #Acronym #ProperNoun', tag: 'Person', reason: 'bill-acronym-title' }, - //Andrew Lloyd Webber - { match: '#FirstName #FirstName #ProperNoun', tag: 'Person', reason: 'bill-firstname-title' }, - //Mr Foo - { match: '#Honorific #FirstName? #ProperNoun', tag: 'Person', reason: 'dr-john-Title' }, - //peter the great - { match: '#FirstName the #Adjective', tag: 'Person', reason: 'name-the-great' }, - - // dick van dyke - { match: '#ProperNoun (van|al|bin) #ProperNoun', tag: 'Person', reason: 'title-van-title', safe: true }, - //jose de Sucre - { match: '#ProperNoun (de|du) la? #ProperNoun', tag: 'Person', reason: 'title-de-title' }, - //Jani K. Smith - { match: '#Singular #Acronym #LastName', tag: '#FirstName #Person .', reason: 'title-acro-noun', safe: true }, - //Foo Ford - { match: '[#ProperNoun] #Person', group: 0, tag: 'Person', reason: 'proper-person', safe: true }, - // john keith jones - { match: '#Person [#ProperNoun #ProperNoun]', group: 0, tag: 'Person', ifNo: '#Possessive', reason: 'three-name-person', safe: true }, - //John Foo - { match: '#FirstName #Acronym? [#ProperNoun]', group: 0, tag: 'LastName', ifNo: '#Possessive', reason: 'firstname-titlecase' }, - // john stewart - { match: '#FirstName [#FirstName]', group: 0, tag: 'LastName', reason: 'firstname-firstname' }, - //Joe K. Sombrero - { match: '#FirstName #Acronym #Noun', tag: 'Person', reason: 'n-acro-noun', safe: true }, - //Anthony de Marco - { match: '#FirstName [(de|di|du|van|von)] #Person', group: 0, tag: 'LastName', reason: 'de-firstname' }, - //Joe springer sr - { match: '#ProperNoun [#Honorific]', group: 0, tag: 'Person', reason: 'last-sr' }, - // dr john foobar - { match: '#Honorific #FirstName [#Singular]', group: 0, tag: 'LastName', ifNo: '#Possessive', reason: 'dr-john-foo', safe: true }, - //his-excellency - { - match: '[(his|her) (majesty|honour|worship|excellency|honorable)] #Person', - group: 0, - tag: ['Honorific', 'Person'], - reason: 'his-excellency', - }, - //general pearson - { match: '#Honorific #Person', tag: 'Person', reason: 'honorific-person' }, - ]; - - const personAdj = '(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)'; - - var personName = [ - // ===person-date=== - // in june - // { match: `(in|during|on|by|after|#Date) [${personDate}]`, group: 0, tag: 'Date', reason: 'in-june' }, - // // june 1992 - // { match: `${personDate} (#Value|#Date)`, tag: 'Date', reason: 'june-5th' }, - // // June Smith - // { match: `${personDate} #ProperNoun`, tag: 'Person', reason: 'june-smith', safe: true }, - // // june m. Cooper - // { match: `${personDate} #Acronym? #ProperNoun`, tag: 'Person', ifNo: '#Month', reason: 'june-smith-jr' }, - // // ---person-month--- - // //give to april - // { - // match: `#Infinitive #Determiner? #Adjective? #Noun? (to|for) [${personMonth}]`, - // group: 0, - // tag: 'Person', - // reason: 'ambig-person', - // }, - // // remind june - // { match: `#Infinitive [${personMonth}]`, group: 0, tag: 'Person', reason: 'infinitive-person' }, - // // april will - // { match: `[${personMonth}] #Modal`, group: 0, tag: 'Person', reason: 'ambig-modal' }, - // // would april - // { match: `#Modal [${personMonth}]`, group: 0, tag: 'Person', reason: 'modal-ambig' }, - // // it is may - // { match: `#Copula [${personMonth}]`, group: 0, tag: 'Person', reason: 'is-may' }, - // may is - // { match: `[%Person|Date%] #Copula`, group: 0, tag: 'Person', reason: 'may-is' }, - // may the - // { match: `[%Person|Date%] the`, group: 0, tag: 'Date', reason: 'may-the' }, - // of may - // { match: `of [%Person|Date%]`, group: 0, tag: 'Date', reason: 'of-may' }, - // // with april - // { match: `(that|with|for) [${personMonth}]`, group: 0, tag: 'Person', reason: 'that-month' }, - // // may 5th - // { match: `[${personMonth}] the? #Value`, group: 0, tag: 'Month', reason: 'may-5th' }, - - // ===person-date=== - { match: '%Person|Date% #Acronym? #ProperNoun', tag: 'Person', reason: 'jan-thierson' }, - // ===person-noun=== - //Cliff Clavin - { match: '%Person|Noun% #Acronym? #ProperNoun', tag: 'Person', reason: 'switch-person', safe: true }, - // olive garden - { match: '%Person|Noun% #Organization', tag: 'Organization', reason: 'olive-garden' }, - // ===person-verb=== - // 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)`, group: 0, tag: 'Person', reason: 'person-said' }, - - // ===person-place=== - //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%]`, group: 0, tag: 'Place', reason: 'east-sydney' }, - - // ===person-adjective=== - // rusty smith - { match: `${personAdj} #Person`, tag: 'Person', reason: 'randy-smith' }, - // rusty a. smith - { match: `${personAdj} #Acronym? #ProperNoun`, tag: 'Person', reason: 'rusty-smith' }, - // very rusty - { match: `#Adverb [${personAdj}]`, group: 0, tag: 'Adjective', reason: 'really-rich' }, - - // ===person-verb=== - // would wade - { match: `#Modal [%Person|Verb%]`, group: 0, tag: 'Verb', reason: 'would-mark' }, - // really wade - { match: `#Adverb [%Person|Verb%]`, group: 0, tag: 'Verb', reason: 'really-mark' }, - // drew closer - { match: `[%Person|Verb%] (#Adverb|#Comparative)`, group: 0, tag: 'Verb', reason: 'drew-closer' }, - // wade smith - { match: `%Person|Verb% #Person`, tag: 'Person', reason: 'rob-smith' }, - // wade m. Cooper - { match: `%Person|Verb% #Acronym #ProperNoun`, tag: 'Person', reason: 'rob-a-smith' }, - // will go - { match: '[will] #Verb', group: 0, tag: 'Modal', reason: 'will-verb' }, - // will Pharell - { match: '(will && @isTitleCase) #ProperNoun', tag: 'Person', reason: 'will-name' }, - ]; - - var verbs$1 = [ - //sometimes adverbs - 'pretty good','well above' - { - match: '#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)', - tag: '#Copula #Adverb #Adjective', - reason: 'sometimes-adverb', - }, - //i better .. - { match: '(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense', group: 0, tag: 'Modal', reason: 'i-better' }, - // 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' }, - - // ==== Copula ==== - //will be running (not copula) - { match: 'will #Adverb? not? #Adverb? [be] #Gerund', group: 0, tag: 'Copula', reason: 'will-be-copula' }, - //for more complex forms, just tag 'be' - { match: 'will #Adverb? not? #Adverb? [be] #Adjective', group: 0, tag: 'Copula', reason: 'be-copula' }, - // ==== Infinitive ==== - //march to - { match: '[march] (up|down|back|toward)', notIf: ['#Date'], group: 0, tag: 'Infinitive', reason: 'march-to' }, - //must march - { match: '#Modal [march]', group: 0, tag: 'Infinitive', reason: 'must-march' }, - // may be - { match: `[may] be`, group: 0, tag: 'Verb', reason: 'may-be' }, - // subject to - { match: `[(subject|subjects|subjected)] to`, group: 0, tag: 'Verb', reason: 'subject to' }, - // subject to - { match: `[home] to`, group: 0, tag: 'PresentTense', reason: 'home to' }, - - // === misc== - // side with - // { match: '[(side|fool|monkey)] with', group: 0, tag: 'Infinitive', reason: 'fool-with' }, - // open the door - { match: '[open] #Determiner', group: 0, tag: 'Infinitive', reason: 'open-the' }, - //were being run - { match: `(were|was) being [#PresentTense]`, group: 0, tag: 'PastTense', reason: 'was-being' }, - //had been broken - { match: `(had|has|have) [been /en$/]`, group: 0, tag: 'Auxiliary Participle', reason: 'had-been-broken' }, - //had been smoked - { match: `(had|has|have) [been /ed$/]`, group: 0, tag: 'Auxiliary PastTense', reason: 'had-been-smoked' }, - //were being run - { match: `(had|has) #Adverb? [been] #Adverb? #PastTense`, group: 0, tag: 'Auxiliary', reason: 'had-been-adj' }, - //had to walk - { match: `(had|has) to [#Noun] (#Determiner|#Possessive)`, group: 0, tag: 'Infinitive', reason: 'had-to-noun' }, - // have read - { match: `have [#PresentTense]`, group: 0, tag: 'PastTense', ifNo: ['come', 'gotten'], reason: 'have-read' }, - // does that work - { match: `(does|will|#Modal) that [work]`, group: 0, tag: 'PastTense', reason: 'does-that-work' }, - // sounds fun - { match: `[(sound|sounds)] #Adjective`, group: 0, tag: 'PresentTense', reason: 'sounds-fun' }, - // look good - { match: `[(look|looks)] #Adjective`, group: 0, tag: 'PresentTense', reason: 'looks-good' }, - // needs to learn - { match: `[(need|needs)] to #Infinitive`, group: 0, tag: 'PresentTense', reason: 'need-to-learn' }, - // stops thinking - { match: `[(start|starts|stop|stops|begin|begins)] #Gerund`, group: 0, tag: 'Verb', reason: 'starts-thinking' }, - //were under cooked - { - match: `(is|was|were) [(under|over) #PastTense]`, - group: 0, - tag: 'Adverb Adjective', - reason: 'was-under-cooked', - }, - - // damn them - { 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' }, - - // 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' }, - ]; - - // 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' }, - //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' }, - // 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' }, - // 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 - { match: 'will [be] #PastTense', group: 0, tag: 'Auxiliary', reason: 'will-be-x' }, - // been walking - { match: '[(be|been)] (#Adverb|not)+? #Gerund', group: 0, tag: 'Auxiliary', reason: 'been-walking' }, - // 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' }, - // tell me - { match: '#Imperative [(me|him|her)]', group: 0, tag: 'Reflexive', reason: 'tell-him' }, - // there is no x - { match: '(is|was) #Adverb? [no]', group: 0, tag: 'Negative', reason: 'is-no' }, - ]; - - var phrasal = [ - // ==== Phrasal ==== - //'foo-up' - { 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' }, - // walk in on - { - match: '[#Verb (in|out|up|down|off|back)] (on|in)', - ifNo: ['#Copula'], - tag: 'PhrasalVerb Particle', - reason: 'walk-in-on', - }, - //fall over - { match: '#PhrasalVerb [#PhrasalVerb]', group: 0, tag: 'Particle', reason: 'phrasal-particle' }, - // went on for - { match: '(lived|went|crept|go) [on] for', group: 0, tag: 'PhrasalVerb', reason: 'went-on' }, - // got me thinking - // { match: '(got|had) me [#Noun]', group: 0, tag: 'Verb', reason: 'got-me-gerund' }, - // help stop - { match: 'help [(stop|end|make|start)]', group: 0, tag: 'Infinitive', reason: 'help-stop' }, - // start listening - { match: '[(stop|start|finish|help)] #Gerund', group: 0, tag: 'Infinitive', reason: 'start-listening' }, - // mis-fired - // { match: '[(mis)] #Verb', group: 0, tag: 'Verb', reason: 'mis-firedsa' }, - //back it up - { - match: '#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]', - group: 0, - tag: 'Adverb', - reason: 'phrasal-pronoun-advb', - }, - ]; - - // this is really hard to do - const notIf = ['i', 'we', 'they']; //we do not go - var imperative = [ - // do not go - { match: '^do not? [#Infinitive #Particle?]', notIf, group: 0, tag: 'Imperative', reason: 'do-eat' }, - // please go - { match: '^please do? not? [#Infinitive #Particle?]', group: 0, tag: 'Imperative', reason: 'please-go' }, - // just go - { match: '^just do? not? [#Infinitive #Particle?]', group: 0, tag: 'Imperative', reason: 'just-go' }, - // do it better - { match: '^[#Infinitive] it #Comparative', notIf, group: 0, tag: 'Imperative', reason: 'do-it-better' }, - // do it again - { match: '^[#Infinitive] it (please|now|again|plz)', notIf, group: 0, tag: 'Imperative', reason: 'do-it-please' }, - // go! - // { match: '^[#Infinitive]$', group: 0, tag: 'Imperative', reason: 'go' }, - // go quickly. - { match: '^[#Infinitive] (#Adjective|#Adverb)$', group: 0, tag: 'Imperative', ifNo: ['so', 'such', 'rather', 'enough'], reason: 'go-quickly' }, - // turn down the noise - { match: '^[#Infinitive] (up|down|over) #Determiner', group: 0, tag: 'Imperative', reason: 'turn-down' }, - // eat my shorts - { match: '^[#Infinitive] (your|my|the|some|a|an)', group: 0, ifNo: 'like', tag: 'Imperative', reason: 'eat-my-shorts' }, - // tell him the story - { match: '^[#Infinitive] (him|her|it|us|me)', group: 0, tag: 'Imperative', reason: 'tell-him' }, - // avoid loud noises - { match: '^[#Infinitive] #Adjective #Noun$', group: 0, tag: 'Imperative', reason: 'avoid-loud-noises' }, - // one-word imperatives - { match: '^(go|stop|wait|hurry) please?$', tag: 'Imperative', reason: 'go' }, - // somebody call - { match: '^(somebody|everybody) [#Infinitive]', group: 0, tag: 'Imperative', reason: 'somebody-call' }, - // let's leave - { match: '^let (us|me) [#Infinitive]', group: 0, tag: 'Imperative', reason: 'lets-leave' }, - // shut the door - { 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 - { match: '^stay (out|away|back)', tag: 'Imperative', reason: 'stay-away' }, - // stay cool - { match: '^[stay] #Adjective', tag: 'Imperative', reason: 'stay-cool' }, - // keep it silent - { match: '^[keep it] #Adjective', group: 0, tag: 'Imperative', reason: 'keep-it-cool' }, - // don't be late - { match: '^do not [#Infinitive]', group: 0, tag: 'Imperative', reason: 'do-not-be' }, - // allow yourself - { match: '[#Infinitive] (yourself|yourselves)', group: 0, tag: 'Imperative', reason: 'allow-yourself' }, - ]; - - var adjGerund = [ - // that were growing - { match: '(that|which) were [%Adj|Gerund%]', group: 0, tag: 'Gerund', reason: 'that-were-growing' }, - - - // { match: '(that|which) were [%Adj|Gerund%]', group: 0, tag: 'Gerund', reason: 'that-were-growing' }, - - ]; - - // order matters - let matches$1 = [ - // u r cool - { match: 'u r', tag: '#Pronoun #Copula', reason: 'u r' }, - { match: '#Noun [(who|whom)]', group: 0, tag: 'Determiner', reason: 'captain-who' }, - - // ==== Conditions ==== - // had he survived, - { match: '[had] #Noun+ #PastTense', group: 0, tag: 'Condition', reason: 'had-he' }, - // were he to survive - { match: '[were] #Noun+ to #Infinitive', group: 0, tag: 'Condition', reason: 'were-he' }, - - //swear-words as non-expression POS - { match: 'holy (shit|fuck|hell)', tag: 'Expression', reason: 'swears-expression' }, - // well.. - { 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' }, - - // such skill - { match: '[such] (a|an|is)? #Noun', group: 0, tag: 'Determiner', reason: 'such-skill' }, - // that is - // { match: '^[that] (is|was)', group: 0, tag: 'Noun', reason: 'that-is' }, - - // sorry - { match: '(say|says|said) [sorry]', group: 0, tag: 'Expression', reason: 'say-sorry' }, - - // double-prepositions - // rush out of - { - match: '#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition', - group: 0, - ifNo: ['#Copula'],//were out - tag: 'Particle', - reason: 'rush-out', - }, - // at about - { match: '#Preposition [about]', group: 0, tag: 'Adjective', reason: 'at-about' }, - // dude we should - { match: '^[(dude|man|girl)] #Pronoun', group: 0, tag: 'Expression', reason: 'dude-i' }, - // are welcome - // { match: '#Copula [#Expression]', group: 0, tag: 'Noun', reason: 'are-welcome' }, - ]; - var misc$1 = matches$1; - - // import orgWords from './_orgWords.js' - // let orgMap = `(${orgWords.join('|')})` - - /* - const multi = [ - 'building society', - 'central bank', - 'department store', - 'institute of technology', - 'liberation army', - 'people party', - 'social club', - 'state police', - 'state university', - ] - */ - - var orgs$1 = [ - // Foo University - // { match: `#Noun ${orgMap}`, tag: 'Organization', safe: true, reason: 'foo-university' }, - // // University of Toronto - // { match: `${orgMap} of #Place`, tag: 'Organization', safe: true, reason: 'university-of-foo' }, - - // // foo regional health authority - // { match: `${orgMap} (health|local|regional)+ authority`, tag: 'Organization', reason: 'regional-health' }, - // // foo stock exchange - // { match: `${orgMap} (stock|mergantile)+ exchange`, tag: 'Organization', reason: 'stock-exchange' }, - // // foo news service - // { match: `${orgMap} (daily|evening|local)+ news service?`, tag: 'Organization', reason: 'foo-news' }, - - //John & Joe's - { match: '#Noun (&|n) #Noun', tag: 'Organization', reason: 'Noun-&-Noun' }, - // teachers union of Ontario - { match: '#Organization of the? #ProperNoun', tag: 'Organization', reason: 'org-of-place', safe: true }, - //walmart USA - { match: '#Organization #Country', tag: 'Organization', reason: 'org-country' }, - //organization - { match: '#ProperNoun #Organization', tag: 'Organization', reason: 'titlecase-org' }, - //FitBit Inc - { match: '#ProperNoun (ltd|co|inc|dept|assn|bros)', tag: 'Organization', reason: 'org-abbrv' }, - // the OCED - { match: 'the [#Acronym]', group: 0, tag: 'Organization', reason: 'the-acronym', safe: true }, - // global trade union - { - match: '(world|global|international|national|#Demonym) #Organization', - tag: 'Organization', - reason: 'global-org', - }, - // schools - { match: '#Noun+ (public|private) school', tag: 'School', reason: 'noun-public-school' }, - ]; - - var places$1 = [ - // ==== Region ==== - //West Norforlk - { - match: '(west|north|south|east|western|northern|southern|eastern)+ #Place', - tag: 'Region', - reason: 'west-norfolk', - }, - //some us-state acronyms (exlude: al, in, la, mo, hi, me, md, ok..) - { - 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', - }, - // portland oregon - { - match: 'portland [or]', - group: 0, - tag: 'Region', - reason: 'portland-or', - }, - //Foo District - { - match: '#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)', - tag: 'Region', - reason: 'foo-district', - }, - //District of Foo - { - match: '(district|region|province|municipality|territory|burough|state) of #ProperNoun', - tag: 'Region', - reason: 'district-of-Foo', - }, - // in Foo California - { - match: 'in [#ProperNoun] #Place', - group: 0, - tag: 'Place', - reason: 'propernoun-place', - }, - // ==== Address ==== - { - match: '#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)', - tag: 'Address', - reason: 'address-st', - }, - ]; - - var conjunctions = [ - // ==== Conjunctions ==== - { match: '[so] #Noun', group: 0, tag: 'Conjunction', reason: 'so-conj' }, - //how he is driving - { - match: '[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)', - group: 0, - tag: 'Conjunction', - reason: 'how-he-is-x', - }, - // when he - { match: '#Copula [(who|what|where|why|how|when)] #Noun', group: 0, tag: 'Conjunction', reason: 'when-he' }, - // says that he.. - { match: '#Verb [that] #Pronoun', group: 0, tag: 'Conjunction', reason: 'said-that-he' }, - // things that are required - { match: '#Noun [that] #Copula', group: 0, tag: 'Conjunction', reason: 'that-are' }, - // things that seem cool - { match: '#Noun [that] #Verb #Adjective', group: 0, tag: 'Conjunction', reason: 'that-seem' }, - // wasn't that wide.. - { match: '#Noun #Copula not? [that] #Adjective', group: 0, tag: 'Adverb', reason: 'that-adj' }, - - // ==== Prepositions ==== - //all students - { match: '#Verb #Adverb? #Noun [(that|which)]', group: 0, tag: 'Preposition', reason: 'that-prep' }, - //work, which has been done. - { match: '@hasComma [which] (#Pronoun|#Verb)', group: 0, tag: 'Preposition', reason: 'which-copula' }, - //folks like her - { match: '#Noun [like] #Noun', group: 0, tag: 'Preposition', reason: 'noun-like' }, - //like the time - { match: '^[like] #Determiner', group: 0, tag: 'Preposition', reason: 'like-the' }, - // really like - { match: '#Adverb [like]', group: 0, tag: 'Verb', reason: 'really-like' }, - // nothing like - { match: '(not|nothing|never) [like]', group: 0, tag: 'Preposition', reason: 'nothing-like' }, - // treat them like - { match: '#Verb #Pronoun [like]', group: 0, tag: 'Preposition', reason: 'treat-them-like' }, - - - - - // ==== Questions ==== - // where - // why - // when - // who - // whom - // whose - // what - // which - //the word 'how many' - // { match: '^(how|which)', tag: 'QuestionWord', reason: 'how-question' }, - // how-he, when the - { match: '[#QuestionWord] (#Pronoun|#Determiner)', group: 0, tag: 'Preposition', reason: 'how-he' }, - // when stolen - { match: '[#QuestionWord] #Participle', group: 0, tag: 'Preposition', reason: 'when-stolen' }, - // how is - { match: '[how] (#Determiner|#Copula|#Modal|#PastTense)', group: 0, tag: 'QuestionWord', reason: 'how-is' }, - // children who dance - { match: '#Plural [(who|which|when)] .', group: 0, tag: 'Preposition', reason: 'people-who' }, - ]; - - let matches = [].concat( - adj, - advAdj, - gerundAdj, - nounAdj, - adv, - ambigDates, - dates, - noun, - gerundNouns, - presNouns, - money, - fractions$1, - numbers$2, - person, - personName, - verbs$1, - adjVerb, - auxiliary, - phrasal, - imperative, - adjGerund, - misc$1, - orgs$1, - places$1, - conjunctions - ); - var model = { - two: { - matches, - }, - }; - - let net$1 = null; - - // runs all match/tag patterns in model.two.matches - const postTagger = function (view) { - const { world } = view; - const { model, methods } = world; - 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 => { - let t = terms[0]; - return [t.index[0], t.index[1], t.index[1] + terms.length] - }); - let m = view.update(ptrs); - m.cache(); - m.sweep(net$1); - view.uncache(); - // view.cache() - return view - }; - - var compute$1 = { postTagger }; - - const round$1 = n => Math.round(n * 100) / 100; - - function api$k (View) { - // average tagger score - View.prototype.confidence = function () { - let sum = 0; - let count = 0; - this.docs.forEach(terms => { - terms.forEach(term => { - count += 1; - sum += term.confidence || 1; - }); - }); - if (count === 0) { - return 1 - } - return round$1(sum / count) - }; - - // (re-) run the POS-tagger - View.prototype.tagger = function () { - return this.compute(['preTagger', 'contractionTwo', 'postTagger']) - }; - } - - const plugin$2 = { - api: api$k, - compute: compute$1, - model, - hooks: ['postTagger'], - }; - var postTag = plugin$2; - - const matchVerb = function (m, lemma) { - const conjugate = m.methods.two.transform.verbConjugate; - let all = conjugate(lemma, m.model); - if (m.has('#PastTense')) { - return all.PastTense - } - if (m.has('#PresentTense')) { - return all.PresentTense - } - if (m.has('#Gerund')) { - return all.Gerund - } - return lemma - }; - - const swapVerb = function (m, lemma) { - let str = lemma; - if (!m.has('#Infinitive')) { - str = matchVerb(m, lemma); - } - m.replaceWith(str); - }; - var swapVerb$1 = swapVerb; - - const swapNoun = function (m, lemma) { - let str = lemma; - if (m.has('#Plural')) { - const toPlural = m.methods.two.transform.nounToPlural; - str = toPlural(lemma, m.model); - } - m.replaceWith(str); - }; - - const swapAdverb = function (m, lemma) { - const toAdverb = m.methods.two.transform.adjToAdverb; - let str = lemma; - let adv = toAdverb(str); - if (adv) { - m.replaceWith(adv); - } - }; - - const swap$1 = function (from, to, tag) { - let m = this.match(`{${from}}`); - // guard against some homonyms - if (tag) { - m = m.if(tag); - } - if (m.has('#Verb')) { - return swapVerb$1(m, to) - } - if (m.has('#Noun')) { - return swapNoun(m, to) - } - if (m.has('#Adverb')) { - return swapAdverb(m, to) - } - return this - }; - var swap$2 = swap$1; - - const api$j = function (View) { - View.prototype.swap = swap$2; - }; - - var swap = { - api: api$j - }; - - nlp$1.plugin(preTag); //~103kb - nlp$1.plugin(contractionTwo); // - nlp$1.plugin(postTag); //~33kb - nlp$1.plugin(swap); // - - const clauses = function (n) { - // an awkward way to disambiguate a comma use - let commas = this.if('@hasComma') - .ifNo('@hasComma @hasComma') //fun, cool... - .ifNo('@hasComma (and|or) .') //cool, and fun - .ifNo('(#City && @hasComma) #Country') //'toronto, canada' - .ifNo('(#WeekDay && @hasComma) #Date') //'tuesday, march 2nd' - .ifNo('(#Date+ && @hasComma) #Value') //'july 6, 1992' - .ifNo('@hasComma (too|also)$') //at end of sentence - .match('@hasComma'); - let found = this.splitAfter(commas); - - // let quotes = found.quotations() - // found = found.splitOn(quotes) - - // let parentheses = found.parentheses() - // found = found.splitOn(parentheses) - - // it is cool and it is .. - let conjunctions = found.if('#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb').match('#Conjunction'); - found = found.splitBefore(conjunctions); - - // if it is this then that - let condition = found.if('if .{2,9} then .').match('then'); - found = found.splitBefore(condition); - - // misc clause partitions - found = found.splitBefore('as well as .'); - found = found.splitBefore('such as .'); - found = found.splitBefore('in addition to .'); - - // semicolons, dashes - found = found.splitAfter('@hasSemicolon'); - found = found.splitAfter('@hasDash'); - - // passive voice verb - '.. which was robbed is empty' - // let passive = found.match('#Noun (which|that) (was|is) #Adverb? #PastTense #Adverb?') - // if (passive.found) { - // found = found.splitAfter(passive) - // } - // //which the boy robbed - // passive = found.match('#Noun (which|that) the? #Noun+ #Adverb? #PastTense #Adverb?') - // if (passive.found) { - // found = found.splitAfter(passive) - // } - // does there appear to have relative/subordinate clause still? - let tooLong = found.filter(d => d.wordCount() > 5 && d.match('#Verb+').length >= 2); - if (tooLong.found) { - let m = tooLong.splitAfter('#Noun .* #Verb .* #Noun+'); - found = found.splitOn(m.eq(0)); - } - - if (typeof n === 'number') { - found = found.get(n); - } - return found - }; - - var clauses$1 = clauses; - - const chunks = function () { - let carry = []; - let ptr = null; - let current = null; - this.docs.forEach(terms => { - terms.forEach(term => { - // start a new chunk - if (term.chunk !== current) { - if (ptr) { - ptr[2] = term.index[1]; - carry.push(ptr); - } - current = term.chunk; - ptr = [term.index[0], term.index[1]]; - } - }); - }); - if (ptr) { - carry.push(ptr); - } - let parts = this.update(carry); - // split up verb-phrases, and noun-phrases - parts = parts.map(c => { - if (c.has('')) { - return c.nouns() - } - // if (c.has('')) { - // if (c.verbs().length > 1) { - // console.log(c.text()) - // } - // } - return c - }); - return parts - }; - var getChunks = chunks; - - const api$h = function (View) { - View.prototype.chunks = getChunks; - View.prototype.clauses = clauses$1; - }; - var api$i = api$h; - - const byWord = { - this: 'Noun', - then: 'Pivot' - }; - - // simply chunk Nouns as - const easyMode = function (document) { - for (let n = 0; n < document.length; n += 1) { - for (let t = 0; t < document[n].length; t += 1) { - let term = document[n][t]; - - if (byWord.hasOwnProperty(term.normal) === true) { - term.chunk = byWord[term.normal]; - continue - } - if (term.tags.has('Verb')) { - term.chunk = 'Verb'; - continue - } - if (term.tags.has('Noun') || term.tags.has('Determiner')) { - term.chunk = 'Noun'; - continue - } - // 100 cats - if (term.tags.has('Value')) { - term.chunk = 'Noun'; - continue - } - // - if (term.tags.has('QuestionWord')) { - term.chunk = 'Pivot'; - continue - } - - } - } - }; - var easyMode$1 = easyMode; - - // simply chunk Nouns as - const byNeighbour = function (document) { - for (let n = 0; n < document.length; n += 1) { - for (let t = 0; t < document[n].length; t += 1) { - let term = document[n][t]; - if (term.chunk) { - continue - } - // based on next-term - let onRight = document[n][t + 1]; - // based on last-term - let onLeft = document[n][t - 1]; - - //'is cool' vs 'the cool dog' - if (term.tags.has('Adjective')) { - // 'is cool' - if (onLeft && onLeft.tags.has('Copula')) { - term.chunk = 'Adjective'; - continue - } - // 'the cool' - if (onLeft && onLeft.tags.has('Determiner')) { - term.chunk = 'Noun'; - continue - } - // 'cool dog' - if (onRight && onRight.tags.has('Noun')) { - term.chunk = 'Noun'; - continue - } - continue - } - // 'really swimming' vs 'really cool' - if (term.tags.has('Adverb') || term.tags.has('Negative')) { - if (onLeft && onLeft.tags.has('Adjective')) { - term.chunk = 'Adjective'; - continue - } - if (onLeft && onLeft.tags.has('Verb')) { - term.chunk = 'Verb'; - continue - } - - if (onRight && onRight.tags.has('Adjective')) { - term.chunk = 'Adjective'; - continue - } - if (onRight && onRight.tags.has('Verb')) { - term.chunk = 'Verb'; - continue - } - } - } - } - }; - var byNeighbour$1 = byNeighbour; - - const rules = [ - // === Conjunction === - // that the houses - { match: '[that] #Determiner #Noun', group: 0, chunk: 'Pivot' }, - // estimated that - { match: '#PastTense [that]', group: 0, chunk: 'Pivot' }, - - // === Adjective === - // was really nice - { match: '#Copula #Adverb+? [#Adjective]', group: 0, chunk: 'Adjective' }, - // was nice - // { match: '#Copula [#Adjective]', group: 0, chunk: 'Adjective' }, - // nice and cool - { match: '#Adjective and #Adjective', chunk: 'Adjective' }, - // really nice - // { match: '#Adverb+ #Adjective', chunk: 'Adjective' }, - - // === Verb === - // quickly run - // { match: '#Adverb+ {Verb}', chunk: 'Verb' }, - // quickly and suddenly run - { match: '#Adverb+ and #Adverb #Verb', chunk: 'Verb' }, - // run quickly - // { match: '{Verb} #Adverb+', chunk: 'Verb' }, - // sitting near - { match: '#Gerund #Adjective', chunk: 'Verb' }, - // going to walk - { match: '#Gerund to #Verb', chunk: 'Verb' }, - // is no - // { match: '#Copula no', chunk: 'Verb' }, - // had not - // { match: '#Verb #Negative', chunk: 'Verb' }, - // not seen - // { match: '#Negative #Verb', chunk: 'Verb' }, - // not really - // { match: '#Negative #Adverb ', chunk: 'Verb' }, - // really not - { match: '#Adverb #Negative', chunk: 'Verb' }, - // want to see - { match: '(want|wants|wanted) to #Infinitive', chunk: 'Verb' }, - // walk ourselves - { match: '#Verb #Reflexive', chunk: 'Verb' }, - // tell him the story - { match: '#PresentTense [#Pronoun] #Determiner', group: 0, chunk: 'Verb' }, - // tries to walk - { match: '#Verb [to] #Adverb? #Infinitive', group: 0, chunk: 'Verb' }, - // upon seeing - { match: '[#Preposition] #Gerund', group: 0, chunk: 'Verb' }, - - // === Noun === - // the brown fox - // { match: '#Determiner #Adjective+ #Noun', chunk: 'Noun' }, - // the fox - // { match: '(the|this) ', chunk: 'Noun' }, - // brown fox - // { match: '#Adjective+ ', chunk: 'Noun' }, - // --- of --- - // son of a gun - { match: '#Noun of #Determiner? #Noun', chunk: 'Noun' }, - // --- in --- - { match: '#Noun in #Determiner? #Noun', chunk: 'Noun' }, - // indoor and outdoor seating - { match: '#Singular and #Determiner? #Singular', chunk: 'Noun' }, - // that is why - // { match: '[that] (is|was)', group: 0, chunk: 'Noun' }, - ]; - - let net = null; - const matcher = function (view, _, world) { - const { methods, model } = world; - net = net || methods.one.buildNet(rules, world); - view.sweep(net); - }; - var matcher$1 = matcher; - - const setChunk = function (term, chunk) { - const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; - if (env.DEBUG_CHUNKS) { - let str = (term.normal + "'").padEnd(8); - console.log(` | '${str} → \x1b[34m${chunk.padEnd(12)}\x1b[0m \x1b[2m -fallback- \x1b[0m`); // eslint-disable-line - } - term.chunk = chunk; - }; - - // ensure everything has a chunk - const fallback = function (document) { - for (let n = 0; n < document.length; n += 1) { - for (let t = 0; t < document[n].length; t += 1) { - let term = document[n][t]; - if (term.chunk === undefined) { - // conjunctions stand alone - if (term.tags.has('Conjunction')) { - setChunk(term, 'Pivot'); - } else if (term.tags.has('Preposition')) { - setChunk(term, 'Pivot'); - } else if (term.tags.has('Adverb')) { - setChunk(term, 'Verb'); - } - // just take the chunk on the right? - // else if (document[n][t + 1] && document[n][t + 1].chunk) { - // setChunk(term, document[n][t + 1].chunk) - // } - // // or take the chunk on the left - // else if (document[n][t - 1] && document[n][t - 1].chunk) { - // setChunk(term, document[n][t - 1].chunk) - else { - // ¯\_(ツ)_/¯ - term.chunk = 'Noun'; - } - } - } - } - }; - var fallback$1 = fallback; - - const fixUp = function (docs) { - let byChunk = []; - let current = null; - docs.forEach(terms => { - // ensure an adjective chunk is preceded by a copula - for (let i = 0; i < terms.length; i += 1) { - let term = terms[i]; - if (current && term.chunk === current) { - byChunk[byChunk.length - 1].terms.push(term); - } else { - byChunk.push({ chunk: term.chunk, terms: [term] }); - current = term.chunk; - } - } - }); - // ensure every verb-phrase actually has a verb - byChunk.forEach(c => { - if (c.chunk === 'Verb') { - const hasVerb = c.terms.find(t => t.tags.has('Verb')); - if (!hasVerb) { - c.terms.forEach(t => t.chunk = null); - } - } - }); - }; - var fixUp$1 = fixUp; - - /* Chunks: - Noun - Verb - Adjective - Pivot - */ - - const findChunks = function (view) { - const { document, world } = view; - easyMode$1(document); - byNeighbour$1(document); - matcher$1(view, document, world); - // matcher(view, document, world) //run it 2nd time - fallback$1(document); - fixUp$1(document); - }; - var compute = { chunks: findChunks }; - - var chunker = { - compute: compute, - api: api$i, - hooks: ['chunks'], - }; - - // return the nth elem of a doc - const getNth$f = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - const apostropheS = /'s$/; - - const find$b = function (doc) { - let m = doc.match('#Possessive+'); - // expand it to include 'john smith's' - if (m.has('#Person')) { - m = m.growLeft('#Person+'); - } - if (m.has('#Place')) { - m = m.growLeft('#Place+'); - } - if (m.has('#Organization')) { - m = m.growLeft('#Organization+'); - } - return m - }; - - - const api$g = function (View) { - - class Possessives extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Possessives'; - } - strip() { - this.docs.forEach(terms => { - terms.forEach(term => { - term.text = term.text.replace(apostropheS, ''); - term.normal = term.normal.replace(apostropheS, ''); - }); - }); - return this - } - } - - View.prototype.possessives = function (n) { - let m = find$b(this); - m = getNth$f(m, n); - return new Possessives(m.document, m.pointer) - }; - }; - var addPossessives = api$g; - - const hasOpen$1 = /\(/; - const hasClosed$1 = /\)/; - - const findEnd$1 = function (terms, i) { - for (; i < terms.length; i += 1) { - if (terms[i].post && hasClosed$1.test(terms[i].post)) { - return i - } - } - return null - }; - - const find$a = function (doc) { - let ptrs = []; - doc.docs.forEach(terms => { - for (let i = 0; i < terms.length; i += 1) { - let term = terms[i]; - if (term.pre && hasOpen$1.test(term.pre)) { - let end = findEnd$1(terms, i); - if (end !== null) { - let [n, start] = terms[i].index; - ptrs.push([n, start, end + 1, terms[i].id]); - i = end; - } - } - } - }); - return doc.update(ptrs) - }; - - const strip$1 = function (m) { - m.docs.forEach(terms => { - terms[0].pre = terms[0].pre.replace(hasOpen$1, ''); - let last = terms[terms.length - 1]; - last.post = last.post.replace(hasClosed$1, ''); - }); - return m - }; - - const getNth$e = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - const api$f = function (View) { - - class Parentheses extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Possessives'; - } - strip() { - return strip$1(this) - } - } - - View.prototype.parentheses = function (n) { - let m = find$a(this); - m = getNth$e(m, n); - return new Parentheses(m.document, m.pointer) - }; - }; - var addParentheses = api$f; - - const pairs = { - '\u0022': '\u0022', // 'StraightDoubleQuotes' - '\uFF02': '\uFF02', // 'StraightDoubleQuotesWide' - '\u0027': '\u0027', // 'StraightSingleQuotes' - '\u201C': '\u201D', // 'CommaDoubleQuotes' - '\u2018': '\u2019', // 'CommaSingleQuotes' - '\u201F': '\u201D', // 'CurlyDoubleQuotesReversed' - '\u201B': '\u2019', // 'CurlySingleQuotesReversed' - '\u201E': '\u201D', // 'LowCurlyDoubleQuotes' - '\u2E42': '\u201D', // 'LowCurlyDoubleQuotesReversed' - '\u201A': '\u2019', // 'LowCurlySingleQuotes' - '\u00AB': '\u00BB', // 'AngleDoubleQuotes' - '\u2039': '\u203A', // 'AngleSingleQuotes' - // Prime 'non quotation' - '\u2035': '\u2032', // 'PrimeSingleQuotes' - '\u2036': '\u2033', // 'PrimeDoubleQuotes' - '\u2037': '\u2034', // 'PrimeTripleQuotes' - // Prime 'quotation' variation - '\u301D': '\u301E', // 'PrimeDoubleQuotes' - '\u0060': '\u00B4', // 'PrimeSingleQuotes' - '\u301F': '\u301E', // 'LowPrimeDoubleQuotesReversed' - }; - - const hasOpen = RegExp('(' + Object.keys(pairs).join('|') + ')'); - const hasClosed = RegExp('(' + Object.values(pairs).join('|') + ')'); - - const findEnd = function (terms, i) { - const have = terms[i].pre.match(hasOpen)[0] || ''; - if (!have || !pairs[have]) { - return null - } - const want = pairs[have]; - for (; i < terms.length; i += 1) { - if (terms[i].post && terms[i].post.match(want)) { - return i - } - } - return null - }; - - const find$9 = function (doc) { - let ptrs = []; - doc.docs.forEach(terms => { - for (let i = 0; i < terms.length; i += 1) { - let term = terms[i]; - if (term.pre && hasOpen.test(term.pre)) { - let end = findEnd(terms, i); - if (end !== null) { - let [n, start] = terms[i].index; - ptrs.push([n, start, end + 1, terms[i].id]); - i = end; - } - } - } - }); - return doc.update(ptrs) - }; - - const strip = function (m) { - m.docs.forEach(terms => { - terms[0].pre = terms[0].pre.replace(hasOpen, ''); - let lastTerm = terms[terms.length - 1]; - lastTerm.post = lastTerm.post.replace(hasClosed, ''); - }); - }; - - const getNth$d = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - const api$e = function (View) { - - class Quotations extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Possessives'; - } - strip() { - return strip(this) - } - } - - View.prototype.quotations = function (n) { - let m = find$9(this); - m = getNth$d(m, n); - return new Quotations(m.document, m.pointer) - }; - }; - var addQuotations = api$e; - - // return the nth elem of a doc - const getNth$c = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - const hasPeriod = /\./g; - - const api$d = function (View) { - - class Acronyms extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Acronyms'; - } - strip() { - this.docs.forEach(terms => { - terms.forEach(term => { - term.text = term.text.replace(hasPeriod, ''); - term.normal = term.normal.replace(hasPeriod, ''); - }); - }); - return this - } - addPeriods() { - this.docs.forEach(terms => { - terms.forEach(term => { - term.text = term.text.replace(hasPeriod, ''); - term.normal = term.normal.replace(hasPeriod, ''); - term.text = term.text.split('').join('.') + '.'; - term.normal = term.normal.split('').join('.') + '.'; - }); - }); - return this - } - } - - View.prototype.acronyms = function (n) { - let m = this.match('#Acronym'); - m = getNth$c(m, n); - return new Acronyms(m.document, m.pointer) - }; - }; - var addAcronyms = api$d; - - // return the nth elem of a doc - const getNth$b = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - const api$c = function (View) { - - class Adverbs extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Adverbs'; - } - json(opts = {}) { - const toAdj = this.methods.two.transform.advToAdjective; - opts.normal = true; - return this.map(m => { - let json = m.toView().json(opts)[0] || {}; - json.adverb = { - adjective: toAdj(json.normal) - }; - return json - }, []) - } - } - - View.prototype.adverbs = function (n) { - let m = this.match('#Adverb'); - m = getNth$b(m, n); - return new Adverbs(m.document, m.pointer) - }; - }; - var addAdverbs = api$c; - - // return the nth elem of a doc - const getNth$a = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - // guard against superlative+comparative forms - const toRoot = function (adj) { - const { adjFromComparative, adjFromSuperlative } = adj.methods.two.transform; - let str = adj.text('normal'); - if (adj.has('#Comparative')) { - return adjFromComparative(str, adj.model) - } - if (adj.has('#Superlative')) { - return adjFromSuperlative(str, adj.model) - } - return str - }; - - const api$b = function (View) { - - class Adjectives extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Adjectives'; - } - json(opts = {}) { - const { adjToAdverb, adjToNoun, adjToSuperlative, adjToComparative } = this.methods.two.transform; - opts.normal = true; - return this.map(m => { - let json = m.toView().json(opts)[0] || {}; - let str = toRoot(m); - json.adjective = { - adverb: adjToAdverb(str), - noun: adjToNoun(str), - superlative: adjToSuperlative(str, this.model), - comparative: adjToComparative(str, this.model), - }; - return json - }, []) - } - adverbs() { - return this.before('#Adverb+$').concat(this.after('^#Adverb+')) - } - - toComparative(n) { - const { adjToComparative } = this.methods.two.transform; - return getNth$a(this, n).map(adj => { - let root = toRoot(adj); - let str = adjToComparative(root, this.model); - return adj.replaceWith(str) - }) - } - toSuperlative(n) { - const { adjToSuperlative } = this.methods.two.transform; - return getNth$a(this, n).map(adj => { - let root = toRoot(adj); - let str = adjToSuperlative(root, this.model); - return adj.replaceWith(str) - }) - } - toAdverb(n) { - const { adjToAdverb } = this.methods.two.transform; - return getNth$a(this, n).map(adj => { - let root = toRoot(adj); - let str = adjToAdverb(root, this.model); - return adj.replaceWith(str) - }) - } - toNoun(n) { - const { adjToNoun } = this.methods.two.transform; - return getNth$a(this, n).map(adj => { - let root = toRoot(adj); - let str = adjToNoun(root, this.model); - return adj.replaceWith(str) - }) - } - } - - View.prototype.adjectives = function (n) { - let m = this.match('#Adjective'); - m = getNth$a(m, n); - return new Adjectives(m.document, m.pointer) - }; - View.prototype.superlatives = function (n) { - let m = this.match('#Superlative'); - m = getNth$a(m, n); - return new Adjectives(m.document, m.pointer) - }; - View.prototype.comparatives = function (n) { - let m = this.match('#Comparative'); - m = getNth$a(m, n); - return new Adjectives(m.document, m.pointer) - }; - }; - var addAdjectives = api$b; - - // return the nth elem of a doc - const getNth$9 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - /** return anything tagged as a phone number */ - const phoneNumbers = function (n) { - let m = this.splitAfter('@hasComma'); - m = m.match('#PhoneNumber+'); - m = getNth$9(m, n); - return m - }; - - // setup easy helper methods - const selections = [ - ['hyphenated', '@hasHyphen .'], - ['hashTags', '#HashTag'], - ['emails', '#Email'], - ['emoji', '#Emoji'], - ['emoticons', '#Emoticon'], - ['atMentions', '#AtMention'], - ['urls', '#Url'], - ['pronouns', '#Pronoun'], - ['conjunctions', '#Conjunction'], - ['prepositions', '#Preposition'], - ['abbreviations', '#Abbreviation'], - ['honorifics', '#Honorific'], - ]; - - // aliases - let aliases = [ - ['emojis', 'emoji'], - ['atmentions', 'atMentions'], - ]; - - const addMethods = function (View) { - // add a list of new helper methods - selections.forEach(a => { - View.prototype[a[0]] = function (n) { - let m = this.match(a[1]); - return typeof n === 'number' ? m.get(n) : m - }; - }); - View.prototype.phoneNumbers = phoneNumbers; - // add aliases - aliases.forEach(a => { - View.prototype[a[0]] = View.prototype[a[1]]; - }); - }; - - var addSelections = addMethods; - - var misc = { - api: function (View) { - addSelections(View); - addPossessives(View); - addParentheses(View); - addQuotations(View); - addAdjectives(View); - addAdverbs(View); - addAcronyms(View); - } - }; - - const termLoop = function (view, cb) { - view.docs.forEach(terms => { - terms.forEach(cb); - }); - }; - - var methods = { - // remove titlecasing, uppercase - 'case': (doc) => { - termLoop(doc, (term) => { - term.text = term.text.toLowerCase(); - }); - }, - // visually romanize/anglicize 'Björk' into 'Bjork'. - 'unicode': (doc) => { - const world = doc.world; - const killUnicode = world.methods.one.killUnicode; - termLoop(doc, (term) => term.text = killUnicode(term.text, world)); - }, - // remove hyphens, newlines, and force one space between words - 'whitespace': (doc) => { - termLoop(doc, (term) => { - // one space between words - term.post = term.post.replace(/\s+/g, ' '); - term.post = term.post.replace(/\s([.,?!:;])/g, '$1');//no whitespace before a period, etc - // no whitepace before a word - term.pre = term.pre.replace(/\s+/g, ''); - }); - }, - // remove commas, semicolons - but keep sentence-ending punctuation - 'punctuation': (doc) => { - termLoop(doc, (term) => { - // turn dashes to spaces - term.post = term.post.replace(/[–—-]/g, ' '); - // remove comma, etc - term.post = term.post.replace(/[,:;]/g, ''); - // remove elipses - term.post = term.post.replace(/\.{2,}/g, ''); - // remove repeats - term.post = term.post.replace(/\?{2,}/g, '?'); - term.post = term.post.replace(/!{2,}/g, '!'); - // replace ?! - term.post = term.post.replace(/\?!+/g, '?'); - }); - // trim end - let docs = doc.docs; - let terms = docs[docs.length - 1]; - if (terms && terms.length > 0) { - let lastTerm = terms[terms.length - 1]; - lastTerm.post = lastTerm.post.replace(/ /g, ''); - } - }, - - // ====== subsets === - - // turn "isn't" to "is not" - 'contractions': (doc) => { - doc.contractions().expand(); - }, - //remove periods from acronyms, like 'F.B.I.' - 'acronyms': (doc) => { - doc.acronyms().strip(); - }, - //remove words inside brackets (like these) - 'parentheses': (doc) => { - doc.parentheses().strip(); - }, - // turn "Google's tax return" to "Google tax return" - 'possessives': (doc) => { - doc.possessives().strip(); - }, - // turn "tax return" to tax return - 'quotations': (doc) => { - doc.quotations().strip(); - }, - - // remove them - 'emoji': (doc) => { - doc.emojis().remove(); - }, - //turn 'Vice Admiral John Smith' to 'John Smith' - 'honorifics': (doc) => { - doc.match('#Honorific+ #Person').honorifics().remove(); - }, - // remove needless adverbs - 'adverbs': (doc) => { - doc.adverbs().remove(); - }, - - // turn "batmobiles" into "batmobile" - 'nouns': (doc) => { - doc.nouns().toSingular(); - }, - // turn all verbs into Infinitive form - "I walked" → "I walk" - 'verbs': (doc) => { - doc.verbs().toInfinitive(); - }, - // turn "fifty" into "50" - 'numbers': (doc) => { - doc.numbers().toNumber(); - }, - - }; - - // turn presets into key-vals - const split = (str) => { - return str.split('|').reduce((h, k) => { - h[k] = true; - return h - }, {}) - }; - - const light = 'unicode|punctuation|whitespace|acronyms'; - const medium = '|case|contractions|parentheses|quotations|emoji|honorifics'; - const heavy = '|possessives|adverbs|nouns|verbs'; - const presets = { - light: split(light), - medium: split(light + medium), - heavy: split(light + medium + heavy) - }; - - function api$a (View) { - View.prototype.normalize = function (opts = 'light') { - if (typeof opts === 'string') { - opts = presets[opts]; - } - // run each method - Object.keys(opts).forEach(fn => { - if (methods.hasOwnProperty(fn)) { - methods[fn](this, opts[fn]); - } - }); - return this - }; - } - - var normalize = { - api: api$a - }; - - const findNouns = function (doc) { - let m = doc.match(''); - let commas = m.match('@hasComma'); - // allow toronto, ontario - commas = commas.not('#Place'); - if (commas.found) { - m = m.splitAfter(commas); - } - // yo there - m = m.splitOn('#Expression'); - // these are individual nouns - m = m.splitOn('(he|she|we|you|they)'); - // a client i saw - m = m.splitOn('(#Noun|#Adjective) [#Pronoun]', 0); - // give him the best - m = m.splitOn('[#Pronoun] (#Determiner|#Value)', 0); - // the noise the slide makes - m = m.splitBefore('#Noun [(the|a|an)] #Adjective? #Noun', 0); - // here spencer slept - m = m.splitOn('[(here|there)] #Noun', 0); - // put it there - m = m.splitOn('[#Noun] (here|there)', 0); - // its great purposes - // m = m.splitAfter('#Possessive') - // his excuses - // m = m.splitAfter('(his|hers|yours|ours|theirs)') - //ensure there's actually a noun - m = m.if('#Noun'); - return m - }; - var find$8 = findNouns; - - // https://www.trentu.ca/history/subordinate-clause-and-complex-sentence - const list$1 = [ - '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', - ]; - - const isSubordinate = function (m) { - // athletes from toronto, days since december - if (m.before('#Preposition$').found) { - return true - } - let leadIn = m.before(); - if (!leadIn.found) { - return false - } - for (let i = 0; i < list$1.length; i += 1) { - if (m.has(list$1[i])) { - return true - } - } - return false - }; - var isSubordinate$1 = isSubordinate; - - const notPlural = '(#Pronoun|#Place|#Value|#Person|#Uncountable|#Month|#WeekDay|#Holiday|#Possessive)'; - - const isPlural$2 = function (m, root) { - // const { looksPlural } = m.world.methods.two - if (m.has('#Plural')) { - return true - } - // two singular nouns are plural noun phrase - if (m.has('#Noun and #Noun')) { - return true - } - if (m.has('(we|they)')) { - return true - } - // these can't be plural - if (root.has(notPlural) === true) { - return false - } - if (m.has('#Singular')) { - return false - } - // word-reg fallback - let str = root.text('normal'); - // ends with a brutal s fallback - return str.length > 3 && str.endsWith('s') && !str.endsWith('ss') - }; - var isPlural$3 = isPlural$2; - - const getRoot$1 = function (m) { - let tmp = m.clone(); - tmp = tmp.match('#Noun+'); - tmp = tmp.remove('(#Adjective|#Preposition|#Determiner|#Value)'); - // team's captain - // if (tmp.has('#Possessive .? #Noun')) { - tmp = tmp.not('#Possessive'); - // } - return tmp.first() - }; - - const parseNoun = function (m) { - let root = getRoot$1(m); - return { - determiner: m.match('#Determiner').eq(0), - adjectives: m.match('#Adjective'), - number: m.values(), - isPlural: isPlural$3(m, root), - isSubordinate: isSubordinate$1(m), - root: root, - } - }; - var parseNoun$1 = parseNoun; - - const toText$2 = m => m.text(); - const toArray$1 = m => m.json({ terms: false, normal: true }).map(s => s.normal); - - const getNum = function (m) { - let num = null; - if (!m.found) { - return num - } - let val = m.values(0); - if (val.found) { - let obj = val.parse()[0] || {}; - return obj.num - } - return num - }; - - const toJSON$2 = function (m) { - let res = parseNoun$1(m); - return { - root: toText$2(res.root), - number: getNum(res.number), - determiner: toText$2(res.determiner), - adjectives: toArray$1(res.adjectives), - isPlural: res.isPlural, - isSubordinate: res.isSubordinate, - } - }; - var toJSON$3 = toJSON$2; - - const keep$7 = { tags: true }; - - const hasPlural = function (parsed) { - let { root } = parsed; - if (root.has('^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$')) { - return false - } - return true - }; - - const toPlural = function (m, parsed) { - // already plural? - if (parsed.isPlural === true) { - return m - } - // is a plural appropriate? - if (!hasPlural(parsed)) { - return m - } - const { methods, model } = m.world; - const { nounToPlural } = methods.two.transform; - // inflect the root noun - let str = parsed.root.text('normal'); - let plural = nounToPlural(str, model); - m.match(parsed.root).replaceWith(plural, keep$7).tag('Plural', 'toPlural'); - // should we change the determiner/article? - if (parsed.determiner.has('(a|an)')) { - // 'a captain' -> 'the captains' - m.replace(parsed.determiner, 'the', keep$7); - } - return m - }; - var toPlural$1 = toPlural; - - const keep$6 = { tags: true }; - - const toSingular = function (m, parsed) { - // already singular? - if (parsed.isPlural === false) { - return m - } - const { methods, model } = m.world; - const { nounToSingular } = methods.two.transform; - // inflect the root noun - let str = parsed.root.text('normal'); - let single = nounToSingular(str, model); - m.replace(parsed.root, single, keep$6).tag('Singular', 'toPlural'); - // should we change the determiner/article? - // m.debug() - return m - }; - var toSingular$1 = toSingular; - - // return the nth elem of a doc - const getNth$8 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - // const isObject = val => Object.prototype.toString.call(val) === '[object Object]' - - const api$8 = function (View) { - class Nouns extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Nouns'; - } - - parse(n) { - return getNth$8(this, n).map(parseNoun$1) - } - - json(opts = {}) { - return this.map(m => { - let json = m.toView().json(opts)[0] || {}; - if (opts && opts.noun !== true) { - json.noun = toJSON$3(m); - } - return json - }, []) - } - - isPlural(n) { - let arr = this.filter(m => parseNoun$1(m).isPlural); - return getNth$8(arr, n) - } - - adjectives(n) { - let list = this.update([]); - this.forEach(m => { - let adj = parseNoun$1(m).adjectives; - if (adj.found) { - list = list.concat(adj); - } - }); - return getNth$8(list, n) - } - - toPlural(n) { - return getNth$8(this, n).map(m => { - return toPlural$1(m, parseNoun$1(m)) - }) - // return new Nouns(all.document, all.pointer) - } - - toSingular(n) { - return getNth$8(this, n).map(m => { - let res = parseNoun$1(m); - return toSingular$1(m, res) - }) - } - // create a new View, from this one - update(pointer) { - let m = new Nouns(this.document, pointer); - m._cache = this._cache; // share this full thing - return m - } - } - View.prototype.nouns = function (n) { - let m = find$8(this); - m = getNth$8(m, n); - return new Nouns(this.document, m.pointer) - }; - }; - var api$9 = api$8; - - var nouns = { - api: api$9, - }; - - const findFractions = function (doc, n) { - // five eighths - let m = doc.match('#Fraction+'); - // remove 'two and five eights' - m = m.filter(r => { - return !r.lookBehind('#Value and$').found - }); - // thirty seconds - m = m.notIf('#Value seconds'); - - if (typeof n === 'number') { - m = m.eq(n); - } - return m - }; - var find$7 = findFractions; - - //support global multipliers, like 'half-million' by doing 'million' then multiplying by 0.5 - const findModifiers = str => { - const mults = [ - { - reg: /^(minus|negative)[\s-]/i, - mult: -1, - }, - { - reg: /^(a\s)?half[\s-](of\s)?/i, - mult: 0.5, - }, - // { - // reg: /^(a\s)?quarter[\s\-]/i, - // mult: 0.25 - // } - ]; - for (let i = 0; i < mults.length; i++) { - if (mults[i].reg.test(str) === true) { - return { - amount: mults[i].mult, - str: str.replace(mults[i].reg, ''), - } - } - } - return { - amount: 1, - str: str, - } - }; - - var findModifiers$1 = findModifiers; - - var words = { - ones: { - zeroth: 0, - first: 1, - second: 2, - third: 3, - fourth: 4, - fifth: 5, - sixth: 6, - seventh: 7, - eighth: 8, - ninth: 9, - zero: 0, - one: 1, - two: 2, - three: 3, - four: 4, - five: 5, - six: 6, - seven: 7, - eight: 8, - nine: 9, - }, - teens: { - tenth: 10, - eleventh: 11, - twelfth: 12, - thirteenth: 13, - fourteenth: 14, - fifteenth: 15, - sixteenth: 16, - seventeenth: 17, - eighteenth: 18, - nineteenth: 19, - ten: 10, - eleven: 11, - twelve: 12, - thirteen: 13, - fourteen: 14, - fifteen: 15, - sixteen: 16, - seventeen: 17, - eighteen: 18, - nineteen: 19, - }, - tens: { - twentieth: 20, - thirtieth: 30, - fortieth: 40, - fourtieth: 40, - fiftieth: 50, - sixtieth: 60, - seventieth: 70, - eightieth: 80, - ninetieth: 90, - twenty: 20, - thirty: 30, - forty: 40, - fourty: 40, - fifty: 50, - sixty: 60, - seventy: 70, - eighty: 80, - ninety: 90, - }, - multiples: { - hundredth: 100, - thousandth: 1000, - millionth: 1e6, - billionth: 1e9, - trillionth: 1e12, - quadrillionth: 1e15, - quintillionth: 1e18, - sextillionth: 1e21, - septillionth: 1e24, - hundred: 100, - thousand: 1000, - million: 1e6, - billion: 1e9, - trillion: 1e12, - quadrillion: 1e15, - quintillion: 1e18, - sextillion: 1e21, - septillion: 1e24, - grand: 1000, - }, - }; - - //prevent things like 'fifteen ten', and 'five sixty' - const isValid = (w, has) => { - if (words.ones.hasOwnProperty(w)) { - if (has.ones || has.teens) { - return false - } - } else if (words.teens.hasOwnProperty(w)) { - if (has.ones || has.teens || has.tens) { - return false - } - } else if (words.tens.hasOwnProperty(w)) { - if (has.ones || has.teens || has.tens) { - return false - } - } - return true - }; - var isValid$1 = isValid; - - //concatenate into a string with leading '0.' - const parseDecimals = function (arr) { - let str = '0.'; - for (let i = 0; i < arr.length; i++) { - let w = arr[i]; - if (words.ones.hasOwnProperty(w) === true) { - str += words.ones[w]; - } else if (words.teens.hasOwnProperty(w) === true) { - str += words.teens[w]; - } else if (words.tens.hasOwnProperty(w) === true) { - str += words.tens[w]; - } else if (/^[0-9]$/.test(w) === true) { - str += w; - } else { - return 0 - } - } - return parseFloat(str) - }; - - var parseDecimals$1 = parseDecimals; - - //parse a string like "4,200.1" into Number 4200.1 - const parseNumeric$1 = str => { - //remove ordinal - 'th/rd' - str = str.replace(/1st$/, '1'); - str = str.replace(/2nd$/, '2'); - str = str.replace(/3rd$/, '3'); - str = str.replace(/([4567890])r?th$/, '$1'); - //remove prefixes - str = str.replace(/^[$€¥£¢]/, ''); - //remove suffixes - str = str.replace(/[%$€¥£¢]$/, ''); - //remove commas - str = str.replace(/,/g, ''); - //split '5kg' from '5' - str = str.replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/, '$1'); - return str - }; - - var parseNumeric$2 = parseNumeric$1; - - const improperFraction = /^([0-9,. ]+)\/([0-9,. ]+)$/; - - //some numbers we know - const casualForms = { - 'a few': 3, - 'a couple': 2, - 'a dozen': 12, - 'two dozen': 24, - zero: 0, - }; - - // a 'section' is something like 'fifty-nine thousand' - // turn a section into something we can add to - like 59000 - const section_sum = obj => { - return Object.keys(obj).reduce((sum, k) => { - sum += obj[k]; - return sum - }, 0) - }; - - //turn a string into a number - const parse$5 = function (str) { - //convert some known-numbers - if (casualForms.hasOwnProperty(str) === true) { - return casualForms[str] - } - //'a/an' is 1 - if (str === 'a' || str === 'an') { - return 1 - } - const modifier = findModifiers$1(str); - str = modifier.str; - let last_mult = null; - let has = {}; - let sum = 0; - let isNegative = false; - const terms = str.split(/[ -]/); - // const isFraction = findFraction(terms) - for (let i = 0; i < terms.length; i++) { - let w = terms[i]; - w = parseNumeric$2(w); - - if (!w || w === 'and') { - continue - } - if (w === '-' || w === 'negative') { - isNegative = true; - continue - } - if (w.charAt(0) === '-') { - isNegative = true; - w = w.substring(1); - } - - //decimal mode - if (w === 'point') { - sum += section_sum(has); - sum += parseDecimals$1(terms.slice(i + 1, terms.length)); - sum *= modifier.amount; - return sum - } - - //improper fraction - const fm = w.match(improperFraction); - if (fm) { - const num = parseFloat(fm[1].replace(/[, ]/g, '')); - const denom = parseFloat(fm[2].replace(/[, ]/g, '')); - if (denom) { - sum += num / denom || 0; - } - continue - } - // try to support 'two fifty' - if (words.tens.hasOwnProperty(w)) { - if (has.ones && Object.keys(has).length === 1) { - sum = has.ones * 100; - has = {}; - } - } - - //prevent mismatched units, like 'seven eleven' if not a fraction - if (isValid$1(w, has) === false) { - return null - } - - //buildOut section, collect 'has' values - if (/^[0-9.]+$/.test(w)) { - has.ones = parseFloat(w); //not technically right - } else if (words.ones.hasOwnProperty(w) === true) { - has.ones = words.ones[w]; - } else if (words.teens.hasOwnProperty(w) === true) { - has.teens = words.teens[w]; - } else if (words.tens.hasOwnProperty(w) === true) { - has.tens = words.tens[w]; - } else if (words.multiples.hasOwnProperty(w) === true) { - let mult = words.multiples[w]; - - //something has gone wrong : 'two hundred five hundred' - //possibly because it's a fraction - if (mult === last_mult) { - return null - } - //support 'hundred thousand' - //this one is tricky.. - if (mult === 100 && terms[i + 1] !== undefined) { - const w2 = terms[i + 1]; - if (words.multiples[w2]) { - mult *= words.multiples[w2]; //hundredThousand/hundredMillion - i += 1; - } - } - //natural order of things - //five thousand, one hundred.. - if (last_mult === null || mult < last_mult) { - sum += (section_sum(has) || 1) * mult; - last_mult = mult; - has = {}; - } else { - //maybe hundred .. thousand - sum += section_sum(has); - last_mult = mult; - sum = (sum || 1) * mult; - has = {}; - } - } - } - //dump the remaining has values - sum += section_sum(has); - //post-process add modifier - sum *= modifier.amount; - sum *= isNegative ? -1 : 1; - //dont return 0, if it went straight-through - if (sum === 0 && Object.keys(has).length === 0) { - return null - } - return sum - }; - - var parseText = parse$5; - - const endS = /s$/; - - // just using .toNumber() again may risk an infinite-loop - const parseNumber$1 = function (m) { - let str = m.text('reduced'); - return parseText(str) - }; - - let mapping = { - half: 2, - halve: 2, - quarter: 4, - }; - - const slashForm = function (m) { - let str = m.text('reduced'); - let found = str.match(/^([-+]?[0-9]+)\/([-+]?[0-9]+)(st|nd|rd|th)?s?$/); - if (found && found[1] && found[0]) { - return { - numerator: Number(found[1]), - denominator: Number(found[2]), - } - } - return null - }; - - // parse '4 out of 4' - const nOutOfN = function (m) { - let found = m.match('[#Value+] out of every? [#Value+]'); - if (found.found !== true) { - return null - } - let { num, den } = found.groups(); - if (!num || !den) { - return null - } - num = parseNumber$1(num); - den = parseNumber$1(den); - if (!num || !den) { - return null - } - if (typeof num === 'number' && typeof den === 'number') { - return { - numerator: num, - denominator: den, - } - } - return null - }; - - // parse 'five thirds' - const nOrinalth = function (m) { - let found = m.match('[(#Cardinal|a)+] [#Fraction+]'); - if (found.found !== true) { - return null - } - let { num, den } = found.groups(); - // -- parse numerator--- - // quick-support for 'a third' - if (num.has('a')) { - num = 1; - } else { - // abuse the number-parser for 'thirty three' - // let tmp = num.clone().unTag('Fraction') - // num = tmp.numbers().get()[0] - num = parseNumber$1(num); - } - // -- parse denominator -- - // turn 'thirds' into third - let str = den.text('reduced'); - if (endS.test(str)) { - str = str.replace(endS, ''); - den = den.replaceWith(str); - } - // support 'one half' as '1/2' - if (mapping.hasOwnProperty(str)) { - den = mapping[str]; - } else { - // dem = dem.numbers().get()[0] - den = parseNumber$1(den); - } - if (typeof num === 'number' && typeof den === 'number') { - return { - numerator: num, - denominator: den, - } - } - return null - }; - - // implied 1 in '100th of a', 'fifth of a' - const oneNth = function (m) { - let found = m.match('^#Ordinal$'); - if (found.found !== true) { - return null - } - // ensure it's '100th of a ' - if (m.lookAhead('^of .')) { - // let num = found.numbers().get()[0] - let num = parseNumber$1(found); - return { - numerator: 1, - denominator: num, - } - } - return null - }; - - // 'half' - const named = function (m) { - let str = m.text('reduced'); - if (mapping.hasOwnProperty(str)) { - return { numerator: 1, denominator: mapping[str] } - } - return null - }; - - const round = n => { - let rounded = Math.round(n * 1000) / 1000; - // don't round 1 millionth down into 0 - if (rounded === 0 && n !== 0) { - return n - } - return rounded - }; - - const parseFraction = function (m) { - m = m.clone(); - let res = named(m) || slashForm(m) || nOutOfN(m) || nOrinalth(m) || oneNth(m) || null; - if (res !== null) { - // do the math - if (res.numerator && res.denominator) { - res.decimal = res.numerator / res.denominator; - res.decimal = round(res.decimal); - } - } - return res - }; - var parseFraction$1 = parseFraction; - - /** - * turn big numbers, like 2.3e+22, into a string with a ton of trailing 0's - * */ - const numToString = function (n) { - if (n < 1000000) { - return String(n) - } - let str; - if (typeof n === 'number') { - str = n.toFixed(0); - } else { - str = n; - } - if (str.indexOf('e+') === -1) { - return str - } - return str - .replace('.', '') - .split('e+') - .reduce(function (p, b) { - return p + Array(b - p.length + 2).join(0) - }) - }; - var toString = numToString; - // console.log(numToString(2.5e+22)); - - const tens_mapping = [ - ['ninety', 90], - ['eighty', 80], - ['seventy', 70], - ['sixty', 60], - ['fifty', 50], - ['forty', 40], - ['thirty', 30], - ['twenty', 20], - ]; - const ones_mapping = [ - '', - 'one', - 'two', - 'three', - 'four', - 'five', - 'six', - 'seven', - 'eight', - 'nine', - 'ten', - 'eleven', - 'twelve', - 'thirteen', - 'fourteen', - 'fifteen', - 'sixteen', - 'seventeen', - 'eighteen', - 'nineteen', - ]; - - const sequence = [ - [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'], - [100000, 'hundred thousand'], - [1000, 'thousand'], - [100, 'hundred'], - [1, 'one'], - ]; - - /** - * turns an integer/float into.ber, like 'fifty-five' - */ - - //turn number into an array of magnitudes, like [[5, million], [2, hundred]] - const breakdown_magnitudes = function (num) { - let working = num; - let have = []; - sequence.forEach(a => { - if (num >= a[0]) { - let howmany = Math.floor(working / a[0]); - working -= howmany * a[0]; - if (howmany) { - have.push({ - unit: a[1], - count: howmany, - }); - } - } - }); - return have - }; - - //turn numbers from 100-0 into their text - const breakdown_hundred = function (num) { - let arr = []; - if (num > 100) { - return arr //something bad happened.. - } - for (let i = 0; i < tens_mapping.length; i++) { - if (num >= tens_mapping[i][1]) { - num -= tens_mapping[i][1]; - arr.push(tens_mapping[i][0]); - } - } - //(hopefully) we should only have 20-0 now - if (ones_mapping[num]) { - arr.push(ones_mapping[num]); - } - return arr - }; - - /** print-out 'point eight nine'*/ - const handle_decimal = num => { - const names = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']; - let arr = []; - //parse it out like a string, because js math is such shit - let str = toString(num); - let decimal = str.match(/\.([0-9]+)/); - if (!decimal || !decimal[0]) { - return arr - } - arr.push('point'); - let decimals = decimal[0].split(''); - for (let i = 0; i < decimals.length; i++) { - arr.push(names[decimals[i]]); - } - return arr - }; - - /** turns an integer into a textual number */ - const toText$1 = function (obj) { - let num = obj.num; - // handle zero, quickly - if (num === 0 || num === '0') { - return 'zero' // no? - } - //big numbers, north of sextillion, aren't gonna work well.. - //keep them small.. - if (num > 1e21) { - num = toString(num); - } - let arr = []; - //handle negative numbers - if (num < 0) { - arr.push('minus'); - num = Math.abs(num); - } - //break-down into units, counts - let units = breakdown_magnitudes(num); - //build-up the string from its components - for (let i = 0; i < units.length; i++) { - let unit_name = units[i].unit; - if (unit_name === 'one') { - unit_name = ''; - //put an 'and' in here - if (arr.length > 1) { - arr.push('and'); - } - } - arr = arr.concat(breakdown_hundred(units[i].count)); - arr.push(unit_name); - } - //also support decimals - 'point eight' - arr = arr.concat(handle_decimal(num)); - //remove empties - arr = arr.filter(s => s); - if (arr.length === 0) { - arr[0] = ''; - } - return arr.join(' ') - }; - - var textCardinal = toText$1; - - // console.log(to_text(-1000.8)); - - const toCardinal = function (obj) { - if (!obj.numerator || !obj.denominator) { - return '' - } - let a = textCardinal({ num: obj.numerator }); - let b = textCardinal({ num: obj.denominator }); - return `${a} out of ${b}` - }; - var toCardinal$1 = toCardinal; - - const irregulars = { - 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', - }; - - /** - * convert a javascript number to 'twentieth' format - * */ - const textOrdinal = obj => { - let words = textCardinal(obj).split(' '); - //convert the last number to an ordinal - let last = words[words.length - 1]; - if (irregulars.hasOwnProperty(last)) { - words[words.length - 1] = irregulars[last]; - } else { - words[words.length - 1] = last.replace(/y$/, 'i') + 'th'; - } - return words.join(' ') - }; - - var textOrdinal$1 = textOrdinal; - - const toOrdinal = function (obj) { - // don't divide by zero! - if (!obj.numerator || !obj.denominator) { - return '' - } - // create [two] [fifths] - let start = textCardinal({ num: obj.numerator }); - let end = textOrdinal$1({ num: obj.denominator }); - // 'one secondth' -> 'one half' - if (obj.denominator === 2) { - end = 'half'; - } - if (start && end) { - if (obj.numerator !== 1) { - end += 's'; - } - return `${start} ${end}` - } - return '' - }; - var toOrdinal$1 = toOrdinal; - - // return the nth elem of a doc - const getNth$7 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - const plugin$1 = function (View) { - /** - */ - class Fractions extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Fractions'; - } - parse(n) { - return getNth$7(this, n).map(parseFraction$1) - } - get(n) { - return getNth$7(this, n).map(parseFraction$1) - } - json(n) { - return getNth$7(this, n).map(p => { - let json = p.toView().json(n)[0]; - let parsed = parseFraction$1(p); - json.fraction = parsed; - return json - }, []) - } - // become 0.5 - toDecimal(n) { - getNth$7(this, n).forEach(m => { - let { decimal } = parseFraction$1(m); - m = m.replaceWith(String(decimal), true); - m.tag('NumericValue'); - m.unTag('Fraction'); - }); - return this - } - toFraction(n) { - getNth$7(this, n).forEach(m => { - let obj = parseFraction$1(m); - if (obj && typeof obj.numerator === 'number' && typeof obj.denominator === 'number') { - let str = `${obj.numerator}/${obj.denominator}`; - this.replace(m, str); - } - }); - return this - } - toOrdinal(n) { - getNth$7(this, n).forEach(m => { - let obj = parseFraction$1(m); - let str = toOrdinal$1(obj); - if (m.after('^#Noun').found) { - str += ' of'; // three fifths of dentists - } - m.replaceWith(str); - }); - return this - } - toCardinal(n) { - getNth$7(this, n).forEach(m => { - let obj = parseFraction$1(m); - let str = toCardinal$1(obj); - m.replaceWith(str); - }); - return this - } - toPercentage(n) { - getNth$7(this, n).forEach(m => { - let { decimal } = parseFraction$1(m); - let percent = decimal * 100; - percent = Math.round(percent * 100) / 100; // round it - m.replaceWith(`${percent}%`); - }); - return this - } - } - - View.prototype.fractions = function (n) { - let m = find$7(this); - m = getNth$7(m, n); - return new Fractions(this.document, m.pointer) - }; - }; - - var fractions = plugin$1; - - const ones = 'one|two|three|four|five|six|seven|eight|nine'; - const tens = 'twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty'; - const teens = 'eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen'; - - // this is a bit of a mess - // segment consecutive number-words into sensible chunks - const findNumbers = function (doc) { - let m = doc.match('#Value+'); - - //"50 83" - if (m.has('#NumericValue #NumericValue')) { - //a comma may mean two numbers - if (m.has('#Value @hasComma #Value')) { - m.splitAfter('@hasComma'); - } else if (m.has('#NumericValue #Fraction')) { - m.splitAfter('#NumericValue #Fraction'); - } else { - m = m.splitAfter('#NumericValue'); - } - } - - //three-length - if (m.has('#Value #Value #Value') && !m.has('#Multiple')) { - //twenty-five-twenty - if (m.has('(' + tens + ') #Cardinal #Cardinal')) { - m = m.splitAfter('(' + tens + ') #Cardinal'); - } - } - - //two-length ones - if (m.has('#Value #Value')) { - //june 21st 1992 is two seperate values - if (m.has('#NumericValue #NumericValue')) { - m = m.splitOn('#Year'); - } - //sixty fifteen - if (m.has('(' + tens + ') (' + teens + ')')) { - m = m.splitAfter('(' + tens + ')'); - } - - //"72 82" - let double = m.match('#Cardinal #Cardinal'); - if (double.found && !m.has('(point|decimal|#Fraction)')) { - //not 'two hundred' - if (!double.has('#Cardinal (#Multiple|point|decimal)')) { - // two fifty five - let noMultiple = m.has(`(${ones}) (${tens})`); - // twenty one - let tensVal = double.has('(' + tens + ') #Cardinal'); - // hundredOne - let multVal = double.has('#Multiple #Value'); - //one proper way, 'twenty one', or 'hundred one' - if (!noMultiple && !tensVal && !multVal) { - // double = double.firstTerm() - double.terms().forEach(d => { - m = m.splitOn(d); - }); - } - } - } - - //seventh fifth - if (m.match('#Ordinal #Ordinal').match('#TextValue').found && !m.has('#Multiple')) { - //the one proper way, 'twenty first' - if (!m.has('(' + tens + ') #Ordinal')) { - m = m.splitAfter('#Ordinal'); - } - } - //fifth five - m = m.splitBefore('#Ordinal [#Cardinal]', 0); - //five 2017 (support '5 hundred', and 'twenty 5' - if (m.has('#TextValue #NumericValue') && !m.has('(' + tens + '|#Multiple)')) { - m = m.splitBefore('#TextValue #NumericValue'); - } - } - - //5-8 - m = m.splitAfter('#NumberRange'); - // june 5th 1999 - m = m.splitBefore('#Year'); - return m - }; - - var find$6 = findNumbers; - - const parseNumeric = function (str, m) { - str = str.replace(/,/g, ''); - //parse a numeric-number - let arr = str.split(/([0-9.,]*)/); - let [prefix, num] = arr; - let suffix = arr.slice(2).join(''); - if (num !== '' && m.length < 2) { - num = Number(num || str); - //ensure that num is an actual number - if (typeof num !== 'number') { - num = null; - } - // strip an ordinal off the suffix - suffix = suffix || ''; - if (suffix === 'st' || suffix === 'nd' || suffix === 'rd' || suffix === 'th') { - suffix = ''; - } - // support M for million, k for thousand - // if (suffix === 'm' || suffix === 'M') { - // num *= 1000000 - // suffix = '' - // } - // if (suffix === 'k' || suffix === 'k') { - // num *= 1000 - // suffix = '' - // } - return { - prefix: prefix || '', - num: num, - suffix: suffix, - } - } - return null - }; - - // get a numeric value from this phrase - const parseNumber = function (m) { - if (typeof m === 'string') { - return { num: parseText(m) } - } - let str = m.text('reduced'); - // is it in '3,123' format? - let hasComma = /[0-9],[0-9]/.test(m.text('text')); - // parse a numeric-number like '$4.00' - if (m.terms().length === 1 && !m.has('#Multiple')) { - let res = parseNumeric(str, m); - if (res !== null) { - res.hasComma = hasComma; - return res - } - } - // -- parse text-formats -- - // Fractions: remove 'and a half' etc. from the end - let frPart = m.match('#Fraction{2,}$'); - frPart = frPart.found === false ? m.match('^#Fraction$') : frPart; - let fraction = null; - if (frPart.found) { - if (frPart.has('#Value and #Value #Fraction')) { - frPart = frPart.match('and #Value #Fraction'); - } - fraction = parseFraction$1(frPart); - // remove it from our string - m = m.not(frPart); - m = m.not('and$'); - str = m.text('reduced'); - } - let num = 0; - if (str) { - num = parseText(str) || 0; - } - // apply numeric fraction - if (fraction && fraction.decimal) { - num += fraction.decimal; - } - return { - hasComma: hasComma, - prefix: '', - num: num, - suffix: '', - isOrdinal: m.has('#Ordinal'), - isText: m.has('#TextValue'), - isFraction: m.has('#Fraction'), - isMoney: m.has('#Money'), - } - }; - var parse$4 = parseNumber; - - /** - * turn a number like 5 into an ordinal like 5th - */ - const numOrdinal = function (obj) { - let num = obj.num; - if (!num && num !== 0) { - return null - } - //the teens are all 'th' - let tens = num % 100; - if (tens > 10 && tens < 20) { - return String(num) + 'th' - } - //the rest of 'em - const mapping = { - 0: 'th', - 1: 'st', - 2: 'nd', - 3: 'rd', - }; - let str = toString(num); - let last = str.slice(str.length - 1, str.length); - if (mapping[last]) { - str += mapping[last]; - } else { - str += 'th'; - } - return str - }; - - var numOrdinal$1 = numOrdinal; - - const prefixes = { - '¢': 'cents', - $: 'dollars', - '£': 'pounds', - '¥': 'yen', - '€': 'euros', - '₡': 'colón', - '฿': 'baht', - '₭': 'kip', - '₩': 'won', - '₹': 'rupees', - '₽': 'ruble', - '₺': 'liras', - }; - const suffixes = { - '%': 'percent', - // s: 'seconds', - cm: 'centimetres', - km: 'kilometres', - ft: 'feet', - '°': 'degrees' - }; - - const addSuffix = function (obj) { - let res = { - suffix: '', - prefix: obj.prefix, - }; - // $5 to 'five dollars' - if (prefixes.hasOwnProperty(obj.prefix)) { - res.suffix += ' ' + prefixes[obj.prefix]; - res.prefix = ''; - } - // 5% to 'five percent' - if (suffixes.hasOwnProperty(obj.suffix)) { - res.suffix += ' ' + suffixes[obj.suffix]; - } - if (res.suffix && obj.num === 1) { - res.suffix = res.suffix.replace(/s$/, ''); - } - // misc other suffixes - if (!res.suffix && obj.suffix) { - res.suffix += ' ' + obj.suffix; - } - return res - }; - - var makeSuffix = addSuffix; - - const format = function (obj, fmt) { - if (fmt === 'TextOrdinal') { - let { prefix, suffix } = makeSuffix(obj); - return prefix + textOrdinal$1(obj) + suffix - } - if (fmt === 'Ordinal') { - return obj.prefix + numOrdinal$1(obj) + obj.suffix - } - if (fmt === 'TextCardinal') { - let { prefix, suffix } = makeSuffix(obj); - return prefix + textCardinal(obj) + suffix - } - // assume Cardinal - let num = obj.num; - if (obj.hasComma) { - num = num.toLocaleString(); - } - return obj.prefix + String(num) + obj.suffix - }; - var format$1 = format; - - // return the nth elem of a doc - const getNth$6 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - const addMethod$2 = function (View) { - /** */ - class Numbers extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Numbers'; - } - parse(n) { - return getNth$6(this, n).map(parse$4) - } - get(n) { - return getNth$6(this, n).map(parse$4).map(o => o.num) - } - json(n) { - let doc = getNth$6(this, n); - return doc.map(p => { - let json = p.toView().json(n)[0]; - let parsed = parse$4(p); - json.number = { - prefix: parsed.prefix, - num: parsed.num, - suffix: parsed.suffix, - hasComma: parsed.hasComma, - }; - return json - }, []) - } - /** any known measurement unit, for the number */ - units() { - return this.growRight('#Unit').match('#Unit$') - } - /** return only ordinal numbers */ - isOrdinal() { - return this.if('#Ordinal') - } - /** return only cardinal numbers*/ - isCardinal() { - return this.if('#Cardinal') - } - - /** convert to numeric form like '8' or '8th' */ - toNumber() { - let m = this.if('#TextValue'); - m.forEach(val => { - let obj = parse$4(val); - if (obj.num === null) { - return - } - let fmt = val.has('#Ordinal') ? 'Ordinal' : 'Cardinal'; - let str = format$1(obj, fmt); - val.replaceWith(str, { tags: true }); - val.tag('NumericValue'); - }); - return this - } - /** add commas, or nicer formatting for numbers */ - toLocaleString() { - let m = this; - m.forEach((val) => { - let obj = parse$4(val); - if (obj.num === null) { - return - } - let num = obj.num.toLocaleString(); - // support ordinal ending, too - if (val.has('#Ordinal')) { - let str = format$1(obj, 'Ordinal'); - let end = str.match(/[a-z]+$/); - if (end) { - num += end[0] || ''; - } - } - val.replaceWith(num, { tags: true }); - }); - return this - } - /** convert to numeric form like 'eight' or 'eighth' */ - toText() { - let m = this; - let res = m.map(val => { - if (val.has('#TextValue')) { - return val - } - let obj = parse$4(val); - if (obj.num === null) { - return val - } - let fmt = val.has('#Ordinal') ? 'TextOrdinal' : 'TextCardinal'; - let str = format$1(obj, fmt); - val.replaceWith(str, { tags: true }); - val.tag('TextValue'); - return val - }); - return new Numbers(res.document, res.pointer) - } - /** convert ordinal to cardinal form, like 'eight', or '8' */ - toCardinal() { - let m = this; - let res = m.map(val => { - if (!val.has('#Ordinal')) { - return val - } - let obj = parse$4(val); - if (obj.num === null) { - return val - } - let fmt = val.has('#TextValue') ? 'TextCardinal' : 'Cardinal'; - let str = format$1(obj, fmt); - val.replaceWith(str, { tags: true }); - val.tag('Cardinal'); - return val - }); - return new Numbers(res.document, res.pointer) - } - /** convert cardinal to ordinal form, like 'eighth', or '8th' */ - toOrdinal() { - let m = this; - let res = m.map(val => { - if (val.has('#Ordinal')) { - return val - } - let obj = parse$4(val); - if (obj.num === null) { - return val - } - let fmt = val.has('#TextValue') ? 'TextOrdinal' : 'Ordinal'; - let str = format$1(obj, fmt); - val.replaceWith(str, { tags: true }); - val.tag('Ordinal'); - return val - }); - return new Numbers(res.document, res.pointer) - } - - /** return only numbers that are == n */ - isEqual(n) { - return this.filter((val) => { - let num = parse$4(val).num; - return num === n - }) - } - /** return only numbers that are > n*/ - greaterThan(n) { - return this.filter((val) => { - let num = parse$4(val).num; - return num > n - }) - } - /** return only numbers that are < n*/ - lessThan(n) { - return this.filter((val) => { - let num = parse$4(val).num; - return num < n - }) - } - /** return only numbers > min and < max */ - between(min, max) { - return this.filter((val) => { - let num = parse$4(val).num; - return num > min && num < max - }) - } - /** set these number to n */ - set(n) { - if (n === undefined) { - return this // don't bother - } - if (typeof n === 'string') { - n = parse$4(n).num; - } - let m = this; - let res = m.map((val) => { - let obj = parse$4(val); - obj.num = n; - if (obj.num === null) { - return val - } - let fmt = val.has('#Ordinal') ? 'Ordinal' : 'Cardinal'; - if (val.has('#TextValue')) { - fmt = val.has('#Ordinal') ? 'TextOrdinal' : 'TextCardinal'; - } - let str = format$1(obj, fmt); - // add commas to number - if (obj.hasComma && fmt === 'Cardinal') { - str = Number(str).toLocaleString(); - } - val = val.not('#Currency'); - val.replaceWith(str, { tags: true }); - // handle plural/singular unit - // agreeUnits(agree, val, obj) - return val - }); - return new Numbers(res.document, res.pointer) - } - add(n) { - if (!n) { - return this // don't bother - } - if (typeof n === 'string') { - n = parse$4(n).num; - } - let m = this; - let res = m.map((val) => { - let obj = parse$4(val); - if (obj.num === null) { - return val - } - obj.num += n; - let fmt = val.has('#Ordinal') ? 'Ordinal' : 'Cardinal'; - if (obj.isText) { - fmt = val.has('#Ordinal') ? 'TextOrdinal' : 'TextCardinal'; - } - let str = format$1(obj, fmt); - val.replaceWith(str, { tags: true }); - // handle plural/singular unit - // agreeUnits(agree, val, obj) - return val - }); - return new Numbers(res.document, res.pointer) - } - /** decrease each number by n*/ - subtract(n, agree) { - return this.add(n * -1, agree) - } - /** increase each number by 1 */ - increment(agree) { - return this.add(1, agree) - } - /** decrease each number by 1 */ - decrement(agree) { - return this.add(-1, agree) - } - // overloaded - keep Numbers class - update(pointer) { - let m = new Numbers(this.document, pointer); - m._cache = this._cache; // share this full thing - return m - } - } - // aliases - 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; - - View.prototype.numbers = function (n) { - let m = find$6(this); - m = getNth$6(m, n); - return new Numbers(this.document, m.pointer) - }; - View.prototype.percentages = function (n) { - let m = find$6(this); - m = m.filter(v => v.has('#Percent') || v.after('^percent')); - m = getNth$6(m, n); - return new Numbers(this.document, m.pointer) - }; - View.prototype.money = function (n) { - let m = find$6(this); - m = m.filter(v => v.has('#Money') || v.after('^#Currency')); - m = getNth$6(m, n); - return new Numbers(this.document, m.pointer) - }; - // alias - View.prototype.values = View.prototype.numbers; - }; - var numbers$1 = addMethod$2; - - const api$7 = function (View) { - fractions(View); - numbers$1(View); - }; - - var numbers = { - api: api$7, - }; - - const defaults = { - people: true, - emails: true, - phoneNumbers: true, - places: true, - }; - - const redact = function (opts = {}) { - opts = Object.assign({}, defaults, opts); - if (opts.people !== false) { - this.people().replaceWith('██████████'); - } - if (opts.emails !== false) { - this.emails().replaceWith('██████████'); - } - if (opts.places !== false) { - this.places().replaceWith('██████████'); - } - if (opts.phoneNumbers !== false) { - this.phoneNumbers().replaceWith('███████'); - } - return this - }; - - const plugin = { - api: function (View) { - View.prototype.redact = redact; - } - }; - var redact$1 = plugin; - - //is this sentence asking a question? - const isQuestion = function (doc) { - let clauses = doc.clauses(); - - // Has ellipsis at the end means it's probably not a question - // e.g., Is this just fantasy... - if (/\.\.$/.test(doc.out('text'))) { - return false - } - - // Starts with question word, but has a comma, so probably not a question - // e.g., Why are we caught in a land slide, no escape from reality - if (doc.has('^#QuestionWord') && doc.has('@hasComma')) { - return false - } - - // do you see it or not - if (doc.has('or not$')) { - return true - } - - // Starts with a #QuestionWord - // e.g., What open your eyes look up to the skies and see - if (doc.has('^#QuestionWord')) { - return true - } - - // Second word is a #QuestionWord - // e.g., I'm what a poor boy - // case ts.has('^\w+\s#QuestionWord'): - // return true; - - // is it, do you - start of sentence - // e.g., Do I need no sympathy - if (doc.has('^(do|does|did|is|was|can|could|will|would|may) #Noun')) { - return true - } - - // these are a little more loose.. - // e.g., Must I be come easy come easy go - if (doc.has('^(have|must) you')) { - return true - } - - // Clause starts with a question word - // e.g., Anyway the wind blows, what doesn't really matter to me - // if (clauses.has('^#QuestionWord')) { - // return true - // } - - //is wayne gretskzy alive - if (clauses.has('(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$')) { - return true - } - - // Probably not a question - return false - }; - - const findQuestions = function (view) { - const hasQ = /\?/; - const { document } = view; - return view.filter(m => { - let terms = m.docs[0] || []; - let lastTerm = terms[terms.length - 1]; - // is it not a full sentence? - if (!lastTerm || document[lastTerm.index[0]].length !== terms.length) { - return false - } - // does it end with a question mark? - if (hasQ.test(lastTerm.post)) { - return true - } - // try to guess a sentence without a question-mark - return isQuestion(m) - }) - }; - var isQuestion$1 = findQuestions; - - // if a clause starts with these, it's not a main clause - const subordinate = `(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)`; - const relative = `(that|which|whichever|who|whoever|whom|whose|whomever)`; - - //try to remove secondary clauses - const mainClause = function (s) { - let m = s; - if (m.length === 1) { - return m - } - // if there's no verb, it's dependent - m = m.if('#Verb'); - if (m.length === 1) { - return m - } - // this is a signal for subordinate-clauses - m = m.ifNo(subordinate); - m = m.ifNo('^even (if|though)'); - m = m.ifNo('^so that'); - m = m.ifNo('^rather than'); - m = m.ifNo('^provided that'); - if (m.length === 1) { - return m - } - // relative clauses - m = m.ifNo(relative); - if (m.length === 1) { - return m - } - - m = m.ifNo('(despite|during|before|through|throughout)'); - if (m.length === 1) { - return m - } - // did we go too far? - if (m.length === 0) { - m = s; - } - // choose the first one? - return m.eq(0) - }; - var findMain = mainClause; - - const parse$2 = function (s) { - let clauses = s.clauses(); - let main = findMain(clauses); - let chunks = main.chunks(); - let subj = s.none(); - let verb = s.none(); - let pred = s.none(); - chunks.forEach((ch, i) => { - if (i === 0 && !ch.has('')) { - subj = ch; - return - } - if (!verb.found && ch.has('')) { - verb = ch; - return - } - if (verb.found) { - pred = pred.concat(ch); - } - }); - // cleanup a missed parse - if (verb.found && !subj.found) { - subj = verb.before('+').first(); - } - return { - subj, - verb, - pred - } - }; - var parse$3 = parse$2; - - const toPast$2 = function (s) { - let verbs = s.verbs(); - // translate the first verb, no-stress - let first = verbs.eq(0); - // already past - if (first.has('#PastTense')) { - return s - } - first.toPastTense(); - - // force agreement with any 2nd/3rd verbs: - if (verbs.length > 1) { - verbs = verbs.slice(1); - // remove any sorta infinitive - 'to engage' - verbs = verbs.filter((v) => !v.lookBehind('to$').found); - - // keep -ing verbs - verbs = verbs.if('#PresentTense'); - verbs = verbs.notIf('#Gerund'); - - //run-on infinitive-list - 'to walk, sit and eat' - let list = s.match('to #Verb+ #Conjunction #Verb').terms(); - verbs = verbs.not(list); - - // otherwise, I guess so? - if (verbs.found) { - verbs.verbs().toPastTense(); - } - } - - // s.compute('chunks') - return s - }; - var toPast$3 = toPast$2; - - const toPresent$2 = function (s) { - let verbs = s.verbs(); - // translate the first verb, no-stress - let first = verbs.eq(0); - // already present - // if (first.has('#PresentTense')) { - // return s - // } - first.toPresentTense(); - - // force agreement with any 2nd/3rd verbs: - if (verbs.length > 1) { - verbs = verbs.slice(1); - // remove any sorta infinitive - 'to engage' - verbs = verbs.filter((v) => !v.lookBehind('to$').found); - - // keep -ing verbs - // verbs = verbs.if('#PresentTense') - verbs = verbs.notIf('#Gerund'); - - //run-on infinitive-list - 'to walk, sit and eat' - // let list = s.match('to #Verb+ #Conjunction #Verb').terms() - // verbs = verbs.not(list) - - // otherwise, I guess so? - if (verbs.found) { - verbs.verbs().toPresentTense(); - } - } - - // s.compute('chunks') - return s - }; - var toPresent$3 = toPresent$2; - - const toFuture$2 = function (s) { - let verbs = s.verbs(); - // translate the first verb, no-stress - let first = verbs.eq(0); - first.toFutureTense(); - s = s.fullSentence(); - verbs = s.verbs();//re-do it - // verbs.debug() - // force agreement with any 2nd/3rd verbs: - if (verbs.length > 1) { - verbs = verbs.slice(1); - // which following-verbs should we also change? - let toChange = verbs.filter((vb) => { - // remove any sorta infinitive - 'to engage' - if (vb.lookBehind('to$').found) { - return false - } - // is watching - if (vb.has('#Copula #Gerund')) { - return true - } - // keep -ing verbs - if (vb.has('#Gerund')) { - return false - } - // he is green and he is friendly - if (vb.has('#Copula')) { - return true - } - // 'he will see when he watches' - if (vb.has('#PresentTense') && s.has('(when|as|how)')) { - return false - } - return true - }); - // otherwise, change em too - if (toChange.found) { - toChange.toInfinitive(); - } - } - return s - }; - var toFuture$3 = toFuture$2; - - const toNegative$2 = function (s) { - s.verbs().first().toNegative().compute('chunks'); - return s - }; - const toPositive = function (s) { - s.verbs().first().toPositive().compute('chunks'); - return s - }; - - const toInfinitive$4 = function (s) { - s.verbs().toInfinitive(); - // s.compute('chunks') - return s - }; - var toInfinitive$5 = toInfinitive$4; - - // return the nth elem of a doc - const getNth$5 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - const api$5 = function (View) { - class Sentences extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Sentences'; - } - json(opts = {}) { - return this.map(m => { - let json = m.toView().json(opts)[0] || {}; - let { subj, verb, pred } = parse$3(m); - json.sentence = { - subject: subj.text('normal'), - verb: verb.text('normal'), - predicate: pred.text('normal'), - }; - return json - }, []) - } - toPastTense(n) { - return getNth$5(this, n).map(s => { - parse$3(s); - return toPast$3(s) - }) - } - toPresentTense(n) { - return getNth$5(this, n).map(s => { - parse$3(s); - return toPresent$3(s) - }) - } - toFutureTense(n) { - return getNth$5(this, n).map(s => { - parse$3(s); - s = toFuture$3(s); - return s - }) - } - toInfinitive(n) { - return getNth$5(this, n).map(s => { - parse$3(s); - return toInfinitive$5(s) - }) - } - toNegative(n) { - return getNth$5(this, n).map(vb => { - parse$3(vb); - return toNegative$2(vb) - }) - } - toPositive(n) { - return getNth$5(this, n).map(vb => { - parse$3(vb); - return toPositive(vb) - }) - } - isQuestion(n) { - return this.questions(n) - } - isExclamation(n) { - let res = this.filter(s => s.lastTerm().has('@hasExclamation')); - return getNth$5(res, n) - } - isStatement(n) { - let res = this.filter(s => !s.isExclamation().found && !s.isQuestion().found); - return getNth$5(res, n) - } - // overloaded - keep Sentences class - update(pointer) { - let m = new Sentences(this.document, pointer); - m._cache = this._cache; // share this full thing - return m - } - } - // aliases - Sentences.prototype.toPresent = Sentences.prototype.toPresentTense; - Sentences.prototype.toPast = Sentences.prototype.toPastTense; - Sentences.prototype.toFuture = Sentences.prototype.toFutureTense; - - const methods = { - sentences: function (n) { - let m = this.map(s => s.fullSentence()); - m = getNth$5(m, n); - return new Sentences(this.document, m.pointer) - }, - questions: function (n) { - let m = isQuestion$1(this); - return getNth$5(m, n) - }, - }; - - Object.assign(View.prototype, methods); - }; - var api$6 = api$5; - - var sentences = { api: api$6 }; - - const find$4 = function (doc) { - let m = doc.match('#Honorific+? #Person+'); - return m - }; - var find$5 = find$4; - - const parse = function (m) { - let res = {}; - res.firstName = m.match('#FirstName+'); - res.lastName = m.match('#LastName+'); - res.honorific = m.match('#Honorific+'); - - let last = res.lastName; - let first = res.firstName; - if (!first.found || !last.found) { - // let p = m.clone() - // assume 'Mr Springer' is a last-name - if (!first.found && !last.found && m.has('^#Honorific .$')) { - res.lastName = m.match('.$'); - return res - } - } - return res - }; - var parse$1 = parse; - - /* - Important notice - - this method makes many assumptions about gender-identity, in-order to assign grammatical gender. - it should not be used for any other purposes, other than resolving pronouns in english - */ - const m = 'male'; - const f = 'female'; - - // known gendered honorifics - const honorifics = { - mr: m, - mrs: f, - miss: f, - madam: f, - - // british stuff - king: m, - queen: f, - duke: m, - duchess: f, - baron: m, - baroness: f, - count: m, - countess: f, - prince: m, - princess: f, - sire: m, - dame: f, - lady: f, - - ayatullah: m, //i think? - - congressman: m, - congresswoman: f, - 'first lady': f, - - // marked as non-binary - mx: null, - }; - - const predictGender = function (parsed, person) { - let { firstName, honorific } = parsed; - // use first-name as signal-signal - if (firstName.has('#FemaleName')) { - return f - } - if (firstName.has('#MaleName')) { - return m - } - // use honorics as gender-signal - if (honorific.found) { - let hon = honorific.text('normal'); - hon = hon.replace(/\./g, ''); //clean it up a bit - if (honorifics.hasOwnProperty(hon)) { - return honorifics[hon] - } - // her excelency - if (/^her /.test(hon)) { - return f - } - if (/^his /.test(hon)) { - return m - } - } - // offer used-pronouns as a signal - let after = person.after(); - if (!after.has('#Person') && after.has('#Pronoun')) { - let pro = after.match('#Pronoun'); - // manual use of gender-neutral - if (pro.has('(they|their)')) { - return null - } - let hasMasc = pro.has('(he|his)'); - let hasFem = pro.has('(she|her|hers)'); - if (hasMasc && !hasFem) { - return m - } - if (hasFem && !hasMasc) { - return f - } - } - return null - }; - var gender = predictGender; - - // return the nth elem of a doc - const getNth$4 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - const addMethod$1 = function (View) { - /** - * - */ - class People extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'People'; - } - parse(n) { - return getNth$4(this, n).map(parse$1) - } - json(n) { - let doc = getNth$4(this, n); - return doc.map(p => { - let json = p.toView().json(n)[0]; - let parsed = parse$1(p); - json.person = { - firstName: parsed.firstName.text('normal'), - lastName: parsed.lastName.text('normal'), - honorific: parsed.honorific.text('normal'), - presumed_gender: gender(parsed, p), - }; - return json - }, []) - } - // overloaded - keep People class - update(pointer) { - let m = new People(this.document, pointer); - m._cache = this._cache; // share this full thing - return m - } - } - - View.prototype.people = function (n) { - let m = find$5(this); - m = getNth$4(m, n); - return new People(this.document, m.pointer) - }; - }; - var people = addMethod$1; - - const find$2 = function (doc) { - let m = doc.match('(#Place|#Address)+'); - - // split all commas except for 'paris, france' - let splits = m.match('@hasComma'); - splits = splits.filter(c => { - // split 'europe, china' - if (c.has('(asia|africa|europe|america)$')) { - return true - } - // don't split 'paris, france' - if (c.has('(#City|#Region|#ProperNoun)$') && c.after('^(#Country|#Region)').found) { - return false - } - return true - }); - m = m.splitAfter(splits); - return m - }; - var find$3 = find$2; - - // return the nth elem of a doc - const getNth$3 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - const addMethod = function (View) { - View.prototype.places = function (n) { - let m = find$3(this); - m = getNth$3(m, n); - return new View(this.document, m.pointer) - }; - }; - var places = addMethod; - - // return the nth elem of a doc - const getNth$2 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - const api$4 = function (View) { - View.prototype.organizations = function (n) { - let m = this.match('#Organization+'); - return getNth$2(m, n) - }; - }; - var orgs = api$4; - - // return the nth elem of a doc - const getNth$1 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - //combine them with .topics() method - const find$1 = function (n) { - let r = this.clauses(); - // Find people, places, and organizations - let m = r.people(); - m = m.concat(r.places()); - m = m.concat(r.organizations()); - m = m.not('(someone|man|woman|mother|brother|sister|father)'); - //return them to normal ordering - m = m.sort('seq'); - // m = m.unique() - m = getNth$1(m, n); - return m - }; - - const api$3 = function (View) { - View.prototype.topics = find$1; - }; - var topics$1 = api$3; - - const api$2 = function (View) { - people(View); - places(View); - orgs(View); - topics$1(View); - }; - var topics = { api: api$2 }; - - const findVerbs = function (doc) { - let m = doc.match(''); - - m = m.splitAfter('@hasComma'); - - // the reason he will is ... - // all i do is talk - m = m.splitAfter('[(do|did|am|was|is|will)] (is|was)', 0); - // m = m.splitAfter('[(do|did|am|was|is|will)] #PresentTense', 0) - - // cool - - // like being pampered - m = m.splitBefore('(#Verb && !#Copula) [being] #Verb', 0); - // like to be pampered - m = m.splitBefore('#Verb [to be] #Verb', 0); - - // implicit conjugation - 'help fix' - - m = m.splitAfter('[help] #PresentTense', 0); - // what i can sell is.. - m = m.splitBefore('(#PresentTense|#PastTense) [#Copula]$', 0); - // what i can sell will be - m = m.splitBefore('(#PresentTense|#PastTense) [will be]$', 0); - - // professes love - let toVerbs = m.match('(#PresentTense|#PastTense) #Infinitive'); - if (toVerbs.found && !toVerbs.has('^go')) { - m = m.splitBefore('(#PresentTense|#PastTense) [#Infinitive]', 0); - } - // 'allow yourself' - m = m.not('#Reflexive$'); - //ensure there's actually a verb - m = m.if('#Verb'); - // the reason he will is ... - // ensure it's not two verbs - return m - }; - var find = findVerbs; - - // find the main verb, from a verb phrase - const getMain = function (vb) { - let root = vb; - if (vb.wordCount() > 1) { - root = vb.not('(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)'); - } - // fallback to just the last word, sometimes - if (root.length > 1 && !root.has('#Phrasal #Particle')) { - root = root.last(); - } - // look for more modals - root = root.not('(want|wants|wanted) to'); - - // fallback - if (!root.found) { - root = vb.not('#Negative'); - return root - } - return root - }; - var getRoot = getMain; - - // split adverbs as before/after the root - const getAdverbs = function (vb, root) { - let res = { - pre: vb.none(), - post: vb.none(), - }; - if (!vb.has('#Adverb')) { - return res - } - // pivot on the main verb - let parts = vb.splitOn(root); - if (parts.length === 3) { - return { - pre: parts.eq(0).adverbs(), - post: parts.eq(2).adverbs(), - } - } - // it must be the second one - if (parts.eq(0).isDoc(root)) { - res.post = parts.eq(1).adverbs(); - return res - } - res.pre = parts.eq(0).adverbs(); - return res - }; - var getAdverbs$1 = getAdverbs; - - const getAuxiliary = function (vb, root) { - let parts = vb.splitBefore(root); - if (parts.length <= 1) { - return vb.none() - } - let aux = parts.eq(0); - aux = aux.not('(#Adverb|#Negative|#Prefix)'); - return aux - }; - - const getNegative = function (vb) { - return vb.match('#Negative') - }; - - // pull-apart phrasal-verb into verb-particle - const getPhrasal = function (root) { - let particle = root.match('#Particle$'); - return { - verb: root.not(particle), - particle: particle, - } - }; - - const parseVerb = function (view) { - let vb = view.clone(); - vb.contractions().expand(); - const root = getRoot(vb); - let res = { - root: root, - prefix: vb.match('#Prefix'), - adverbs: getAdverbs$1(vb, root), - auxiliary: getAuxiliary(vb, root), - negative: getNegative(vb), - phrasal: getPhrasal(root), - }; - return res - }; - var parseVerb$1 = parseVerb; - - const present = { tense: 'PresentTense' }; - const conditional = { conditional: true }; - const future = { tense: 'FutureTense' }; - const prog = { progressive: true }; - const past = { tense: 'PastTense' }; - const complete = { complete: true, progressive: false }; - const passive = { passive: true }; - const plural = { plural: true }; - const singular = { plural: false }; - - const getData = function (tags) { - let data = {}; - tags.forEach(o => { - Object.assign(data, o); - }); - return data - }; - - const verbForms = { - // === Simple === - 'imperative': [ - // walk! - ['#Imperative', []], - ], - - 'want-infinitive': [ - ['^(want|wants|wanted) to #Infinitive$', [present]], - ['^wanted to #Infinitive$', [past]], - ['^will want to #Infinitive$', [future]], - ], - - 'gerund-phrase': [ - // started looking - ['^#PastTense #Gerund$', [past]], - // starts looking - ['^#PresentTense #Gerund$', [present]], - // start looking - ['^#Infinitive #Gerund$', [present]], - // will start looking - ['^will #Infinitive #Gerund$', [future]], - // have started looking - ['^have #PastTense #Gerund$', [past]], - // will have started looking - ['^will have #PastTense #Gerund$', [past]], - ], - - 'simple-present': [ - // he walks', - ['^#PresentTense$', [present]], - // we walk - ['^#Infinitive$', [present]], - ], - 'simple-past': [ - // he walked', - ['^#PastTense$', [past]], - ], - 'simple-future': [ - // he will walk - ['^will #Adverb? #Infinitive', [future]], - ], - - // === Progressive === - 'present-progressive': [ - // he is walking - ['^(is|are|am) #Gerund$', [present, prog]], - ], - 'past-progressive': [ - // he was walking - ['^(was|were) #Gerund$', [past, prog]], - ], - 'future-progressive': [ - // he will be - ['^will be #Gerund$', [future, prog]], - ], - - // === Perfect === - 'present-perfect': [ - // he has walked - ['^(has|have) #PastTense$', [past, complete]], //past? - ], - 'past-perfect': [ - // he had walked - ['^had #PastTense$', [past, complete]], - // had been to see - ['^had #PastTense to #Infinitive', [past, complete]], - ], - 'future-perfect': [ - // he will have - ['^will have #PastTense$', [future, complete]], - ], - - // === Progressive-perfect === - 'present-perfect-progressive': [ - // he has been walking - ['^(has|have) been #Gerund$', [past, prog]], //present? - ], - 'past-perfect-progressive': [ - // he had been - ['^had been #Gerund$', [past, prog]], - ], - 'future-perfect-progressive': [ - // will have been - ['^will have been #Gerund$', [future, prog]], - ], - - // ==== Passive === - 'passive-past': [ - // got walked, was walked, were walked - ['(got|were|was) (#PastTense|#Participle)', [past, passive]], - // was being walked - ['^(was|were) being (#PastTense|#Participle)', [past, passive]], - // had been walked, have been eaten - ['^(had|have) been (#PastTense|#Participle)', [past, passive]], - ], - 'passive-present': [ - // is walked, are stolen - ['^(is|are|am) (#PastTense|#Participle)', [present, passive]], - // is being walked - ['^(is|are|am) being (#PastTense|#Participle)', [present, passive]], - // has been cleaned - ['^has been (#PastTense|#Participle)', [present, passive]], - ], - 'passive-future': [ - // will have been walked - ['will have been (#PastTense|#Participle)', [future, passive, conditional]], - // will be cleaned - ['will be being? (#PastTense|#Participle)', [future, passive, conditional]], - ], - - // === Conditional === - 'present-conditional': [ - // would be walked - ['would be #PastTense', [present, conditional]], - ], - 'past-conditional': [ - // would have been walked - ['would have been #PastTense', [past, conditional]], - ], - - // ==== Auxiliary === - 'auxiliary-future': [ - // going to drink - ['(is|are|am|was) going to (#Infinitive|#PresentTense)', [future]], - ], - 'auxiliary-past': [ - // he did walk - ['^did #Infinitive$', [past, singular]], - // used to walk - ['^used to #Infinitive$', [past, complete]], - ], - 'auxiliary-present': [ - // we do walk - ['^(does|do) #Infinitive$', [present, complete, plural]], - ], - - // === modals === - 'modal-past': [ - // he could have walked - ['^(could|must|should|shall) have #PastTense$', [past]], - ], - 'modal-infinitive': [ - // he can walk - ['^#Modal #Infinitive$', []], - ], - - 'infinitive': [ - // walk - ['^#Infinitive$', []], - ], - }; - - let list = []; - Object.keys(verbForms).map(k => { - verbForms[k].forEach(a => { - list.push({ - name: k, - match: a[0], - data: getData(a[1]), - }); - }); - }); - - var forms$4 = list; - - const cleanUp = function (vb, res) { - vb = vb.clone(); - // remove adverbs - if (res.adverbs.post && res.adverbs.post.found) { - vb.remove(res.adverbs.post); - } - if (res.adverbs.pre && res.adverbs.pre.found) { - vb.remove(res.adverbs.pre); - } - // remove negatives - if (vb.has('#Negative')) { - vb = vb.remove('#Negative'); - } - // remove prefixes like 'anti' - if (vb.has('#Prefix')) { - vb = vb.remove('#Prefix'); - } - // cut-off phrasal-verb - if (res.root.has('#PhrasalVerb #Particle')) { - vb.remove('#Particle$'); - } - // did we miss any of these? - // vb = vb.remove('#Adverb') - vb = vb.not('#Adverb'); - return vb - }; - - const getGrammar = function (vb, res) { - let grammar = {}; - // make it easy to classify, first - vb = cleanUp(vb, res); - for (let i = 0; i < forms$4.length; i += 1) { - let todo = forms$4[i]; - if (vb.has(todo.match) === true) { - grammar.form = todo.name; - Object.assign(grammar, todo.data); - break //only match one - } - } - // did we find nothing? - if (!grammar.form) { - if (vb.has('^#Verb$')) { - grammar.form = 'infinitive'; - } - } - // fallback to 'naiive' tense detection - if (!grammar.tense) { - grammar.tense = res.root.has('#PastTense') ? 'PastTense' : 'PresentTense'; - } - grammar.copula = res.root.has('#Copula'); - return grammar - }; - - var getGrammar$1 = getGrammar; - - const shouldSkip = function (last) { - // is it our only choice? - if (last.length <= 1) { - return false - } - let obj = last.parse()[0] || {}; - return obj.isSubordinate - }; - - // try to chop-out any obvious conditional phrases - // he wore, [if it was raining], a raincoat. - const noSubClause = function (before) { - let parts = before.clauses(); - parts = parts.filter((m, i) => { - // if it was raining.. - if (m.has('^(if|unless|while|but|for|per|at|by|that|which|who|from)')) { - return false - } - // bowed to her, - if (i > 0 && m.has('^#Verb . #Noun+$')) { - return false - } - // the fog, suddenly increasing in.. - if (i > 0 && m.has('^#Adverb')) { - return false - } - return true - }); - // don't drop the whole thing. - if (parts.length === 0) { - return before - } - return parts - }; - - // - const lastNoun = function (vb) { - let before = vb.before(); - // try to drop any mid-sentence clauses - before = noSubClause(before); - // parse-out our preceding nouns - let nouns = before.nouns(); - // look for any dead-ringers - let last = nouns.last(); - // i/she/he/they are very strong - let pronoun = last.match('(i|he|she|we|you|they)'); - if (pronoun.found) { - return pronoun.nouns() - } - // these are also good hints - let det = nouns.if('^(that|this|those)'); - if (det.found) { - return det - } - if (nouns.found === false) { - det = before.match('^(that|this|those)'); - if (det.found) { - return det - } - } - - // should we skip a subbordinate clause or two? - last = nouns.last(); - if (shouldSkip(last)) { - nouns.remove(last); - last = nouns.last(); - } - // i suppose we can skip two? - if (shouldSkip(last)) { - nouns.remove(last); - last = nouns.last(); - } - return last - }; - - const isPlural$1 = function (subj, vb) { - // 'we are' vs 'he is' - if (vb.has('(are|were|does)')) { - return true - } - if (subj.has('(those|they|we)')) { - return true - } - if (subj.found && subj.isPlural) { - return subj.isPlural().found - } - return false - }; - - const getSubject = function (vb) { - let subj = lastNoun(vb); - return { - subject: subj, - plural: isPlural$1(subj, vb), - } - }; - var getSubject$1 = getSubject; - - const noop = vb => vb; - - const isPlural = (vb, parsed) => { - let subj = getSubject$1(vb); - let m = subj.subject; - if (m.has('i') || m.has('we')) { - return true - } - return subj.plural - }; - - const wasWere = (vb, parsed) => { - let { subject, plural } = getSubject$1(vb); - if (plural || subject.has('we')) { - return 'were' - } - return 'was' - }; - - // present-tense copula - const isAreAm = function (vb, parsed) { - // 'people were' -> 'people are' - if (vb.has('were')) { - return 'are' - } - // 'i was' -> i am - let { subject, plural } = getSubject$1(vb); - if (subject.has('i')) { - return 'am' - } - if (subject.has('we') || plural) { - return 'are' - } - // 'he was' -> he is - return 'is' - }; - - - const doDoes = function (vb, parsed) { - let subj = getSubject$1(vb); - let m = subj.subject; - if (m.has('i') || m.has('we')) { - return 'do' - } - if (subj.plural) { - return 'do' - } - return 'does' - }; - - const getTense = function (m) { - if (m.has('#Infinitive')) { - return 'Infinitive' - } - if (m.has('#Participle')) { - return 'Participle' - } - if (m.has('#PastTense')) { - return 'PastTense' - } - if (m.has('#Gerund')) { - return 'Gerund' - } - if (m.has('#PresentTense')) { - return 'PresentTense' - } - return undefined - }; - - const toInf = function (vb, parsed) { - const { verbToInfinitive } = vb.methods.two.transform; - let str = parsed.root.text({ keepPunct: false }); - str = verbToInfinitive(str, vb.model, getTense(vb)); - if (str) { - vb.replace(parsed.root, str); - } - return vb - }; - - - - // i will start looking -> i started looking - // i will not start looking -> i did not start looking - const noWill = (vb) => { - if (vb.has('will not')) { - return vb.replace('will not', 'have not') - } - return vb.remove('will') - }; - - const toArray = function (m) { - if (!m || !m.isView) { - return [] - } - const opts = { normal: true, terms: false, text: false }; - return m.json(opts).map(s => s.normal) - }; - - const toText = function (m) { - if (!m || !m.isView) { - return '' - } - return m.text('normal') - }; - - const toInfinitive$3 = function (root) { - const { verbToInfinitive } = root.methods.two.transform; - let str = root.text('normal'); - return verbToInfinitive(str, root.model, getTense(root)) - }; - - const toJSON = function (vb) { - let parsed = parseVerb$1(vb); - vb = vb.clone().toView(); - const info = getGrammar$1(vb, parsed); - return { - root: parsed.root.text(), - preAdverbs: toArray(parsed.adverbs.pre), - postAdverbs: toArray(parsed.adverbs.post), - auxiliary: toText(parsed.auxiliary), - negative: parsed.negative.found, - prefix: toText(parsed.prefix), - infinitive: toInfinitive$3(parsed.root), - grammar: info, - } - }; - var toJSON$1 = toJSON; - - const keep$5 = { tags: true }; - - // all verb forms are the same - const toInfinitive$1 = function (vb, parsed) { - const { verbToInfinitive } = vb.methods.two.transform; - const { root, auxiliary } = parsed; - let aux = auxiliary.terms().harden(); - let str = root.text('normal'); - str = verbToInfinitive(str, vb.model, getTense(root)); - if (str) { - vb.replace(root, str, keep$5).tag('Verb').firstTerm().tag('Infinitive'); - } - // remove any auxiliary terms - if (aux.found) { - vb.remove(aux); - } - // there is no real way to do this - // 'i not walk'? 'i walk not'? - if (parsed.negative.found) { - if (!vb.has('not')) { - vb.prepend('not'); - } - let does = doDoes(vb); - vb.prepend(does); - } - vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']); - return vb - }; - var toInfinitive$2 = toInfinitive$1; - - const keep$4 = { tags: true }; - - const fns = { - - noAux: (vb, parsed) => { - if (parsed.auxiliary.found) { - vb = vb.remove(parsed.auxiliary); - } - return vb - }, - - // walk->walked - simple: (vb, parsed) => { - const { verbConjugate, verbToInfinitive } = vb.methods.two.transform; - const root = parsed.root; - // 'i may' - if (root.has('#Modal')) { - return vb - } - let str = root.text({ keepPunct: false }); - str = verbToInfinitive(str, vb.model, getTense(root)); - let all = verbConjugate(str, vb.model); - // 'driven' || 'drove' - str = all.PastTense; - // all.Participle || all.PastTense - // but skip the 'is' participle.. - str = str === 'been' ? 'was' : str; - if (str === 'was') { - str = wasWere(vb); - } - if (str) { - vb.replace(root, str, keep$4); - } - return vb - }, - - both: function (vb, parsed) { - // 'he did not walk' - if (parsed.negative.found) { - vb.replace('will', 'did'); - return vb - } - // 'he walked' - vb = fns.simple(vb, parsed); - vb = fns.noAux(vb, parsed); - return vb - }, - - hasHad: vb => { - vb.replace('has', 'had', keep$4); - return vb - }, - - // some verbs have this weird past-tense form - // drive -> driven, (!drove) - hasParticiple: (vb, parsed) => { - const { verbConjugate, verbToInfinitive } = vb.methods.two.transform; - const root = parsed.root; - let str = root.text('normal'); - str = verbToInfinitive(str, vb.model, getTense(root)); - return verbConjugate(str, vb.model).Participle - }, - - - - }; - - - const forms$3 = { - // walk -> walked - 'infinitive': fns.simple, - // he walks -> he walked - 'simple-present': fns.simple, - // he walked - 'simple-past': noop, - // he will walk -> he walked - 'simple-future': fns.both, - - // he is walking - 'present-progressive': vb => { - vb.replace('are', 'were', keep$4); - vb.replace('(is|are|am)', 'was', keep$4); - return vb - }, - // he was walking - 'past-progressive': noop, - // he will be walking - 'future-progressive': (vb, parsed) => { - vb.match(parsed.root).insertBefore('was'); - vb.remove('(will|be)'); - return vb - }, - - // has walked -> had walked (?) - 'present-perfect': fns.hasHad, - // had walked - 'past-perfect': noop, - // will have walked -> had walked - 'future-perfect': (vb, parsed) => { - vb.match(parsed.root).insertBefore('had'); - if (vb.has('will')) { - vb = noWill(vb); - } - vb.remove('have'); - return vb - }, - - // has been walking -> had been - 'present-perfect-progressive': fns.hasHad, - // had been walking - 'past-perfect-progressive': noop, - // will have been -> had - 'future-perfect-progressive': vb => { - vb.remove('will'); - vb.replace('have', 'had', keep$4); - return vb - }, - - // got walked - 'passive-past': vb => { - // 'have been walked' -> 'had been walked' - vb.replace('have', 'had', keep$4); - return vb - }, - // is being walked -> 'was being walked' - 'passive-present': vb => { - vb.replace('(is|are)', 'was', keep$4); - return vb - }, - // will be walked -> had been walked - 'passive-future': (vb, parsed) => { - if (parsed.auxiliary.has('will be')) { - vb.match(parsed.root).insertBefore('had been'); - vb.remove('(will|be)'); - } - // will have been walked -> had been walked - if (parsed.auxiliary.has('will have been')) { - vb.replace('have', 'had', keep$4); - vb.remove('will'); - } - return vb - }, - - // would be walked -> 'would have been walked' - 'present-conditional': vb => { - vb.replace('be', 'have been'); - return vb - }, - // would have been walked - 'past-conditional': noop, - - // is going to drink -> was going to drink - 'auxiliary-future': vb => { - vb.replace('(is|are|am)', 'was', keep$4); - return vb - }, - // used to walk - 'auxiliary-past': noop, - // we do walk -> we did walk - 'auxiliary-present': vb => { - vb.replace('(do|does)', 'did', keep$4); - return vb - }, - - // must walk -> 'must have walked' - 'modal-infinitive': (vb, parsed) => { - // this modal has a clear tense - if (vb.has('can')) { - // can drive -> could drive - vb.replace('can', 'could', keep$4); - } else { - // otherwise, - // walk -> have walked - // drive -> have driven - fns.simple(vb, parsed); - vb.match('#Modal').insertAfter('have').tag('Auxiliary'); - } - return vb - }, - // must have walked - 'modal-past': noop, - // wanted to walk - 'want-infinitive': vb => { - vb.replace('(want|wants)', 'wanted', keep$4); - vb.remove('will'); - return vb - }, - // started looking - 'gerund-phrase': (vb, parsed) => { - parsed.root = parsed.root.not('#Gerund$'); - fns.simple(vb, parsed); - noWill(vb); - return vb - }, - }; - - const toPast = function (vb, parsed, form) { - // console.log(form) - if (forms$3.hasOwnProperty(form)) { - vb = forms$3[form](vb, parsed); - vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']); - return vb - } - // do nothing i guess? - return vb - }; - var toPast$1 = toPast; - - const keep$3 = { tags: true }; - - // walk->walked - const simple$1 = (vb, parsed) => { - const { verbConjugate, verbToInfinitive } = vb.methods.two.transform; - const root = parsed.root; - let str = root.text('normal'); - str = verbToInfinitive(str, vb.model, getTense(root)); - // 'i walk' vs 'he walks' - if (isPlural(vb) === false) { - str = verbConjugate(str, vb.model).PresentTense; - } - // handle copula - if (root.has('#Copula')) { - str = isAreAm(vb); - } - if (str) { - vb = vb.replace(root, str, keep$3); - vb.not('#Particle').tag('PresentTense'); - } - // vb.replace('not ' + str, str + ' not') - return vb - }; - - const toGerund$2 = (vb, parsed) => { - const { verbConjugate, verbToInfinitive } = vb.methods.two.transform; - const root = parsed.root; - let str = root.text('normal'); - str = verbToInfinitive(str, vb.model, getTense(root)); - // 'i walk' vs 'he walks' - if (isPlural(vb) === false) { - str = verbConjugate(str, vb.model).Gerund; - } - if (str) { - vb = vb.replace(root, str, keep$3); - vb.not('#Particle').tag('Gerund'); - } - return vb - }; - - const toInfinitive = (vb, parsed) => { - const { verbToInfinitive } = vb.methods.two.transform; - const root = parsed.root; - let str = parsed.root.text('normal'); - str = verbToInfinitive(str, vb.model, getTense(root)); - if (str) { - vb = vb.replace(parsed.root, str, keep$3); - } - return vb - }; - - - - const forms$2 = { - // walk - 'infinitive': simple$1, - // he walks -> he walked - 'simple-present': (vb, parsed) => { - const { verbConjugate } = vb.methods.two.transform; - let { root } = parsed; - // is it *only* a infinitive? - 'we buy' etc - if (root.has('#Infinitive')) { - let subj = getSubject$1(vb); - let m = subj.subject; - if (isPlural(vb) || m.has('i')) { - // keep it infinitive - return vb - } - let str = root.text('normal'); - let pres = verbConjugate(str, vb.model).PresentTense; - if (str !== pres) { - vb.replace(root, pres, keep$3); - } - } else { - return simple$1(vb, parsed) - } - return vb - }, - // he walked - 'simple-past': simple$1, - // he will walk -> he walked - 'simple-future': (vb, parsed) => { - const { root, auxiliary } = parsed; - // handle 'will be' - if (auxiliary.has('will') && root.has('be')) { - let str = isAreAm(vb); - vb.replace(root, str); - vb = vb.remove('will'); - vb.replace('not ' + str, str + ' not'); - } else { - simple$1(vb, parsed); - vb = vb.remove('will'); - } - return vb - }, - - // is walking -> - 'present-progressive': noop, - // was walking -> is walking - 'past-progressive': (vb, parsed) => { - let str = isAreAm(vb); - return vb.replace('(were|was)', str, keep$3) - }, - // will be walking -> is walking - 'future-progressive': vb => { - vb.match('will').insertBefore('is'); - vb.remove('be'); - return vb.remove('will') - }, - - // has walked -> (?) - 'present-perfect': (vb, parsed) => { - simple$1(vb, parsed); - vb = vb.remove('(have|had|has)'); - return vb - }, - - // had walked -> has walked - 'past-perfect': (vb, parsed) => { - // not 'we has walked' - let subj = getSubject$1(vb); - let m = subj.subject; - if (isPlural(vb) || m.has('i')) { - vb = toInf(vb, parsed);// we walk - vb.remove('had'); - return vb - } - vb.replace('had', 'has', keep$3); - return vb - }, - // will have walked -> has walked - 'future-perfect': vb => { - vb.match('will').insertBefore('has'); - return vb.remove('have').remove('will') - }, - - // has been walking - 'present-perfect-progressive': noop, - // had been walking - 'past-perfect-progressive': vb => vb.replace('had', 'has', keep$3), - // will have been -> has been - 'future-perfect-progressive': vb => { - vb.match('will').insertBefore('has'); - return vb.remove('have').remove('will') - }, - - // got walked -> is walked - // was walked -> is walked - // had been walked -> is walked - 'passive-past': (vb, parsed) => { - let str = isAreAm(vb); - if (vb.has('(had|have|has)') && vb.has('been')) { - vb.replace('(had|have|has)', str, keep$3); - vb.replace('been', 'being'); - return vb - } - return vb.replace('(got|was|were)', str) - }, - // is being walked -> - 'passive-present': noop, - // will be walked -> is being walked - 'passive-future': vb => { - vb.replace('will', 'is'); - return vb.replace('be', 'being') - }, - - // would be walked -> - 'present-conditional': noop, - // would have been walked -> - 'past-conditional': vb => { - vb.replace('been', 'be'); - return vb.remove('have') - }, - - // is going to drink -> is drinking - 'auxiliary-future': (vb, parsed) => { - toGerund$2(vb, parsed); - vb.remove('(going|to)'); - return vb - }, - // used to walk -> is walking - // did walk -> is walking - 'auxiliary-past': (vb, parsed) => { - // 'did provide' -> 'does provide' - if (parsed.auxiliary.has('did')) { - let str = doDoes(vb); - vb.replace(parsed.auxiliary, str); - return vb - } - toGerund$2(vb, parsed); - vb.replace(parsed.auxiliary, 'is'); - return vb - }, - // we do walk -> - 'auxiliary-present': noop, - - // must walk -> 'must have walked' - 'modal-infinitive': noop, - // must have walked - 'modal-past': (vb, parsed) => { - toInfinitive(vb, parsed); - return vb.remove('have') - }, - // started looking - 'gerund-phrase': (vb, parsed) => { - parsed.root = parsed.root.not('#Gerund$'); - simple$1(vb, parsed); - return vb.remove('(will|have)') - }, - // wanted to walk - 'want-infinitive': (vb, parsed) => { - let str = 'wants'; - if (isPlural(vb)) { - str = 'want';//we want - } - vb.replace('(want|wanted|wants)', str, keep$3); - vb.remove('will'); - return vb - }, - }; - - const toPresent = function (vb, parsed, form) { - // console.log(form) - if (forms$2.hasOwnProperty(form)) { - vb = forms$2[form](vb, parsed); - vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']); - return vb - } - return vb - }; - var toPresent$1 = toPresent; - - const keep$2 = { tags: true }; - - const simple = (vb, parsed) => { - const { verbToInfinitive } = vb.methods.two.transform; - const { root, auxiliary } = parsed; - // 'i may' - if (root.has('#Modal')) { - return vb - } - let str = root.text('normal'); - str = verbToInfinitive(str, vb.model, getTense(root)); - if (str) { - vb = vb.replace(root, str, keep$2); - vb.not('#Particle').tag('Verb'); - } - vb.prepend('will').match('will').tag('Auxiliary'); - vb.remove(auxiliary); - return vb - }; - - // 'will be walking' - const progressive = (vb, parsed) => { - const { verbConjugate, verbToInfinitive } = vb.methods.two.transform; - const { root, auxiliary } = parsed; - let str = root.text('normal'); - str = verbToInfinitive(str, vb.model, getTense(root)); - if (str) { - str = verbConjugate(str, vb.model).Gerund; - vb.replace(root, str, keep$2); - vb.not('#Particle').tag('PresentTense'); - } - vb.remove(auxiliary); - vb.prepend('will be').match('will be').tag('Auxiliary'); - return vb - }; - - const forms$1 = { - // walk -> - 'infinitive': simple, - // he walks -> - 'simple-present': simple, - // he walked - 'simple-past': simple, - // he will walk -> - 'simple-future': noop, - - // is walking -> - 'present-progressive': progressive, - // was walking -> - 'past-progressive': progressive, - // will be walking -> - 'future-progressive': noop, - - // has walked -> - 'present-perfect': (vb) => { - vb.match('(have|has)').replaceWith('will have'); - return vb - }, - // had walked -> - 'past-perfect': vb => vb.replace('(had|has)', 'will have'), - // will have walked -> - 'future-perfect': noop, - - // has been walking - 'present-perfect-progressive': vb => vb.replace('has', 'will have'), - // had been walking - 'past-perfect-progressive': vb => vb.replace('had', 'will have'), - // will have been -> - 'future-perfect-progressive': noop, - - // got walked -> - // was walked -> - // was being walked -> - // had been walked -> - 'passive-past': vb => { - if (vb.has('got')) { - return vb.replace('got', 'will get') - } - if (vb.has('(was|were)')) { - vb.replace('(was|were)', 'will be'); - return vb.remove('being') - } - if (vb.has('(have|has|had) been')) { - return vb.replace('(have|has|had) been', 'will be') - } - return vb - }, - // is being walked -> - 'passive-present': vb => { - vb.replace('being', 'will be'); - vb.remove('(is|are|am)'); - return vb - }, - // will be walked -> - 'passive-future': noop, - // would be walked -> - 'present-conditional': vb => vb.replace('would', 'will'), - // would have been walked -> - 'past-conditional': vb => vb.replace('would', 'will'), - - // is going to drink -> - 'auxiliary-future': noop, - // used to walk -> is walking - // did walk -> is walking - 'auxiliary-past': vb => { - if (vb.has('used') && vb.has('to')) { - vb.replace('used', 'will'); - return vb.remove('to') - } - vb.replace('did', 'will'); - return vb - }, - // we do walk -> - // he does walk -> - 'auxiliary-present': vb => { - return vb.replace('(do|does)', 'will') - }, - - // must walk -> - 'modal-infinitive': noop, - // must have walked - 'modal-past': noop, - // started looking - 'gerund-phrase': (vb, parsed) => { - parsed.root = parsed.root.not('#Gerund$'); - simple(vb, parsed); - return vb.remove('(had|have)') - }, - // wanted to walk - 'want-infinitive': vb => { - vb.replace('(want|wants|wanted)', 'will want'); - return vb - }, - }; - - const toFuture = function (vb, parsed, form) { - // console.log(form) - // is it already future-tense? - if (vb.has('will') || vb.has('going to')) { - return vb - } - if (forms$1.hasOwnProperty(form)) { - vb = forms$1[form](vb, parsed); - vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']); - return vb - } - return vb - }; - var toFuture$1 = toFuture; - - const keep$1 = { tags: true }; - - // all verb forms are the same - const toGerund = function (vb, parsed) { - // console.log(form) - const { verbToInfinitive, verbConjugate } = vb.methods.two.transform; - const { root, auxiliary } = parsed; - if (vb.has('#Gerund')) { - return vb - } - - // conjugate '-ing' verb - let str = root.text('normal'); - str = verbToInfinitive(str, vb.model, getTense(root)); - let gerund = verbConjugate(str, vb.model).Gerund; - // 'are walking', 'is walking' - if (gerund) { - gerund = `${isAreAm(vb)} ${gerund}`; - // console.log(root, gerund) - // vb.match(root).debug() - vb.replace(root, gerund, keep$1); - } - - // remove any existing auxiliary - if (auxiliary.found) { - vb.remove(auxiliary); - } - vb.replace('not is', 'is not'); - vb.replace('not are', 'are not'); - vb.fullSentence().compute(['preTagger', 'postTagger', 'chunks']); - return vb - }; - var toGerund$1 = toGerund; - - const keep = { tags: true }; - - // do/does not walk - const doesNot = function (vb, parsed) { - let does = doDoes(vb); - vb.prepend(does + ' not'); - return vb - }; - - const isWas = function (vb) { - // not be - let m = vb.match('be'); - if (m.found) { - m.prepend('not'); - return vb - } - // will not - m = vb.match('(is|was|am|are|will|were)'); - if (m.found) { - m.append('not'); - return vb - } - return vb - }; - - const hasCopula = (vb) => vb.has('(is|was|am|are|will|were|be)'); - - //vaguely, turn 'he is cool' into 'he is not cool' - const forms = { - - - // he walks' -> 'he does not walk' - 'simple-present': (vb, parsed) => { - // is/was - if (hasCopula(vb) === true) { - return isWas(vb) - } - // he walk - vb = toInf(vb, parsed); - // does not - vb = doesNot(vb); - return vb - }, - // 'he walked' -> 'he did not walk' - 'simple-past': (vb, parsed) => { - // is/was - if (hasCopula(vb) === true) { - return isWas(vb) - } - // he walk - vb = toInf(vb, parsed); - // vb.debug() - // did not walk - vb.prepend('did not'); - return vb - }, - - // walk! -> 'do not walk' - 'imperative': (vb) => { - vb.prepend('do not'); - return vb - }, - // walk -> does not walk - 'infinitive': (vb, parsed) => { - if (hasCopula(vb) === true) { - return isWas(vb) - } - return doesNot(vb) - }, - - 'passive-past': (vb) => { - // got walked -> did not get walked - if (vb.has('got')) { - vb.replace('got', 'get', keep); - vb.prepend('did not'); - return vb - } - // was walked, were walked - // was being walked - // had been walked, have been eaten - let m = vb.match('(was|were|had|have)'); - if (m.found) { - m.append('not'); - } - return vb - }, - 'auxiliary-past': (vb) => { - // used to walk - if (vb.has('used')) { - vb.prepend('did not'); - return vb - } - // he did walk - let m = vb.match('(did|does|do)'); - if (m.found) { - m.append('not'); - } - return vb - }, - - // wants to walk - 'want-infinitive': (vb, parsed) => { - // does not - vb = doesNot(vb); - // want - vb = vb.replace('wants', 'want', keep); - return vb - }, - - }; - - const toNegative = function (vb, parsed, form) { - // console.log(form) - if (vb.has('#Negative')) { - return vb - } - if (forms.hasOwnProperty(form)) { - vb = forms[form](vb, parsed); - return vb - } - - // 'not be' - let m = vb.matchOne('be'); - if (m.found) { - m.prepend('not'); - return vb - } - // is/was not - if (hasCopula(vb) === true) { - return isWas(vb) - } - - // 'would not' - m = vb.matchOne('(will|had|have|has|did|does|do|#Modal)'); - if (m.found) { - m.append('not'); - return vb - } - // do nothing i guess? - return vb - }; - var toNegative$1 = toNegative; - - // import debug from './debug.js' - - - // return the nth elem of a doc - const getNth = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - - const api = function (View) { - class Verbs extends View { - constructor(document, pointer, groups) { - super(document, pointer, groups); - this.viewType = 'Verbs'; - } - parse(n) { - return getNth(this, n).map(parseVerb$1) - } - json(opts, n) { - let m = getNth(this, n); - let arr = m.map(vb => { - let json = vb.toView().json(opts)[0] || {}; - json.verb = toJSON$1(vb); - return json - }, []); - return arr - } - subjects(n) { - return getNth(this, n).map(vb => { - parseVerb$1(vb); - return getSubject$1(vb).subject - }) - } - adverbs(n) { - return getNth(this, n).map(vb => vb.match('#Adverb')) - } - isSingular(n) { - return getNth(this, n).filter(vb => { - return getSubject$1(vb).plural !== true - }) - } - isPlural(n) { - return getNth(this, n).filter(vb => { - return getSubject$1(vb).plural === true - }) - } - isImperative(n) { - return getNth(this, n).filter(vb => vb.has('#Imperative')) - } - toInfinitive(n) { - return getNth(this, n).map(vb => { - let parsed = parseVerb$1(vb); - let info = getGrammar$1(vb, parsed); - return toInfinitive$2(vb, parsed, info.form) - }) - } - toPresentTense(n) { - return getNth(this, n).map(vb => { - let parsed = parseVerb$1(vb); - let info = getGrammar$1(vb, parsed); - return toPresent$1(vb, parsed, info.form) - }) - } - toPastTense(n) { - return getNth(this, n).map(vb => { - let parsed = parseVerb$1(vb); - let info = getGrammar$1(vb, parsed); - return toPast$1(vb, parsed, info.form) - }) - } - toFutureTense(n) { - return getNth(this, n).map(vb => { - let parsed = parseVerb$1(vb); - let info = getGrammar$1(vb, parsed); - return toFuture$1(vb, parsed, info.form) - }) - } - toGerund(n) { - return getNth(this, n).map(vb => { - let parsed = parseVerb$1(vb); - let info = getGrammar$1(vb, parsed); - return toGerund$1(vb, parsed, info.form) - }) - } - conjugate(n) { - return getNth(this, n).map(vb => { - let parsed = parseVerb$1(vb); - let info = getGrammar$1(vb, parsed); - // allow imperatives like 'go!' to be conjugated here (only) - if (info.form === 'imperative') { - info.form = 'simple-present'; - } - return { - Infinitive: toInfinitive$2(vb.clone(), parsed, info.form).text('normal'), - PastTense: toPast$1(vb.clone(), parsed, info.form).text('normal'), - PresentTense: toPresent$1(vb.clone(), parsed, info.form).text('normal'), - FutureTense: toFuture$1(vb.clone(), parsed, info.form).text('normal'), - } - }, []) - } - - /** return only verbs with 'not'*/ - isNegative() { - return this.if('#Negative') - } - /** return only verbs without 'not'*/ - isPositive() { - return this.ifNo('#Negative') - } - /** remove 'not' from these verbs */ - toPositive() { - let m = this.match('do not #Verb'); - if (m.found) { - m.remove('do not'); - } - return this.remove('#Negative') - } - toNegative(n) { - return getNth(this, n).map(vb => { - let parsed = parseVerb$1(vb); - let info = getGrammar$1(vb, parsed); - return toNegative$1(vb, parsed, info.form) - }) - } - // overloaded - keep Verb class - update(pointer) { - let m = new Verbs(this.document, pointer); - m._cache = this._cache; // share this full thing - return m - } - } - Verbs.prototype.toPast = Verbs.prototype.toPastTense; - Verbs.prototype.toPresent = Verbs.prototype.toPresentTense; - Verbs.prototype.toFuture = Verbs.prototype.toFutureTense; - - View.prototype.verbs = function (n) { - let vb = find(this); - vb = getNth(vb, n); - return new Verbs(this.document, vb.pointer) - }; - }; - var api$1 = api; - - var verbs = { - api: api$1, - }; - - nlp$1.plugin(chunker); // - nlp$1.plugin(misc); // - nlp$1.plugin(normalize); // - nlp$1.plugin(nouns); // - nlp$1.plugin(numbers); // - nlp$1.plugin(redact$1); // - nlp$1.plugin(sentences); // - nlp$1.plugin(topics); // - nlp$1.plugin(verbs); // - - return nlp$1; - -})); +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.0";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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\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(We),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 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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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(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||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(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=In(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},Tn=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})},Cn=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)})},Dn=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},On=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=Gn(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=Tn(a,t.hooks);return o=Cn(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),Dn(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===On(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 Vn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Vn.test(t))!function(e,t,n,r){let a=t.split(Vn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn,Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Rn=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:Ln(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Wn(t=e).forEach(Mn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Wn(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},Qn=function(e){let t=Wn(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},Zn={text:Un,txt:Un,array:Qn,flat:Qn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Yn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Wn(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 Yn(this.json),_n(this.json,e)}debug(){return Yn(this.json),_n(this.json,"debug"),this}}const er=function(e){let t=Rn(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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)}},ur=function(e){Object.assign(e.prototype,lr)},cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var gr=function(e){let t=[],n=e.split(mr);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 Or=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Br=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Vr=/['’]/,zr=/^[a-z]\.([a-z]\.)+/i,$r=/^[-+.][0-9]/,Fr=/^'[0-9]{2}/;var Sr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Or,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$r.test(e)?"'"===n&&Fr.test(e)?(n="",t):"":(n="",t)))).replace(Br,a=>(r=a,Vr.test(a)&&/[sn]['’]$/.test(t)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Hr=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,Lr=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var qr=function(e){return function(e){return!0===Mr.test(e)||!0===Wr.test(e)||!0===Jr.test(e)||!0===Lr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Kr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Hr(r),r=n(r,t),r=qr(r),e.normal=r},Rr={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:Ar,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(Cr);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=Ir(n),n=xr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Sr(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=>{Kr(e,t)}),n})}}}},Ur={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["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=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])})});var _r=["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 Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xr={};Object.keys(Yr).forEach((function(e){Yr[e].split("").forEach((function(t){Xr[t]=e}))}));const ea=/\//,ta=/[a-z]\.[a-z]/i,na=/[0-9]/;var ra=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])),ea.test(n)&&!ta.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 aa=/^\p{Letter}+-\p{Letter}+$/u;var oa=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"),aa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ia=function(e){let t=0,n=0,r=e.document;for(let e=0;esa(e,ra),machine:e=>sa(e,oa),normal:e=>sa(e,Kr),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 ha={safe:!0,min:3};var da={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ua},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ha,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ca(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(fn),m.extend(St),m.extend(Nn),m.extend(dr),m.plugin(be),m.extend(la),m.plugin(f),m.extend(Ge),m.extend(da),m.extend(Pe),m.extend(Bn);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"},ma={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ga=36,fa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ba=fa.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=ga,a=1;for(;n=0;n--,a*=ga){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ya=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=Pa(ma[e]);xa.test(e)?Object.keys(t).forEach(t=>{if(Ia[t]=e,"Noun|Verb"===e){let e=Ea(t,Ga);Ia[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ta="Adjective";var Ca={beforeTags:{Determiner:Ta,Possessive:Ta},afterTags:{Adjective:Ta},beforeWords:{seem:Ta,seemed:Ta,seems:Ta,feel:Ta,feels:Ta,felt:Ta,appear:Ta,appears:Ta,appeared:Ta,also:Ta,over:Ta,under:Ta,too:Ta,it:Ta,but:Ta,still:Ta,really:Ta,quite:Ta,well:Ta,very:Ta,deeply:Ta,profoundly:Ta,extremely:Ta,so:Ta,badly:Ta,mostly:Ta,totally:Ta,awfully:Ta,rather:Ta,nothing:Ta,something:Ta,anything:Ta},afterWords:{too:Ta,also:Ta,or:Ta}};const Da="Gerund";var Oa={beforeTags:{Adverb:Da,Preposition:Da,Conjunction:Da},afterTags:{Adverb:Da,Possessive:Da,Person:Da,Pronoun:Da,Determiner:Da,Copula:Da,Preposition:Da,Conjunction:Da,Comparative:Da},beforeWords:{been:Da,keep:Da,continue:Da,stop:Da,am:Da,be:Da,me:Da,began:Da,start:Da,starts:Da,started:Da,stops:Da,stopped:Da,help:Da,helps:Da,avoid:Da,avoids:Da,love:Da,loves:Da,loved:Da,hate:Da,hates:Da,hated:Da},afterWords:{you:Da,me:Da,her:Da,him:Da,them:Da,their:Da,it:Da,this:Da,there:Da,on:Da,about:Da,for:Da}},Ba={beforeTags:Object.assign({},Ca.beforeTags,Oa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ca.afterTags,Oa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ca.beforeWords,Oa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ca.afterWords,Oa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Va="Singular";var za={beforeTags:{Determiner:Va,Possessive:Va,Acronym:Va,Noun:Va,Adjective:Va,PresentTense:Va,Gerund:Va,PastTense:Va,Infinitive:Va,Date:Va},afterTags:{Value:Va,Modal:Va,Copula:Va,PresentTense:Va,PastTense:Va,Demonym:Va},beforeWords:{the:Va,with:Va,without:Va,of:Va,for:Va,any:Va,all:Va,on:Va,cut:Va,cuts:Va,save:Va,saved:Va,saves:Va,make:Va,makes:Va,made:Va,minus:Va,plus:Va,than:Va,another:Va,versus:Va,neither:Va,favorite:Va,best:Va,daily:Va,weekly:Va,linear:Va,binary:Va,mobile:Va,lexical:Va,technical:Va,computer:Va,scientific:Va,formal:Va},afterWords:{of:Va,system:Va,aid:Va,method:Va,utility:Va,tool:Va,reform:Va,therapy:Va,philosophy:Va,room:Va,authority:Va,says:Va,said:Va,wants:Va,wanted:Va}};const $a={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fa={beforeTags:Object.assign({},Ca.beforeTags,za.beforeTags,$a.beforeTags),afterTags:Object.assign({},Ca.afterTags,za.afterTags),beforeWords:Object.assign({},Ca.beforeWords,za.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,za.afterWords)};const Sa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ha={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ma={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ja={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var La={beforeTags:Object.assign({},Ca.beforeTags,Sa),afterTags:Object.assign({},Ca.afterTags,Ha),beforeWords:Object.assign({},Ca.beforeWords,Ma),afterWords:Object.assign({},Ca.afterWords,Ja)};const Wa="Infinitive";var qa={beforeTags:{Modal:Wa,Adverb:Wa,Negative:Wa,Plural:Wa},afterTags:{Determiner:Wa,Adverb:Wa,Possessive:Wa,Preposition:Wa},beforeWords:{i:Wa,we:Wa,you:Wa,they:Wa,to:Wa,please:Wa,will:Wa,have:Wa,had:Wa,would:Wa,could:Wa,should:Wa,do:Wa,did:Wa,does:Wa,can:Wa,must:Wa,us:Wa,me:Wa,he:Wa,she:Wa,it:Wa,being:Wa},afterWords:{the:Wa,me:Wa,you:Wa,him:Wa,her:Wa,them:Wa,it:Wa,a:Wa,an:Wa,up:Wa,down:Wa,by:Wa,out:Wa,off:Wa,when:Wa,all:Wa,to:Wa,because:Wa,although:Wa,before:Wa,how:Wa,otherwise:Wa,though:Wa,yet:Wa}};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Ca.beforeTags,qa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ca.afterTags,qa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Ca.beforeWords,qa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,qa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qa={},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"},_a={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Ya={beforeTags:Object.assign({},Oa.beforeTags,za.beforeTags,Ua),afterTags:Object.assign({},Oa.afterTags,za.afterTags,Qa),beforeWords:Object.assign({},Oa.beforeWords,za.beforeWords,Za),afterWords:Object.assign({},Oa.afterWords,za.afterWords,_a)},Xa={beforeTags:Object.assign({},qa.beforeTags,za.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qa.afterTags,za.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qa.beforeWords,za.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qa.afterWords,za.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ro={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ao={beforeTags:Object.assign({},to.beforeTags,ro.beforeTags),afterTags:Object.assign({},to.afterTags,ro.afterTags),beforeWords:Object.assign({},to.beforeWords,ro.beforeWords),afterWords:Object.assign({},to.afterWords,ro.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Ba,"Adj|Noun":Fa,"Adj|Past":La,"Adj|Present":Ra,"Noun|Verb":Xa,"Noun|Gerund":Ya,"Person|Noun":{beforeTags:Object.assign({},za.beforeTags,to.beforeTags),afterTags:Object.assign({},za.afterTags,to.afterTags),beforeWords:Object.assign({},za.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},za.afterWords,to.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,qa.beforeTags),afterTags:Object.assign({},to.afterTags,qa.afterTags),beforeWords:Object.assign({},to.beforeWords,qa.beforeWords),afterWords:Object.assign({},to.afterWords,qa.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const po="Adjective",mo="Infinitive",go="PresentTense",fo="Singular",bo="PastTense",vo="Adverb",yo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",jo="Modal",Eo="Participle";var xo=[null,null,{ea:fo,ia:Po,ic:po,ly:vo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":vo,"'ll":jo,"'re":"Copula",azy:po,eer:Po,end:ko,ped:bo,ffy:po,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:po,mum:po,nes:go,nny:po,ous:po,que:po,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:go,eld:bo,ken:Eo,ven:Eo,ten:Eo,ect:mo,ict:mo,ign:mo,ful:po,bal:po},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:po,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:go,ends:ko,enko:Ao,ette:fo,wner:fo,fies:go,fore:vo,gate:mo,gone:po,ices:yo,ints:yo,ruct:mo,ines:yo,ions:yo,less:po,llen:po,made:po,nsen:Ao,oses:go,ould:jo,some:po,sson:Ao,tion:fo,tage:Po,ique:fo,tive:po,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:po,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:po,nary:po},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:yo,bound:po,ettes:yo,fully:vo,ishes:go,ities:yo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:yo,rough:po,tches:go,tieth:"Ordinal",tures:yo,wards:vo,where:vo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const No="Adjective",Io="Noun",Go="Verb";var To=[null,null,{},{neo:Io,bio:Io,"de-":Go,"re-":Go,"un-":Go},{anti:Io,auto:Io,faux:No,hexa:Io,kilo:Io,mono:Io,nano:Io,octa:Io,poly:Io,semi:No,tele:Io,"pro-":No,"mis-":Go,"dis-":Go,"pre-":No},{anglo:Io,centi:Io,ethno:Io,ferro:Io,grand:Io,hepta:Io,hydro:Io,intro:Io,macro:Io,micro:Io,milli:Io,nitro:Io,penta:Io,quasi:No,radio:Io,tetra:Io,"omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:Io}];const Co="Adjective",Do="Infinitive",Oo="PresentTense",Bo="Singular",Vo="PastTense",zo="Adverb",$o="Expression",Fo="Actor",So="Verb",Ho="Noun",Mo="LastName";var Jo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Mo],[/.[^aeiou]ica$/,Bo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Vo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Vo,"rammed"],[/.[aeiou][sg]hed$/,Vo,"gushed"],[/.[aeiou]red$/,Vo,"hired"],[/.[aeiou]r?ried$/,Vo,"hurried"],[/[^aeiou]ard$/,Bo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,Vo,"hurled"],[/.[iao]sed$/,Vo,""],[/[aeiou]n?[cs]ed$/,Vo,""],[/[aeiou][rl]?[mnf]ed$/,Vo,""],[/[aeiou][ns]?c?ked$/,Vo,"bunked"],[/[aeiou]gned$/,Vo],[/[aeiou][nl]?ged$/,Vo],[/.[tdbwxyz]ed$/,Vo],[/[^aeiou][aeiou][tvx]ed$/,Vo],[/.[cdflmnprstv]ied$/,Vo,"emptied"]],e:[[/.[lnr]ize$/,Do,"antagonize"],[/.[^aeiou]ise$/,Do,"antagonise"],[/.[aeiou]te$/,Do,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,Mo,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Mo,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Bo,"magnesium"],[/[^aeiou]ism$/,Bo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,Fo,"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$/,Bo],[/[^i]fer$/,Do],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Bo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Bo],[/[a-z]'s$/,Ho],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,Mo]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Bo],[/[rdntkbhs]ly$/,zo],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,zo],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Bo]]};const Lo="Verb",Wo="Noun";var qo={leftTags:[["Adjective",Wo],["Possessive",Wo],["Determiner",Wo],["Adverb",Lo],["Pronoun",Lo],["Value",Wo],["Ordinal",Wo],["Modal",Lo],["Superlative",Wo],["Demonym",Wo],["Honorific","Person"]],leftWords:[["i",Lo],["first",Wo],["it",Lo],["there",Lo],["not",Lo],["because",Wo],["if",Wo],["but",Wo],["who",Lo],["this",Wo],["his",Wo],["when",Wo],["you",Lo],["very","Adjective"],["old",Wo],["never",Lo],["before",Wo],["a","Singular"],["the",Wo],["been",Lo]],rightTags:[["Copula",Wo],["PastTense",Wo],["Conjunction",Wo],["Modal",Wo]],rightWords:[["there",Lo],["me",Lo],["man","Adjective"],["only",Lo],["him",Lo],["it",Lo],["were",Wo],["took",Wo],["himself",Lo],["went",Wo],["who",Wo],["jr","Person"]]},Ko={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"},Uo={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 _o=/^.([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(_o);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(_o,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Xo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Xo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ri=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 ai=ni({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"}),oi=ni(Qo),ii=ni(Ro),si=ni(Uo),li=ri(ai),ui=ri(oi),ci=ri(ii),hi=ri(si),di=ni(Ko),pi=ni(Zo);var mi={fromPast:ai,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:hi,toComparative:di,toSuperlative:pi,fromComparative:ri(di),fromSuperlative:ri(pi)},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),{}),fi=[[/([^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,""]],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(vi[t].forEach(n=>e[n]=t),e),{});var yi=vi,wi=function(e){let t=e.substring(e.length-3);if(!0===yi.hasOwnProperty(t))return yi[t];let n=e.substring(e.length-2);return!0===yi.hasOwnProperty(n)?yi[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 Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},ji=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]),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"}],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"]),Gi={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")?xi.has(e)?e.replace(/ically/,"ical"):Ii.has(e)?null:Gi.hasOwnProperty(e)?Gi[e]:ji(e,Ni)||e:null};const Ci=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Di={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Di.hasOwnProperty(e))return Di[e];let t=ji(e,Ci);return t||e+"ly"};const Bi=[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"},zi=new Set(["terrible","annoying"]),$i=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},Fi=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:$i,adjToComparative:Fi,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:Ti,adjToAdverb:Oi,adjToNoun:function(e){if(Vi.hasOwnProperty(e))return Vi[e];if(zi.has(e))return null;let t=ji(e,Bi);return t||e+"ness"}}}},Mi=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 Ji=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Li=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=Ji(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ji(r,"Infinitive","Verb"),Object.assign(s,l),l=Ji(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ji(o,"Adjective","Superlative"),Object.assign(s,l),l=Ji(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Wi={two:{models:mi}};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"},Ki=function(e,t){const n={model:t,methods:Hi};let{lex:r,_multi:a}=Hi.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=Ai(e,Wi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=qi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(a,r,!1),"Adj|Present"===o&&(Ri(a,r,!0),function(e,t,n){let r=$i(e,n);t[r]=t[r]||"Superlative";let a=Fi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(a,Wi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(a,Wi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ki(n,t)};let Qi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:pa,models:mi,suffixPatterns:xo,prefixPatterns:To,endsWith:Jo,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:Ia,clues:ho,uncountable:{},orgWords:gi}};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=Ki(e.one.lexicon,e)).one.lexicon,e),e=Ui(e.two.switches,e),e=Li(e),e=Mi(e)}(Qi);var Zi=Qi;const _i=/^(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(_i.test(a.normal)){let e=a.normal.replace(_i,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Xi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const as=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(rs(e.normal)?Xi(e,"Plural","3-plural-guess"):Xi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ds=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>r.tags.has(e))?null:(os(e,t,n),r.tags.has("Noun")||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!hs[r.normal]?(Xi(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 ms=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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ps(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const gs=/['‘’‛‵′`´]/,fs=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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ys=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"]),ws=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ys.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)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};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){let a=e[t-1],o=e[t+1];if(ws(a)||ws(o))return Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ks(a)||ks(o))return Xi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Xi(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 Xi(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Es=/^[A-Z-]+$/,xs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[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===Es.test(n)||n.length>5||Gs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==xs.test(n)&&!0!==Is.test(n)&&!0!==js.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Gs.hasOwnProperty(r.text)&&js.test(r.text)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Xi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Es.test(r.text)&&r.text.length<=6?(Xi(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 Xi(s,l,"3-[neighbour]"),os(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},zs=function(e,t,n){0===e[t].tags.size&&(Xi(e[t],"Noun","3-[fallback]"),os(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)-?/,Js=(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},Ls=(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(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Ws={tagSwitch:Yi,checkSuffix:ms,checkRegex:bs,checkCase:ds,checkPrefix:vs,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")&&(Xi(o,"Verb","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Xi(o,"Adjective","3-[prefix]"),Xi(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=Js(e[t+1],n.afterWords);return o=o||Js(e[t-1],n.beforeWords),o=o||Ls(e[t-1],n.beforeTags,a),o=o||Ls(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ss[o]&&(u=Ss[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):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)},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 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"]},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},pl={in:!0,by:!0,for:!0};var ml=(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===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 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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>hl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},vl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.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;bl.hasOwnProperty(i)&&(s=bl[i](r,o,t)),s&&(s=vl(s,e),il(n,[a,o],s),fl(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=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)",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:"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: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:"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"}]),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,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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},El=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)},xl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?El(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},Nl={api:function(e){e.prototype.swap=xl}};m.plugin(tl),m.plugin(yl),m.plugin(jl),m.plugin(Nl);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},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{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},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 Jl=/\(/,Ll=/\)/,Wl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Jl,"");let t=e[e.length-1];t.post=t.post.replace(Ll,"")}),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={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Kl).join("|")+")"),Ul=RegExp("("+Object.values(Kl).join("|")+")"),Ql=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ul,"")})}(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 _l=/\./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(_l,""),e.normal=e.normal.replace(_l,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(_l,""),e.normal=e.normal.replace(_l,""),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)}},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),Zl(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",pu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var mu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=pu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[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 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 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")},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:vu(e,t),isSubordinate:bu(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);return t.found?(t.parse()[0]||{}).num: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 Eu=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 Nu=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 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=>Eu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return Nu(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)}}},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},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},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=Ju.hasOwnProperty(a)?Ju[a]:Mu(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:Mu(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},Wu=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"],Ru=[[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"]],Uu=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=Wu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ru.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(Uu(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=Wu(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(" ")},Zu=function(e){return e.numerator&&e.denominator?`${Qu({num:e.numerator})} out of ${Qu({num:e.denominator})}`:""};const _u={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 _u.hasOwnProperty(n)?t[t.length-1]=_u[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},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(Lu)}get(e){return ec(this,e).map(Lu)}json(e){return ec(this,e).map(t=>{let n=t.toView().json(e)[0],r=Lu(t);return n.fraction=r,n},[])}toDecimal(e){return ec(this,e).forEach(e=>{let{decimal:t}=Lu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return ec(this,e).forEach(e=>{let t=Lu(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=Lu(e),n=Xu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return ec(this,e).forEach(e=>{let t=Lu(e),n=Zu(t);e.replaceWith(n)}),this}toPercentage(e){return ec(this,e).forEach(e=>{let{decimal:t}=Lu(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},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=Lu(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")}},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=Wu(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},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},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},dc={api:function(e){tc(e),hc(e)}};const pc={people:!0,emails:!0,phoneNumbers:!0,places:!0},mc=function(e={}){return!1!==(e=Object.assign({},pc,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=mc}},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))})},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}},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},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},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},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}=vc(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=>(vc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(vc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(vc(e),e=kc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(vc(e),Pc(e)))}toNegative(e){return Ac(this,e).map(e=>(vc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(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 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)}},Ec=function(e){return e.match("#Honorific+? #Person+")},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 Nc="male",Ic="female",Gc={mr:Nc,mrs:Ic,miss:Ic,madam:Ic,king:Nc,queen:Ic,duke:Nc,duchess:Ic,baron:Nc,baroness:Ic,count:Nc,countess:Ic,prince:Nc,princess:Ic,sire:Nc,dame:Ic,lady:Ic,ayatullah:Nc,congressman:Nc,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 Nc;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 Nc}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 Nc;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(xc)}json(e){return Cc(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: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=Ec(this);return t=Cc(t,e),new People(this.document,t.pointer)}},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},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)}},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},Fc={api:function(e){Dc(e),Bc(e),Vc(e),$c(e)}},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},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},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 Jc=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},Lc=function(e){return e.match("#Negative")},Wc=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:Jc(t,n),negative:Lc(t),phrasal:Wc(n)}};const Kc={tense:"PresentTense"},Rc={conditional:!0},Uc={tense:"FutureTense"},Qc={progressive:!0},Zc={tense:"PastTense"},_c={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$",[Zc]],["^will want to #Infinitive$",[Uc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Zc]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Uc]],["^have #PastTense #Gerund$",[Zc]],["^will have #PastTense #Gerund$",[Zc]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[Zc]]],"simple-future":[["^will #Adverb? #Infinitive",[Uc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,Qc]]],"past-progressive":[["^(was|were) #Gerund$",[Zc,Qc]]],"future-progressive":[["^will be #Gerund$",[Uc,Qc]]],"present-perfect":[["^(has|have) #PastTense$",[Zc,_c]]],"past-perfect":[["^had #PastTense$",[Zc,_c]],["^had #PastTense to #Infinitive",[Zc,_c]]],"future-perfect":[["^will have #PastTense$",[Uc,_c]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Zc,Qc]]],"past-perfect-progressive":[["^had been #Gerund$",[Zc,Qc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Uc,Qc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Zc,Yc]],["^(was|were) being (#PastTense|#Participle)",[Zc,Yc]],["^(had|have) been (#PastTense|#Participle)",[Zc,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)",[Uc,Yc,Rc]],["will be being? (#PastTense|#Participle)",[Uc,Yc,Rc]]],"present-conditional":[["would be #PastTense",[Kc,Rc]]],"past-conditional":[["would have been #PastTense",[Zc,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Uc]]],"auxiliary-past":[["^did #Infinitive$",[Zc,{plural:!1}]],["^used to #Infinitive$",[Zc,_c]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Kc,_c,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Zc]]],"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,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},ph=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),mh=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"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var bh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:mh(t.adverbs.pre),postAdverbs:mh(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const vh={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,vh).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=ph(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),ph(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},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).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},Nh={infinitive:Eh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Eh(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":Eh,"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 Eh(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)=>(Eh(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$"),Eh(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 Nh.hasOwnProperty(n)?((e=Nh[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 Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var Lh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Jh(this,e).map(qc)}json(e,t){return Jh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=bh(t),n},[])}subjects(e){return Jh(this,e).map(e=>(qc(e),ih(e).subject))}adverbs(e){return Jh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Jh(this,e).filter(e=>!0!==ih(e).plural)}isPlural(e){return Jh(this,e).filter(e=>!0===ih(e).plural)}isImperative(e){return Jh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return yh(e,t,n.form)})}toPresentTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ih(e,t,n.form)})}toPastTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ah(e,t,n.form)})}toFutureTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Oh(e,t,n.form)})}toGerund(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Vh(e,t,n.form)})}conjugate(e){return Jh(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 Jh(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=Jh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Sl),m.plugin(su),m.plugin(mu),m.plugin(Gu),m.plugin(dc),m.plugin(gc),m.plugin(jc),m.plugin(Fc),m.plugin(Lh),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 eb9d7327f..ecba0d8dc 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.0";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(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},C.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 D=C;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;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 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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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 Ge={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 Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\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(We),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 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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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 Tt=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 Ct=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 Dt=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 Bt=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]&&Ct(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(!Dt(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 Vt=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(!Tt(a))return null}if(!0!==e.optional)return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Gt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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(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||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&_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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var bn=function(e,t){let n=vn(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 yn={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:vn,splitAll:bn}}};var wn=function(e,t){let n=e.concat(t),r=vn(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=>fn(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 Pn=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},jn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Nn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=jn(e,this.document),this.update(e)};var En={methods:yn,api:function(e){Object.assign(e.prototype,Nn)}};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 In=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),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(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)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Gn=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 Tn=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.find(e=>r.has(e)))})};var Cn=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 Dn=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=In(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);t.hooks||console.log(t);let o=Gn(a,t.hooks);return o=Tn(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),Cn(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===Dn(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 Bn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},zn=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(),Bn.test(t))!function(e,t,n,r){let a=t.split(Bn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),zn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,r))};var Fn=$n;var Sn=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=>Hn({id:e})),t}return[Hn({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},Wn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Kn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Jn(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Ln(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ln(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},Un=function(e){let t=Ln(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},Qn={text:Rn,txt:Rn,array:Un,flat:Un},Zn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},_n=e=>{Ln(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Wn(e))return e.forEach(e=>this.add(qn(e),t)),this;e=qn(e);let n=Hn({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 Ln(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Ln(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 Ln(this.json)}fillDown(){var e;return e=this.json,Ln(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 Wn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){_n(this.json);let e=Ln(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 _n(this.json),Zn(this.json,e)}debug(){return _n(this.json),Zn(this.json,"debug"),this}}const Xn=function(e){let t=Kn(e);return new g$1(t)};Xn.prototype.plugin=function(e){e(this)};var er={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const tr=function(e){if(er.hasOwnProperty(e.id))return er[e.id];if(er.hasOwnProperty(e.is))return er[e.is];let t=e._cache.parents.find(e=>er[e]);return er[t]};var nr=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:tr(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 rr=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=rr(e[t].children),e[t].not=rr(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 or={one:{setTag:Fn,unTag:Sn,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 Xn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return nr(n)}}};const ir=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sr={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||""),ir(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 ir(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 lr=function(e){Object.assign(e.prototype,sr)};var ur={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 cr=new Set(["Auxiliary","Possessive"]);var hr={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(cr.has(e)||!t.hasOwnProperty(n))return 1;if(cr.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:or,api:lr,lib:ur};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,pr=/((?:\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.0";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(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},C.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 D=C;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;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 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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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 Ge={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 Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\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(We),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 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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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 Tt=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 Ct=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 Dt=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 Bt=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]&&Ct(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(!Dt(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 Vt=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(!Tt(a))return null}if(!0!==e.optional)return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Gt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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(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||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&_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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var bn=function(e,t){let n=vn(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 yn={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:vn,splitAll:bn}}};var wn=function(e,t){let n=e.concat(t),r=vn(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=>fn(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 Pn=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},jn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Nn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=jn(e,this.document),this.update(e)};var En={methods:yn,api:function(e){Object.assign(e.prototype,Nn)}};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 In=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: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=xn(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 Gn=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 Tn=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 Cn=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 Dn=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=In(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=Gn(a,t.hooks);return o=Tn(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),Cn(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===Dn(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 Bn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},zn=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(),Bn.test(t))!function(e,t,n,r){let a=t.split(Bn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),zn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,r))};var Fn=$n;var Sn=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=>Hn({id:e})),t}return[Hn({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},Wn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Kn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Jn(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Ln(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ln(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},Un=function(e){let t=Ln(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},Qn={text:Rn,txt:Rn,array:Un,flat:Un},Zn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},_n=e=>{Ln(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Wn(e))return e.forEach(e=>this.add(qn(e),t)),this;e=qn(e);let n=Hn({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 Ln(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Ln(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 Ln(this.json)}fillDown(){var e;return e=this.json,Ln(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 Wn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){_n(this.json);let e=Ln(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 _n(this.json),Zn(this.json,e)}debug(){return _n(this.json),Zn(this.json,"debug"),this}}const Xn=function(e){let t=Kn(e);return new g$1(t)};Xn.prototype.plugin=function(e){e(this)};var er={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const tr=function(e){if(er.hasOwnProperty(e.id))return er[e.id];if(er.hasOwnProperty(e.is))return er[e.is];let t=e._cache.parents.find(e=>er[e]);return er[t]};var nr=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:tr(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 rr=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=rr(e[t].children),e[t].not=rr(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 or={one:{setTag:Fn,unTag:Sn,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 Xn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return nr(n)}}};const ir=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sr={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||""),ir(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 ir(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 lr=function(e){Object.assign(e.prototype,sr)};var ur={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 cr=new Set(["Auxiliary","Possessive"]);var hr={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(cr.has(e)||!t.hasOwnProperty(n))return 1;if(cr.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:or,api:lr,lib:ur};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,pr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var mr=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 Dr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Or=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Br=/['’]/,Vr=/^[a-z]\.([a-z]\.)+/i,zr=/^[-+.][0-9]/,$r=/^'[0-9]{2}/;var Fr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Dr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!zr.test(e)?"'"===n&&$r.test(e)?(n="",t):"":(n="",t)))).replace(Or,a=>(r=a,Br.test(a)&&/[sn]['’]$/.test(t)&&!1===Br.test(n)?(r=r.replace(Br,""),"'"):!0===Vr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Sr=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 Hr=/([A-Z]\.)+[A-Z]?,?$/,Mr=/^[A-Z]\.,?$/,Jr=/[A-Z]{2,}('s|,)?$/,Lr=/([a-z]\.)+[a-z]\.?$/;var Wr=function(e){return function(e){return!0===Hr.test(e)||!0===Lr.test(e)||!0===Mr.test(e)||!0===Jr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var qr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Sr(r),r=n(r,t),r=Wr(r),e.normal=r};var Kr={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:Pr,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(Tr);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=xr(n),n=Nr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Fr(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})}}}};var Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ur={},Qr={};[[["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=>{Ur[t]=!0,Qr[t]="Abbreviation",void 0!==e[1]&&(Qr[t]=[Qr[t],e[1]])})});var Zr=["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 _r={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(_r).forEach((function(e){_r[e].split("").forEach((function(t){Yr[t]=e}))}));const Xr=/\//,ea=/[a-z]\.[a-z]/i,ta=/[0-9]/;var na=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])),Xr.test(n)&&!ea.test(n)&&!ta.test(n)){let t=n.split(Xr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ra=/^\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"),ra.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var oa=function(e){let t=0,n=0,r=e.document;for(let e=0;eia(e,na),machine:e=>ia(e,aa),normal:e=>ia(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 ca={safe:!0,min:3};var ha={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=la},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ca,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ua(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(gn),m.extend(St),m.extend(En),m.extend(hr),m.plugin(ve),m.extend(sa),m.plugin(f),m.extend(Ge),m.extend(ha),m.extend(Pe),m.extend(On);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"},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",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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ma="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ga=ma.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var fa=function(e){if(void 0!==ga[e])return ga[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 va=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=ya(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=wa(pa[e]);ja.test(e)?Object.keys(t).forEach(t=>{if(Ea[t]=e,"Noun|Verb"===e){let e=Aa(t,xa);Ea[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ia="Adjective";var Ga={beforeTags:{Determiner:Ia,Possessive:Ia},afterTags:{Adjective:Ia},beforeWords:{seem:Ia,seemed:Ia,seems:Ia,feel:Ia,feels:Ia,felt:Ia,appear:Ia,appears:Ia,appeared:Ia,also:Ia,over:Ia,under:Ia,too:Ia,it:Ia,but:Ia,still:Ia,really:Ia,quite:Ia,well:Ia,very:Ia,deeply:Ia,profoundly:Ia,extremely:Ia,so:Ia,badly:Ia,mostly:Ia,totally:Ia,awfully:Ia,rather:Ia,nothing:Ia,something:Ia,anything:Ia},afterWords:{too:Ia,also:Ia,or:Ia}};const Ta="Gerund";var Ca={beforeTags:{Adverb:Ta,Preposition:Ta,Conjunction:Ta},afterTags:{Adverb:Ta,Possessive:Ta,Person:Ta,Pronoun:Ta,Determiner:Ta,Copula:Ta,Preposition:Ta,Conjunction:Ta,Comparative:Ta},beforeWords:{been:Ta,keep:Ta,continue:Ta,stop:Ta,am:Ta,be:Ta,me:Ta,began:Ta,start:Ta,starts:Ta,started:Ta,stops:Ta,stopped:Ta,help:Ta,helps:Ta,avoid:Ta,avoids:Ta,love:Ta,loves:Ta,loved:Ta,hate:Ta,hates:Ta,hated:Ta},afterWords:{you:Ta,me:Ta,her:Ta,him:Ta,them:Ta,their:Ta,it:Ta,this:Ta,there:Ta,on:Ta,about:Ta,for:Ta}};var Da={beforeTags:Object.assign({},Ga.beforeTags,Ca.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ga.afterTags,Ca.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ga.beforeWords,Ca.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ga.afterWords,Ca.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Oa="Singular";var Ba={beforeTags:{Determiner:Oa,Possessive:Oa,Acronym:Oa,Noun:Oa,Adjective:Oa,PresentTense:Oa,Gerund:Oa,PastTense:Oa,Infinitive:Oa,Date:Oa},afterTags:{Value:Oa,Modal:Oa,Copula:Oa,PresentTense:Oa,PastTense:Oa,Demonym:Oa},beforeWords:{the:Oa,with:Oa,without:Oa,of:Oa,for:Oa,any:Oa,all:Oa,on:Oa,cut:Oa,cuts:Oa,save:Oa,saved:Oa,saves:Oa,make:Oa,makes:Oa,made:Oa,minus:Oa,plus:Oa,than:Oa,another:Oa,versus:Oa,neither:Oa,favorite:Oa,best:Oa,daily:Oa,weekly:Oa,linear:Oa,binary:Oa,mobile:Oa,lexical:Oa,technical:Oa,computer:Oa,scientific:Oa,formal:Oa},afterWords:{of:Oa,system:Oa,aid:Oa,method:Oa,utility:Oa,tool:Oa,reform:Oa,therapy:Oa,philosophy:Oa,room:Oa,authority:Oa,says:Oa,said:Oa,wants:Oa,wanted:Oa}};const Va={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var za={beforeTags:Object.assign({},Ga.beforeTags,Ba.beforeTags,Va.beforeTags),afterTags:Object.assign({},Ga.afterTags,Ba.afterTags),beforeWords:Object.assign({},Ga.beforeWords,Ba.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ga.afterWords,Ba.afterWords)};const $a={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Fa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Sa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ha={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ma={beforeTags:Object.assign({},Ga.beforeTags,$a),afterTags:Object.assign({},Ga.afterTags,Fa),beforeWords:Object.assign({},Ga.beforeWords,Sa),afterWords:Object.assign({},Ga.afterWords,Ha)};const Ja="Infinitive";var La={beforeTags:{Modal:Ja,Adverb:Ja,Negative:Ja,Plural:Ja},afterTags:{Determiner:Ja,Adverb:Ja,Possessive:Ja,Preposition:Ja},beforeWords:{i:Ja,we:Ja,you:Ja,they:Ja,to:Ja,please:Ja,will:Ja,have:Ja,had:Ja,would:Ja,could:Ja,should:Ja,do:Ja,did:Ja,does:Ja,can:Ja,must:Ja,us:Ja,me:Ja,he:Ja,she:Ja,it:Ja,being:Ja},afterWords:{the:Ja,me:Ja,you:Ja,him:Ja,her:Ja,them:Ja,it:Ja,a:Ja,an:Ja,up:Ja,down:Ja,by:Ja,out:Ja,off:Ja,when:Ja,all:Ja,to:Ja,because:Ja,although:Ja,before:Ja,how:Ja,otherwise:Ja,though:Ja,yet:Ja}};const Wa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var qa={beforeTags:Object.assign({},Ga.beforeTags,La.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ga.afterTags,La.afterTags,Wa.afterTags),beforeWords:Object.assign({},Ga.beforeWords,La.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ga.afterWords,La.afterWords,{to:void 0})};const Ka={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Ra={},Ua={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Qa={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Za={beforeTags:Object.assign({},Ca.beforeTags,Ba.beforeTags,Ka),afterTags:Object.assign({},Ca.afterTags,Ba.afterTags,Ra),beforeWords:Object.assign({},Ca.beforeWords,Ba.beforeWords,Ua),afterWords:Object.assign({},Ca.afterWords,Ba.afterWords,Qa)};var _a={beforeTags:Object.assign({},La.beforeTags,Ba.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},La.afterTags,Ba.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},La.beforeWords,Ba.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},La.afterWords,Ba.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Ya="Person";var Xa={beforeTags:{Honorific:Ya,Person:Ya,Preposition:Ya},afterTags:{Person:Ya,ProperNoun:Ya,Verb:Ya},ownTags:{ProperNoun:Ya},beforeWords:{hi:Ya,hey:Ya,yo:Ya,dear:Ya,hello:Ya},afterWords:{said:Ya,says:Ya,told:Ya,tells:Ya,feels:Ya,felt:Ya,seems:Ya,thinks:Ya,thought:Ya,spends:Ya,spendt:Ya,plays:Ya,played:Ya,sing:Ya,sang:Ya,learn:Ya,learned:Ya,wants:Ya,wanted:Ya}};const eo="Month",to={beforeTags:{Date:eo,Value:eo},afterTags:{Date:eo,Value:eo},beforeWords:{by:eo,in:eo,on:eo,during:eo,after:eo,before:eo,between:eo,until:eo,til:eo,sometime:eo,of:eo,this:eo,next:eo,last:eo,previous:eo,following:eo},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Xa.beforeTags,to.beforeTags),afterTags:Object.assign({},Xa.afterTags,to.afterTags),beforeWords:Object.assign({},Xa.beforeWords,to.beforeWords),afterWords:Object.assign({},Xa.afterWords,to.afterWords)};const ro={Place:"Place"},ao={Place:"Place",Abbreviation:"Place"},oo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const so={"Adj|Gerund":Da,"Adj|Noun":za,"Adj|Past":Ma,"Adj|Present":qa,"Noun|Verb":_a,"Noun|Gerund":Za,"Person|Noun":{beforeTags:Object.assign({},Ba.beforeTags,Xa.beforeTags),afterTags:Object.assign({},Ba.afterTags,Xa.afterTags),beforeWords:Object.assign({},Ba.beforeWords,Xa.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ba.afterWords,Xa.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Xa.beforeTags,La.beforeTags),afterTags:Object.assign({},Xa.afterTags,La.afterTags),beforeWords:Object.assign({},Xa.beforeWords,La.beforeWords),afterWords:Object.assign({},Xa.afterWords,La.afterWords)},"Person|Place":{beforeTags:Object.assign({},ro,Xa.beforeTags),afterTags:Object.assign({},ao,Xa.afterTags),beforeWords:Object.assign({},oo,Xa.beforeWords),afterWords:Object.assign({},io,Xa.afterWords)}},lo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};so["Plural|Verb"]={beforeWords:lo(so["Noun|Verb"].beforeWords,{}),afterWords:lo(so["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:lo(so["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:lo(so["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var uo=so;const co="Adjective",ho="Infinitive",po="PresentTense",mo="Singular",go="PastTense",fo="Adverb",vo="Plural",bo="Verb",yo="LastName",wo="Participle";var ko=[null,null,{ea:mo,ia:"Noun",ic:co,ly:fo,"'n":bo,"'t":bo},{oed:go,ued:go,xed:go," so":fo,"'ll":"Modal","'re":"Copula",azy:co,eer:"Noun",end:bo,ped:go,ffy:co,ify:ho,ing:"Gerund",ize:ho,ibe:ho,lar:co,mum:co,nes:po,nny:co,ous:co,que:co,rol:mo,sis:mo,ogy:mo,oid:mo,ian:mo,zes:po,eld:go,ken:wo,ven:wo,ten:wo,ect:ho,ict:ho,ign:ho,ful:co,bal:co},{amed:go,aped:go,ched:go,lked:go,rked:go,reed:go,nded:go,mned:co,cted:go,dged:go,ield:mo,akis:yo,cede:ho,chuk:yo,czyk:yo,ects:po,ends:bo,enko:yo,ette:mo,wner:mo,fies:po,fore:fo,gate:ho,gone:co,ices:vo,ints:vo,ruct:ho,ines:vo,ions:vo,less:co,llen:co,made:co,nsen:yo,oses:po,ould:"Modal",some:co,sson:yo,tion:mo,tage:"Noun",ique:mo,tive:co,tors:"Noun",vice:mo,lier:mo,fier:mo,wned:go,gent:mo,tist:mo,pist:mo,rist:mo,mist:mo,yist:mo,vist:mo,lite:mo,site:mo,rite:mo,mite:mo,bite:mo,mate:mo,date:mo,ndal:mo,vent:mo,uist:mo,gist:mo,note:mo,cide:mo,wide:co,vide:ho,ract:ho,duce:ho,pose:ho,eive:ho,lyze:ho,lyse:ho,iant:co,nary:co},{elist:mo,holic:mo,phite:mo,tized:go,urned:go,eased:go,ances:vo,bound:co,ettes:vo,fully:fo,ishes:po,ities:vo,marek:yo,nssen:yo,ology:"Noun",osome:mo,tment:mo,ports:vo,rough:co,tches:po,tieth:"Ordinal",tures:vo,wards:fo,where:fo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:mo,scent:mo,onist:mo,anist:mo,alist:mo,olist:mo,icist:mo,ounce:ho,iable:co,borne:co,gnant:co,inant:co,igent:co,atory:co,rient:mo,dient:mo},{auskas:yo,parent:mo,cedent:mo,ionary:mo,cklist:mo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:yo,borough:"Place",sdottir:yo}];const Po="Adjective";var Ao=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Po,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Po,tele:"Noun","pro-":Po,"mis-":"Verb","dis-":"Verb","pre-":Po},{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:Po,radio:"Noun",tetra:"Noun","omni-":Po,"post-":Po},{pseudo:Po,"extra-":Po,"hyper-":Po,"inter-":Po,"intra-":Po,"deca-":Po},{electro:"Noun"}];const jo="Adjective",No="Infinitive",Eo="PresentTense",xo="Singular",Io="PastTense",Go="Expression",To="LastName";var Co={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,To],[/.[^aeiou]ica$/,xo,"harmonica"],[/^([hyj]a+)+$/,Go,"haha"]],c:[[/.[^aeiou]ic$/,jo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Io,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Io,"rammed"],[/.[aeiou][sg]hed$/,Io,"gushed"],[/.[aeiou]red$/,Io,"hired"],[/.[aeiou]r?ried$/,Io,"hurried"],[/[^aeiou]ard$/,xo,"steward"],[/[aeiou][^aeiou]id$/,jo,""],[/.[vrl]id$/,jo,"livid"],[/..led$/,Io,"hurled"],[/.[iao]sed$/,Io,""],[/[aeiou]n?[cs]ed$/,Io,""],[/[aeiou][rl]?[mnf]ed$/,Io,""],[/[aeiou][ns]?c?ked$/,Io,"bunked"],[/[aeiou]gned$/,Io],[/[aeiou][nl]?ged$/,Io],[/.[tdbwxyz]ed$/,Io],[/[^aeiou][aeiou][tvx]ed$/,Io],[/.[cdflmnprstv]ied$/,Io,"emptied"]],e:[[/.[lnr]ize$/,No,"antagonize"],[/.[^aeiou]ise$/,No,"antagonise"],[/.[aeiou]te$/,No,"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$/,To,"..ovich"],[/^ug?h+$/,Go,"ughh"],[/^uh[ -]?oh$/,Go,"uhoh"],[/[a-z]-ish$/,jo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,To,"polish-male"]],k:[[/^(k){2}$/,Go,"kkkk"]],l:[[/.[gl]ial$/,jo,"familial"],[/.[^aeiou]ful$/,jo,"fitful"],[/.[nrtumcd]al$/,jo,"natal"],[/.[^aeiou][ei]al$/,jo,"familial"]],m:[[/.[^aeiou]ium$/,xo,"magnesium"],[/[^aeiou]ism$/,xo,"schism"],[/^[hu]m+$/,Go,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,jo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Go,"noooo"],[/^(yo)+$/,Go,"yoo"],[/^wo{2,}[pt]?$/,Go,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,xo],[/[^i]fer$/,No],[/.[^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$/,Eo],[/.[rln]ates$/,Eo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,xo],[/.[aeiou]sks$/,Eo],[/.[aeiou]kes$/,Eo],[/[aeiou][^aeiou]is$/,xo],[/[a-z]'s$/,"Noun"],[/^yes+$/,Go]],v:[[/.[^aeiou][ai][kln]ov$/,To]],y:[[/.[cts]hy$/,jo],[/.[st]ty$/,jo],[/.[tnl]ary$/,jo],[/.[oe]ry$/,xo],[/[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$/,xo]]};const Do="Verb",Oo="Noun";var Bo={leftTags:[["Adjective",Oo],["Possessive",Oo],["Determiner",Oo],["Adverb",Do],["Pronoun",Do],["Value",Oo],["Ordinal",Oo],["Modal",Do],["Superlative",Oo],["Demonym",Oo],["Honorific","Person"]],leftWords:[["i",Do],["first",Oo],["it",Do],["there",Do],["not",Do],["because",Oo],["if",Oo],["but",Oo],["who",Do],["this",Oo],["his",Oo],["when",Oo],["you",Do],["very","Adjective"],["old",Oo],["never",Do],["before",Oo],["a","Singular"],["the",Oo],["been",Do]],rightTags:[["Copula",Oo],["PastTense",Oo],["Conjunction",Oo],["Modal",Oo]],rightWords:[["there",Do],["me",Do],["man","Adjective"],["only",Do],["him",Do],["it",Do],["were",Oo],["took",Oo],["himself",Do],["went",Oo],["who",Oo],["jr","Person"]]},Vo={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"},Fo={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"},So={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 Ho=/^.([0-9]+)/;var Mo=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(Ho);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Ho,"")}(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},Lo=/^([0-9]+)/,Wo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Lo);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Lo,"")]}(n[0],n[1])})};var qo=function(e={}){return(e=Object.assign({},e)).rules=Wo(e.rules),e.rules=Jo(e.rules),e.rev&&(e.rev=Wo(e.rev),e.rev=Jo(e.rev)),e.exceptions=Wo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Ko=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 Ro=qo({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"}),Uo=qo(Fo),Qo=qo(zo),Zo=qo($o),_o=Ko(Ro),Yo=Ko(Uo),Xo=Ko(Qo),ei=Ko(Zo),ti=qo(Vo),ni=qo(So);var ri={fromPast:Ro,fromPresent:Uo,fromGerund:Qo,fromParticiple:Zo,toPast:_o,toPresent:Yo,toGerund:Xo,toParticiple:ei,toComparative:ti,toSuperlative:ni,fromComparative:Ko(ti),fromSuperlative:Ko(ni)},ai=["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),{}),oi=[[/([^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 ii=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(si[t].forEach(n=>e[n]=t),e),{});var li=si;var ui=function(e){let t=e.substring(e.length-3);if(!0===li.hasOwnProperty(t))return li[t];let n=e.substring(e.length-2);return!0===li.hasOwnProperty(n)?li[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ci={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=ui(e)),ci.hasOwnProperty(e))c=ci[e];else if("Participle"===n)c=Mo(l,i);else if("PastTense"===n)c=Mo(l,r);else if("PresentTense"===n)c=Mo(l,a);else{if("Gerund"!==n)return e;c=Mo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var di=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:Mo(i,n),PresentTense:Mo(i,r),Gerund:Mo(i,a),FutureTense:"will "+e},u=Mo(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 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 mi="ically",gi=new Set(["analyt"+mi,"chem"+mi,"class"+mi,"clin"+mi,"crit"+mi,"ecolog"+mi,"electr"+mi,"empir"+mi,"frant"+mi,"grammat"+mi,"ident"+mi,"ideolog"+mi,"log"+mi,"mag"+mi,"mathemat"+mi,"mechan"+mi,"med"+mi,"method"+mi,"method"+mi,"mus"+mi,"phys"+mi,"phys"+mi,"polit"+mi,"pract"+mi,"rad"+mi,"satir"+mi,"statist"+mi,"techn"+mi,"technolog"+mi,"theoret"+mi,"typ"+mi,"vert"+mi,"whims"+mi]),fi=[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"}],vi=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"]),bi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var yi=function(e){return e.endsWith("ly")?gi.has(e)?e.replace(/ically/,"ical"):vi.has(e)?null:bi.hasOwnProperty(e)?bi[e]:pi(e,fi)||e:null};const wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ki={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Pi=function(e){if(ki.hasOwnProperty(e))return ki[e];let t=pi(e,wi);return t||e+"ly"};const Ai=[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"},Ni=new Set(["terrible","annoying"]);const Ei=function(e,t){const n=t.two.models.toSuperlative;return Mo(e,n)},xi=function(e,t){const n=t.two.models.toComparative;return Mo(e,n)};var Ii={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 Gi={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===Ii.hasOwnProperty(i)&&Ii[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Aa,nounToSingular:ii,verbToInfinitive:hi,getTense:ui,verbConjugate:di,adjToSuperlative:Ei,adjToComparative:xi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Mo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Mo(e,n)},advToAdjective:yi,adjToAdverb:Pi,adjToNoun:function(e){if(ji.hasOwnProperty(e))return ji[e];if(Ni.has(e))return null;let t=pi(e,Ai);return t||e+"ness"}}}};var Ti=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 Ci=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Di=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=Ci(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ci(r,"Infinitive","Verb"),Object.assign(s,l),l=Ci(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ci(o,"Adjective","Superlative"),Object.assign(s,l),l=Ci(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Oi={two:{models:ri}};const Bi={"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"},Vi=function(e,t){const n={model:t,methods:Gi};let{lex:r,_multi:a}=Gi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},zi=function(e,t,n){let r=di(e,Oi);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]=Bi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||zi(a,r,!1),"Adj|Present"===o&&(zi(a,r,!0),function(e,t,n){let r=Ei(e,n);t[r]=t[r]||"Superlative";let a=xi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=hi(a,Oi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=hi(a,Oi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Vi(n,t)};let Fi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:da,models:ri,suffixPatterns:ko,prefixPatterns:Ao,endsWith:Co,neighbours:Bo,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:Ea,clues:uo,uncountable:{},orgWords:ai}};Fi=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=Vi(e.one.lexicon,e)).one.lexicon,e),e=$i(e.two.switches,e),e=Di(e),e=Ti(e)}(Fi);var Si=Fi;const Hi=/^(under|over|mis|re|un|dis|semi)-?/;var Mi=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(Hi.test(a.normal)){let e=a.normal.replace(Hi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Ji=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 Li={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Wi=new Set(["formulas","koalas","israelis","menus"]),qi=["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 Ki=function(e){if(!e||e.length<=3)return!1;if(Wi.has(e))return!0;let t=e[e.length-1];return Li.hasOwnProperty(t)?Li[t].find(t=>e.endsWith(t)):"s"===t&&!qi.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Ui=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Ki(e.normal)?Ji(e,"Plural","3-plural-guess"):Ji(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ui(e.normal);t&&Ji(e,t,"3-verb-tense-guess")}}(r)};const Qi=/^\p{Lu}[\p{Ll}'’]/u,Zi=/[0-9]/,_i=["Date","Month","WeekDay","Unit"],Yi=/^[IVXLCDM]{2,}$/,Xi=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,es={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===Qi.test(o)&&!1===Zi.test(o)?_i.find(e=>r.tags.has(e))?null:(Ui(e,t,n),r.tags.has("Noun")||r.tags.clear(),Ji(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Yi.test(o)&&Xi.test(o)&&!es[r.normal]?(Ji(r,"RomanNumeral","2-xvii"),!0):null};const ns=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 rs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ns(r.normal,n.two.suffixPatterns);if(null!==e)return Ji(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ns(r.implicit,n.two.suffixPatterns),null!==e))return Ji(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const as=/['‘’‛‵′`´]/,os=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 Ji(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ls=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"]),us=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ls.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},cs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},hs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ds=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(us(a)||us(o))return Ji(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(cs(a)||cs(o))return Ji(n,"Year","2-tagYear-close");if(hs(e[t-2])||hs(e[t+2]))return Ji(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 Ji(n,"Year","2-tagYear-noun")}}}return null};const ps=/^[A-Z]('s|,)?$/,ms=/^[A-Z-]+$/,gs=/([A-Z]\.)+[A-Z]?,?$/,fs=/[A-Z]{2,}('s|,)?$/,vs=/([a-z]\.)+[a-z]\.?$/,bs={I:!0,A:!0};var ys=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===ms.test(n)||n.length>5||bs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==gs.test(n)&&!0!==vs.test(n)&&!0!==ps.test(n)&&!0!==fs.test(n))}(r,n)?(r.tags.clear(),Ji(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!bs.hasOwnProperty(r.text)&&ps.test(r.text)?(r.tags.clear(),Ji(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Ji(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&ms.test(r.text)&&r.text.length<=6?(Ji(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},ks=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ps=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||ks(e[t-1],r),l=l||ks(e[t+1],i),l)return Ji(s,l,"3-[neighbour]"),Ui(e,t,n),e[t].confidence=.2,!0}return null};const As=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]&&As(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&As(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Ns=function(e,t,n){0===e[t].tags.size&&(Ji(e[t],"Noun","3-[fallback]"),Ui(e,t,n),e[t].confidence=.1)};const Es=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,xs=(e,t,n)=>0!==t||e[1]?null:n;var Is={"Adj|Gerund":(e,t)=>Es(e,t),"Adj|Noun":(e,t)=>Es(e,t),"Adj|Past":(e,t)=>Es(e,t),"Adj|Present":(e,t)=>Es(e,t),"Noun|Gerund":(e,t)=>Es(e,t),"Noun|Verb":(e,t)=>Es(e,t)||xs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Es(e,t)||xs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Es(e,t),"Person|Verb":(e,t)=>0!==t&&Es(e,t)};const Gs="undefined"!=typeof process&&process.env?process.env:self.env||{},Ts=/^(under|over|mis|re|un|dis|semi)-?/,Cs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Gs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ds=(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&&Gs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Os={tagSwitch:Mi,checkSuffix:rs,checkRegex:is,checkCase:ts,checkPrefix:ss,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")&&(Ji(o,"Verb","3-[prefix]"),Ji(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Ji(o,"Adjective","3-[prefix]"),Ji(o,"Prefix","3-[prefix]")))},checkYear:ds},Bs={checkAcronym:ys,neighbours:Ps,orgWords:js,nounFallback:Ns,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(Ts.test(l)&&!o[l]&&(l=l.replace(Ts,"")),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=Cs(e[t+1],n.afterWords);return o=o||Cs(e[t-1],n.beforeWords),o=o||Ds(e[t-1],n.beforeTags,a),o=o||Ds(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Is[o]&&(u=Is[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Gs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Vs=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 Fs={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 Ss={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 Zs=/'/;var _s=function(e,t){let n=e[t].normal.split(Zs)[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 Ys=/'/;var Xs=function(e,t){let n=e[t].normal.split(Ys)[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 el=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 tl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},nl={in:!0,by:!0,for:!0};var rl=(e,t)=>{let n=e[t];if(tl.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===nl[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 al=/'/,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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},il={d:(e,t)=>Xs(e,t),t:(e,t)=>el(e,t),s:(e,t,n)=>rl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):_s(e,t)},sl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ll={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===al.test(r[o].normal)&&([,i]=r[o].normal.split(al));let s=null;il.hasOwnProperty(i)&&(s=il[i](r,o,t)),s&&(s=sl(s,e),Qs(n,[a,o],s),ol(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=Us.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=Rs},hooks:["contractionTwo"]};const ul="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const cl=["i","we","they"];let hl=[].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:"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:ul+" #Person",tag:"Person",reason:"randy-smith"},{match:ul+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${ul}]`,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:"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:cl,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:cl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:cl,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 dl=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(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;dl=dl||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(dl),e.uncache(),e}},model:{two:{matches:hl}},hooks:["postTagger"]};var ml=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")?ml(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=gl}};m.plugin(Ws),m.plugin(ll),m.plugin(pl),m.plugin(fl);var vl=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 bl=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 yl={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 Il={compute:{chunks:function(e){const{document:t,world:n}=e;wl(t),kl(t),jl(e,t,n),El(t),xl(t)}},api:function(e){e.prototype.chunks=bl,e.prototype.clauses=vl},hooks:["chunks"]};const Gl=/'s$/;var Tl=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(Gl,""),e.normal=e.normal.replace(Gl,"")})}),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 Cl=/\(/,Dl=/\)/,Ol=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Cl,"");let t=e[e.length-1];t.post=t.post.replace(Dl,"")}),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 Vl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},zl=RegExp("("+Object.keys(Vl).join("|")+")"),$l=RegExp("("+Object.values(Vl).join("|")+")"),Fl=function(e,t){const n=e[t].pre.match(zl)[0]||"";if(!n||!Vl[n])return null;const r=Vl[n];for(;t{e[0].pre=e[0].pre.replace(zl,"");let t=e[e.length-1];t.post=t.post.replace($l,"")})}(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 Hl=/\./g;var Ml=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(Hl,""),e.normal=e.normal.replace(Hl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Hl,""),e.normal=e.normal.replace(Hl,""),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 Jl=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 Ll=(e,t)=>"number"==typeof t?e.eq(t):e,Wl=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 ql=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=Wl(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 Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Ll(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Ll(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Ll(t,e),new Adjectives(t.document,t.pointer)}};const Kl=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},Rl=[["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 Ul=[["emojis","emoji"],["atmentions","atMentions"]];var Ql=function(e){Rl.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=Kl,Ul.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},Zl={api:function(e){Ql(e),Tl(e),Bl(e),Sl(e),ql(e),Jl(e),Ml(e)}};const _l=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var Yl={case:e=>{_l(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;_l(e,e=>e.text=n(e.text,t))},whitespace:e=>{_l(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=>{_l(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 Xl=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),eu="unicode|punctuation|whitespace|acronyms",tu="|case|contractions|parentheses|quotations|emoji|honorifics",nu={light:Xl(eu),medium:Xl(eu+tu),heavy:Xl(eu+tu+"|possessives|adverbs|nouns|verbs")};var ru={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=nu[e]),Object.keys(e).forEach(t=>{Yl.hasOwnProperty(t)&&Yl[t](this,e[t])}),this}}};var au=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 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 lu=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:su(e,t),isSubordinate:iu(e),root:t}};const uu=e=>e.text(),cu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),hu=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var du=function(e){let t=lu(e);return{root:uu(t.root),number:hu(t.number),determiner:uu(t.determiner),adjectives:cu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const pu={tags:!0};var mu=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,pu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",pu),e};const gu={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,gu).tag("Singular","toPlural"),e};const vu=(e,t)=>"number"==typeof t?e.eq(t):e;var bu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return vu(this,e).map(lu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=du(t)),n},[])}isPlural(e){let t=this.filter(e=>lu(e).isPlural);return vu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=lu(e).adjectives;n.found&&(t=t.concat(n))}),vu(t,e)}toPlural(e){return vu(this,e).map(e=>mu(e,lu(e)))}toSingular(e){return vu(this,e).map(e=>{let t=lu(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=au(this);return t=vu(t,e),new Nouns(this.document,t.pointer)}}};var yu=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(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};var Au=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 Nu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Eu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},xu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Iu=function(e){if(!0===Eu.hasOwnProperty(e))return Eu[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=Tu(n),r=Tu(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:Tu(n);let a=r.text("reduced");return Gu.test(a)&&(a=a.replace(Gu,""),r=r.replaceWith(a)),r=Cu.hasOwnProperty(a)?Cu[a]:Tu(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:Tu(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 Ou=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 Bu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Vu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],zu=[[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"]],$u=function(e){let t=[];if(e>100)return t;for(let n=0;n=Bu[n][1]&&(e-=Bu[n][1],t.push(Bu[n][0]));return Vu[e]&&t.push(Vu[e]),t};var Fu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ou(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return zu.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($u(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=Ou(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 Su=function(e){if(!e.numerator||!e.denominator)return"";return`${Fu({num:e.numerator})} out of ${Fu({num:e.denominator})}`};const Hu={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 Mu=e=>{let t=Fu(e).split(" "),n=t[t.length-1];return Hu.hasOwnProperty(n)?t[t.length-1]=Hu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Ju=function(e){if(!e.numerator||!e.denominator)return"";let t=Fu({num:e.numerator}),n=Mu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Lu=(e,t)=>"number"==typeof t?e.eq(t):e;var Wu=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Lu(this,e).map(Du)}get(e){return Lu(this,e).map(Du)}json(e){return Lu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Du(t);return n.fraction=r,n},[])}toDecimal(e){return Lu(this,e).forEach(e=>{let{decimal:t}=Du(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Lu(this,e).forEach(e=>{let t=Du(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 Lu(this,e).forEach(e=>{let t=Du(e),n=Ju(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Lu(this,e).forEach(e=>{let t=Du(e),n=Su(t);e.replaceWith(n)}),this}toPercentage(e){return Lu(this,e).forEach(e=>{let{decimal:t}=Du(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=yu(this);return t=Lu(t,e),new Fractions(this.document,t.pointer)}};const qu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Ku=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("("+qu+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+qu+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+qu+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+qu+")"));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) (${qu})`),r=e.has("("+qu+") #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("("+qu+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+qu+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Ru=function(e){if("string"==typeof e)return{num:Iu(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=Du(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Iu(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 Uu=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=Ou(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Qu={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Zu={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var _u=function(e){let t={suffix:"",prefix:e.prefix};return Qu.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Qu[e.prefix],t.prefix=""),Zu.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Zu[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Yu=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=_u(e);return t+Mu(e)+n}if("Ordinal"===t)return e.prefix+Uu(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=_u(e);return t+Fu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Xu=(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 Xu(this,e).map(Ru)}get(e){return Xu(this,e).map(Ru).map(e=>e.num)}json(e){return Xu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ru(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=Ru(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Yu(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=Ru(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Yu(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=>Ru(t).num===e)}greaterThan(e){return this.filter(t=>Ru(t).num>e)}lessThan(e){return this.filter(t=>Ru(t).num{let r=Ru(n).num;return r>e&&r{let n=Ru(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=Yu(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=Ru(e).num);let t=this.map(t=>{let n=Ru(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=Yu(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=Ku(this);return t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Ku(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Ku(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var tc={api:function(e){Wu(e),ec(e)}};const nc={people:!0,emails:!0,phoneNumbers:!0,places:!0},rc=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 ac={api:function(e){e.prototype.redact=rc}};var 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))})};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 sc=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 lc=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 uc=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 hc=function(e){return e.verbs().toInfinitive(),e};const dc=(e,t)=>"number"==typeof t?e.eq(t):e;var pc={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}=sc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return dc(this,e).map(e=>(sc(e),lc(e)))}toPresentTense(e){return dc(this,e).map(e=>(sc(e),uc(e)))}toFutureTense(e){return dc(this,e).map(e=>(sc(e),e=cc(e)))}toInfinitive(e){return dc(this,e).map(e=>(sc(e),hc(e)))}toNegative(e){return dc(this,e).map(e=>(sc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return dc(this,e).map(e=>(sc(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 dc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return dc(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=dc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=oc(this);return dc(t,e)}};Object.assign(e.prototype,t)}};var mc=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 fc="male",vc="female",bc={mr:fc,mrs:vc,miss:vc,madam:vc,king:fc,queen:vc,duke:fc,duchess:vc,baron:fc,baroness:vc,count:fc,countess:vc,prince:fc,princess:vc,sire:fc,dame:vc,lady:vc,ayatullah:fc,congressman:fc,congresswoman:vc,"first lady":vc,mx:null};var yc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return vc;if(n.has("#MaleName"))return fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),bc.hasOwnProperty(e))return bc[e];if(/^her /.test(e))return vc;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 vc}return null};const wc=(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 wc(this,e).map(gc)}json(e){return wc(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:yc(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=mc(this);return t=wc(t,e),new People(this.document,t.pointer)}};var Pc=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 Ac=function(e){e.prototype.places=function(t){let n=Pc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var jc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Nc=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 Ec=function(e){e.prototype.topics=Nc};var xc={api:function(e){kc(e),Ac(e),jc(e),Ec(e)}};var Ic=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 Gc=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 Tc=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 Cc=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},Dc=function(e){return e.match("#Negative")},Oc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Bc=function(e){let t=e.clone();t.contractions().expand();const n=Gc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Tc(t,n),auxiliary:Cc(t,n),negative:Dc(t),phrasal:Oc(n)}};const Vc={tense:"PresentTense"},zc={conditional:!0},$c={tense:"FutureTense"},Fc={progressive:!0},Sc={tense:"PastTense"},Hc={complete:!0,progressive:!1},Mc={passive:!0},Jc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Lc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Vc]],["^wanted to #Infinitive$",[Sc]],["^will want to #Infinitive$",[$c]]],"gerund-phrase":[["^#PastTense #Gerund$",[Sc]],["^#PresentTense #Gerund$",[Vc]],["^#Infinitive #Gerund$",[Vc]],["^will #Infinitive #Gerund$",[$c]],["^have #PastTense #Gerund$",[Sc]],["^will have #PastTense #Gerund$",[Sc]]],"simple-present":[["^#PresentTense$",[Vc]],["^#Infinitive$",[Vc]]],"simple-past":[["^#PastTense$",[Sc]]],"simple-future":[["^will #Adverb? #Infinitive",[$c]]],"present-progressive":[["^(is|are|am) #Gerund$",[Vc,Fc]]],"past-progressive":[["^(was|were) #Gerund$",[Sc,Fc]]],"future-progressive":[["^will be #Gerund$",[$c,Fc]]],"present-perfect":[["^(has|have) #PastTense$",[Sc,Hc]]],"past-perfect":[["^had #PastTense$",[Sc,Hc]],["^had #PastTense to #Infinitive",[Sc,Hc]]],"future-perfect":[["^will have #PastTense$",[$c,Hc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Sc,Fc]]],"past-perfect-progressive":[["^had been #Gerund$",[Sc,Fc]]],"future-perfect-progressive":[["^will have been #Gerund$",[$c,Fc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Sc,Mc]],["^(was|were) being (#PastTense|#Participle)",[Sc,Mc]],["^(had|have) been (#PastTense|#Participle)",[Sc,Mc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Vc,Mc]],["^(is|are|am) being (#PastTense|#Participle)",[Vc,Mc]],["^has been (#PastTense|#Participle)",[Vc,Mc]]],"passive-future":[["will have been (#PastTense|#Participle)",[$c,Mc,zc]],["will be being? (#PastTense|#Participle)",[$c,Mc,zc]]],"present-conditional":[["would be #PastTense",[Vc,zc]]],"past-conditional":[["would have been #PastTense",[Sc,zc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[$c]]],"auxiliary-past":[["^did #Infinitive$",[Sc,{plural:!1}]],["^used to #Infinitive$",[Sc,Hc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Vc,Hc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Sc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Wc=[];Object.keys(Lc).map(e=>{Lc[e].forEach(t=>{Wc.push({name:e,match:t[0],data:Jc(t[1])})})});var qc=Wc;var Kc=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(),Rc(r)&&(n.remove(r),r=n.last()),Rc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Uc(t,e)}};const Zc=e=>e,_c=(e,t)=>{let n=Qc(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Yc=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Qc(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Xc=function(e,t){let n=Qc(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},th=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"),rh=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},ah=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,eh(e))};var ih=function(e){let t=Bc(e);e=e.clone().toView();const n=Kc(e,t);return{root:t.root.text(),preAdverbs:rh(t.adverbs.pre),postAdverbs:rh(t.adverbs.post),auxiliary:ah(t.auxiliary),negative:t.negative.found,prefix:ah(t.prefix),infinitive:oh(t.root),grammar:n}};const sh={tags:!0};var lh=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,sh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Xc(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const uh={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,eh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Qc(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,uh),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",uh),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}},hh={infinitive:ch.simple,"simple-present":ch.simple,"simple-past":Zc,"simple-future":ch.both,"present-progressive":e=>(e.replace("are","were",uh),e.replace("(is|are|am)","was",uh),e),"past-progressive":Zc,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":ch.hasHad,"past-perfect":Zc,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=nh(e)),e.remove("have"),e),"present-perfect-progressive":ch.hasHad,"past-perfect-progressive":Zc,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",uh),e),"passive-past":e=>(e.replace("have","had",uh),e),"passive-present":e=>(e.replace("(is|are)","was",uh),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",uh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Zc,"auxiliary-future":e=>(e.replace("(is|are|am)","was",uh),e),"auxiliary-past":Zc,"auxiliary-present":e=>(e.replace("(do|does)","did",uh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",uh):(ch.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Zc,"want-infinitive":e=>(e.replace("(want|wants)","wanted",uh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ch.simple(e,t),nh(e),e)};var dh=function(e,t,n){return hh.hasOwnProperty(n)?((e=hh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const ph={tags:!0},mh=(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===_c(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Yc(e)),o&&(e=e.replace(a,o,ph)).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,eh(a)),!1===_c(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,ph)).not("#Particle").tag("Gerund"),e},fh={infinitive:mh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return mh(e,t);{let t=Qc(e).subject;if(_c(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,ph)}return e},"simple-past":mh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Yc(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else mh(e,t),e=e.remove("will");return e},"present-progressive":Zc,"past-progressive":(e,t)=>{let n=Yc(e);return e.replace("(were|was)",n,ph)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(mh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Qc(e).subject;return _c(e)||n.has("i")?((e=th(e,t)).remove("had"),e):(e.replace("had","has",ph),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Zc,"past-perfect-progressive":e=>e.replace("had","has",ph),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Yc(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,ph),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Zc,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Zc,"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=Xc(e);return e.replace(t.auxiliary,n),e}return gh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Zc,"modal-infinitive":Zc,"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,ph))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),mh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return _c(e)&&(n="want"),e.replace("(want|wanted|wants)",n,ph),e.remove("will"),e}};var vh=function(e,t,n){return fh.hasOwnProperty(n)?((e=fh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const bh={tags:!0},yh=(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,bh)).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,eh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,bh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},kh={infinitive:yh,"simple-present":yh,"simple-past":yh,"simple-future":Zc,"present-progressive":wh,"past-progressive":wh,"future-progressive":Zc,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Zc,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Zc,"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":Zc,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Zc,"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":Zc,"modal-past":Zc,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),yh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Ph=function(e,t,n){return e.has("will")||e.has("going to")?e:kh.hasOwnProperty(n)?((e=kh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Ah={tags:!0};var jh=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=`${Yc(e)} ${s}`,e.replace(a,s,Ah)),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 Nh={tags:!0},Eh=function(e,t){let n=Xc(e);return e.prepend(n+" not"),e},xh=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)},Ih=e=>e.has("(is|was|am|are|will|were|be)"),Gh={"simple-present":(e,t)=>!0===Ih(e)?xh(e):(e=th(e,t),e=Eh(e)),"simple-past":(e,t)=>!0===Ih(e)?xh(e):((e=th(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Ih(e)?xh(e):Eh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Nh),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=Eh(e)).replace("wants","want",Nh)};var Th=function(e,t,n){if(e.has("#Negative"))return e;if(Gh.hasOwnProperty(n))return e=Gh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Ih(e)?xh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Ch=(e,t)=>"number"==typeof t?e.eq(t):e;var Dh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Ch(this,e).map(Bc)}json(e,t){return Ch(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=ih(t),n},[])}subjects(e){return Ch(this,e).map(e=>(Bc(e),Qc(e).subject))}adverbs(e){return Ch(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Ch(this,e).filter(e=>!0!==Qc(e).plural)}isPlural(e){return Ch(this,e).filter(e=>!0===Qc(e).plural)}isImperative(e){return Ch(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return lh(e,t,n.form)})}toPresentTense(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return vh(e,t,n.form)})}toPastTense(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return dh(e,t,n.form)})}toFutureTense(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return Ph(e,t,n.form)})}toGerund(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return jh(e,t,n.form)})}conjugate(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:lh(e.clone(),t,n.form).text("normal"),PastTense:dh(e.clone(),t,n.form).text("normal"),PresentTense:vh(e.clone(),t,n.form).text("normal"),FutureTense:Ph(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 Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return Th(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=Ic(this);return t=Ch(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Il),m.plugin(Zl),m.plugin(ru),m.plugin(bu),m.plugin(tc),m.plugin(ac),m.plugin(pc),m.plugin(xc),m.plugin(Dh);export{m as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index 5a74e5ec8..563f01a21 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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;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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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 T=C,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;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 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,T,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 Q=/'/,_=new Set(["what","how","when","where","why"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e))return e.fullPointer.length>0;if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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 Ze=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 Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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&&(jt(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&&(jt(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},Ct=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)}},Tt=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},Bt=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)}},Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Tt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else if(!Ot(r))return null}else if(!Ot(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!It(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},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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},yn=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=yn(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},wn={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:yn,splitAll:vn}}},kn=function(e,t){let n=e.concat(t),a=yn(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=>bn(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},An=function(e,t){let n=yn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},jn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},In={union:function(e){e=En(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=jn(e,this.document),this.update(e)};var Gn={methods:wn,api:function(e){Object.assign(e.prototype,In)}};const Nn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Nn(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e},xn=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})},Cn=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.find(e=>a.has(e)))})},Tn=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},Bn=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=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 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=xn(r,t.hooks);return o=Cn(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),Tn(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===Bn(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 zn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(),zn.test(t))!function(e,t,n,a){let r=t.split(zn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Fn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,a))};var Sn=$n,Hn=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=>Jn({id:e})),t}return[Jn({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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Ln(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=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):(Wn(t=e).forEach(Jn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Wn(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},Zn=function(e){let t=Wn(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},Qn={text:Un,txt:Un,array:Zn,flat:Zn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},Xn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Jn({});return new g$1(t)}add(e,t={}){if(Kn(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 Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(this.json);let e=Wn(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 Xn(this.json),_n(this.json,e)}debug(){return Xn(this.json),_n(this.json,"debug"),this}}const ea=function(e){let t=Rn(e);return new g$1(t)};ea.prototype.plugin=function(e){e(this)};var ta={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const na=function(e){if(ta.hasOwnProperty(e.id))return ta[e.id];if(ta.hasOwnProperty(e.is))return ta[e.is];let t=e._cache.parents.find(e=>ta[e]);return ta[t]};var aa=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:na(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 ra=function(e){return e?"string"==typeof e?[e]:e:[]};var oa=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=ra(e[t].children),e[t].not=ra(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ia={one:{setTag:Sn,unTag:Hn,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=oa(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 ea(t).cache().fillDown().out("array")}(Object.assign({},t,e));return aa(n)}}};const sa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var la={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||""),sa(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 sa(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)}},ua=function(e){Object.assign(e.prototype,la)},ca={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 da=new Set(["Auxiliary","Possessive"]);var ha={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(da.has(e)||!t.hasOwnProperty(n))return 1;if(da.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:ia,api:ua,lib:ca};const ga=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ma=/((?:\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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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;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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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 T=C,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;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 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,T,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 Q=/'/,_=new Set(["what","how","when","where","why"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e))return e.fullPointer.length>0;if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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 Ze=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 Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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&&(jt(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&&(jt(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},Ct=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)}},Tt=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},Bt=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)}},Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Tt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else if(!Ot(r))return null}else if(!Ot(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!It(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},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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},yn=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=yn(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},wn={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:yn,splitAll:vn}}},kn=function(e,t){let n=e.concat(t),a=yn(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=>bn(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},An=function(e,t){let n=yn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},jn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},In={union:function(e){e=En(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=jn(e,this.document),this.update(e)};var Gn={methods:wn,api:function(e){Object.assign(e.prototype,In)}};const Nn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(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=Nn(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},xn=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})},Cn=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)})},Tn=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},Bn=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=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 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=xn(r,t.hooks);return o=Cn(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),Tn(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===Bn(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 zn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(),zn.test(t))!function(e,t,n,a){let r=t.split(zn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Fn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,a))};var Sn=$n,Hn=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=>Jn({id:e})),t}return[Jn({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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Ln(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=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):(Wn(t=e).forEach(Jn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Wn(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},Zn=function(e){let t=Wn(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},Qn={text:Un,txt:Un,array:Zn,flat:Zn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},Xn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Jn({});return new g$1(t)}add(e,t={}){if(Kn(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 Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(this.json);let e=Wn(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 Xn(this.json),_n(this.json,e)}debug(){return Xn(this.json),_n(this.json,"debug"),this}}const ea=function(e){let t=Rn(e);return new g$1(t)};ea.prototype.plugin=function(e){e(this)};var ta={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const na=function(e){if(ta.hasOwnProperty(e.id))return ta[e.id];if(ta.hasOwnProperty(e.is))return ta[e.is];let t=e._cache.parents.find(e=>ta[e]);return ta[t]};var aa=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:na(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 ra=function(e){return e?"string"==typeof e?[e]:e:[]};var oa=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=ra(e[t].children),e[t].not=ra(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ia={one:{setTag:Sn,unTag:Hn,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=oa(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 ea(t).cache().fillDown().out("array")}(Object.assign({},t,e));return aa(n)}}};const sa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var la={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||""),sa(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 sa(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)}},ua=function(e){Object.assign(e.prototype,la)},ca={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 da=new Set(["Auxiliary","Possessive"]);var ha={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(da.has(e)||!t.hasOwnProperty(n))return 1;if(da.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:ia,api:ua,lib:ca};const ga=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ma=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var pa=function(e){let t=[],n=e.split(ma);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 Ba=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Oa=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,za=/['’]/,Va=/^[a-z]\.([a-z]\.)+/i,Fa=/^[-+.][0-9]/,$a=/^'[0-9]{2}/;var Sa=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ba,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fa.test(e)?"'"===n&&$a.test(e)?(n="",t):"":(n="",t)))).replace(Oa,r=>(a=r,za.test(r)&&/[sn]['’]$/.test(t)&&!1===za.test(n)?(a=a.replace(za,""),"'"):!0===Va.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},Ha=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 Ja=/([A-Z]\.)+[A-Z]?,?$/,Ma=/^[A-Z]\.,?$/,La=/[A-Z]{2,}('s|,)?$/,Wa=/([a-z]\.)+[a-z]\.?$/;var Ka=function(e){return function(e){return!0===Ja.test(e)||!0===Wa.test(e)||!0===Ma.test(e)||!0===La.test(e)}(e)&&(e=e.replace(/\./g,"")),e},qa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ha(a),a=n(a,t),a=Ka(a),e.normal=a},Ra={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:Aa,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(Ca);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=Na(n),n=Ia(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Sa(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})}}}},Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Za={},Qa={};[[["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=>{Za[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])})});var _a=["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 Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Ya={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){Ya[t]=e}))}));const er=/\//,tr=/[a-z]\.[a-z]/i,nr=/[0-9]/;var ar=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])),er.test(n)&&!tr.test(n)&&!nr.test(n)){let t=n.split(er);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const rr=/^\p{Letter}+-\p{Letter}+$/u;var or=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"),rr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ir=function(e){let t=0,n=0,a=e.document;for(let e=0;esr(e,ar),machine:e=>sr(e,or),normal:e=>sr(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 dr={safe:!0,min:3};var hr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ur},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},dr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=cr(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(fn),m.extend(St),m.extend(Gn),m.extend(ha),m.plugin(be),m.extend(lr),m.plugin(f),m.extend(De),m.extend(hr),m.extend(Pe),m.extend(On);var gr={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"},mr={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 pr=36,fr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",br=fr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var yr=function(e){if(void 0!==br[e])return br[e];let t=0,n=1,a=pr,r=1;for(;n=0;n--,r*=pr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},vr=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=kr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Pr(mr[e]);Ir.test(e)?Object.keys(t).forEach(t=>{if(Nr[t]=e,"Noun|Verb"===e){let e=jr(t,Dr);Nr[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 xr="Adjective";var Cr={beforeTags:{Determiner:xr,Possessive:xr},afterTags:{Adjective:xr},beforeWords:{seem:xr,seemed:xr,seems:xr,feel:xr,feels:xr,felt:xr,appear:xr,appears:xr,appeared:xr,also:xr,over:xr,under:xr,too:xr,it:xr,but:xr,still:xr,really:xr,quite:xr,well:xr,very:xr,deeply:xr,profoundly:xr,extremely:xr,so:xr,badly:xr,mostly:xr,totally:xr,awfully:xr,rather:xr,nothing:xr,something:xr,anything:xr},afterWords:{too:xr,also:xr,or:xr}};const Tr="Gerund";var Br={beforeTags:{Adverb:Tr,Preposition:Tr,Conjunction:Tr},afterTags:{Adverb:Tr,Possessive:Tr,Person:Tr,Pronoun:Tr,Determiner:Tr,Copula:Tr,Preposition:Tr,Conjunction:Tr,Comparative:Tr},beforeWords:{been:Tr,keep:Tr,continue:Tr,stop:Tr,am:Tr,be:Tr,me:Tr,began:Tr,start:Tr,starts:Tr,started:Tr,stops:Tr,stopped:Tr,help:Tr,helps:Tr,avoid:Tr,avoids:Tr,love:Tr,loves:Tr,loved:Tr,hate:Tr,hates:Tr,hated:Tr},afterWords:{you:Tr,me:Tr,her:Tr,him:Tr,them:Tr,their:Tr,it:Tr,this:Tr,there:Tr,on:Tr,about:Tr,for:Tr}},Or={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 zr="Singular";var Vr={beforeTags:{Determiner:zr,Possessive:zr,Acronym:zr,Noun:zr,Adjective:zr,PresentTense:zr,Gerund:zr,PastTense:zr,Infinitive:zr,Date:zr},afterTags:{Value:zr,Modal:zr,Copula:zr,PresentTense:zr,PastTense:zr,Demonym:zr},beforeWords:{the:zr,with:zr,without:zr,of:zr,for:zr,any:zr,all:zr,on:zr,cut:zr,cuts:zr,save:zr,saved:zr,saves:zr,make:zr,makes:zr,made:zr,minus:zr,plus:zr,than:zr,another:zr,versus:zr,neither:zr,favorite:zr,best:zr,daily:zr,weekly:zr,linear:zr,binary:zr,mobile:zr,lexical:zr,technical:zr,computer:zr,scientific:zr,formal:zr},afterWords:{of:zr,system:zr,aid:zr,method:zr,utility:zr,tool:zr,reform:zr,therapy:zr,philosophy:zr,room:zr,authority:zr,says:zr,said:zr,wants:zr,wanted:zr}};const Fr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var $r={beforeTags:Object.assign({},Cr.beforeTags,Vr.beforeTags,Fr.beforeTags),afterTags:Object.assign({},Cr.afterTags,Vr.afterTags),beforeWords:Object.assign({},Cr.beforeWords,Vr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Cr.afterWords,Vr.afterWords)};const Sr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Hr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Jr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Mr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Lr={beforeTags:Object.assign({},Cr.beforeTags,Sr),afterTags:Object.assign({},Cr.afterTags,Hr),beforeWords:Object.assign({},Cr.beforeWords,Jr),afterWords:Object.assign({},Cr.afterWords,Mr)};const Wr="Infinitive";var Kr={beforeTags:{Modal:Wr,Adverb:Wr,Negative:Wr,Plural:Wr},afterTags:{Determiner:Wr,Adverb:Wr,Possessive:Wr,Preposition:Wr},beforeWords:{i:Wr,we:Wr,you:Wr,they:Wr,to:Wr,please:Wr,will:Wr,have:Wr,had:Wr,would:Wr,could:Wr,should:Wr,do:Wr,did:Wr,does:Wr,can:Wr,must:Wr,us:Wr,me:Wr,he:Wr,she:Wr,it:Wr,being:Wr},afterWords:{the:Wr,me:Wr,you:Wr,him:Wr,her:Wr,them:Wr,it:Wr,a:Wr,an:Wr,up:Wr,down:Wr,by:Wr,out:Wr,off:Wr,when:Wr,all:Wr,to:Wr,because:Wr,although:Wr,before:Wr,how:Wr,otherwise:Wr,though:Wr,yet:Wr}};const qr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Rr={beforeTags:Object.assign({},Cr.beforeTags,Kr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Cr.afterTags,Kr.afterTags,qr.afterTags),beforeWords:Object.assign({},Cr.beforeWords,Kr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Cr.afterWords,Kr.afterWords,{to:void 0})};const Ur={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Zr={},Qr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},_r={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Xr={beforeTags:Object.assign({},Br.beforeTags,Vr.beforeTags,Ur),afterTags:Object.assign({},Br.afterTags,Vr.afterTags,Zr),beforeWords:Object.assign({},Br.beforeWords,Vr.beforeWords,Qr),afterWords:Object.assign({},Br.afterWords,Vr.afterWords,_r)},Yr={beforeTags:Object.assign({},Kr.beforeTags,Vr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Kr.afterTags,Vr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Kr.beforeWords,Vr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Kr.afterWords,Vr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ao={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ro={beforeTags:Object.assign({},to.beforeTags,ao.beforeTags),afterTags:Object.assign({},to.afterTags,ao.afterTags),beforeWords:Object.assign({},to.beforeWords,ao.beforeWords),afterWords:Object.assign({},to.afterWords,ao.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Or,"Adj|Noun":$r,"Adj|Past":Lr,"Adj|Present":Rr,"Noun|Verb":Yr,"Noun|Gerund":Xr,"Person|Noun":{beforeTags:Object.assign({},Vr.beforeTags,to.beforeTags),afterTags:Object.assign({},Vr.afterTags,to.afterTags),beforeWords:Object.assign({},Vr.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Vr.afterWords,to.afterWords)},"Person|Date":ro,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,Kr.beforeTags),afterTags:Object.assign({},to.afterTags,Kr.afterTags),beforeWords:Object.assign({},to.beforeWords,Kr.beforeWords),afterWords:Object.assign({},to.afterWords,Kr.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const go="Adjective",mo="Infinitive",po="PresentTense",fo="Singular",bo="PastTense",yo="Adverb",vo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",Eo="Modal",jo="Participle";var Io=[null,null,{ea:fo,ia:Po,ic:go,ly:yo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":yo,"'ll":Eo,"'re":"Copula",azy:go,eer:Po,end:ko,ped:bo,ffy:go,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:go,mum:go,nes:po,nny:go,ous:go,que:go,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:po,eld:bo,ken:jo,ven:jo,ten:jo,ect:mo,ict:mo,ign:mo,ful:go,bal:go},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:go,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:po,ends:ko,enko:Ao,ette:fo,wner:fo,fies:po,fore:yo,gate:mo,gone:go,ices:vo,ints:vo,ruct:mo,ines:vo,ions:vo,less:go,llen:go,made:go,nsen:Ao,oses:po,ould:Eo,some:go,sson:Ao,tion:fo,tage:Po,ique:fo,tive:go,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:go,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:go,nary:go},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:vo,bound:go,ettes:vo,fully:yo,ishes:po,ities:vo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:vo,rough:go,tches:po,tieth:"Ordinal",tures:vo,wards:yo,where:yo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:go,borne:go,gnant:go,inant:go,igent:go,atory:go,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const Go="Adjective",No="Noun",Do="Verb";var xo=[null,null,{},{neo:No,bio:No,"de-":Do,"re-":Do,"un-":Do},{anti:No,auto:No,faux:Go,hexa:No,kilo:No,mono:No,nano:No,octa:No,poly:No,semi:Go,tele:No,"pro-":Go,"mis-":Do,"dis-":Do,"pre-":Go},{anglo:No,centi:No,ethno:No,ferro:No,grand:No,hepta:No,hydro:No,intro:No,macro:No,micro:No,milli:No,nitro:No,penta:No,quasi:Go,radio:No,tetra:No,"omni-":Go,"post-":Go},{pseudo:Go,"extra-":Go,"hyper-":Go,"inter-":Go,"intra-":Go,"deca-":Go},{electro:No}];const Co="Adjective",To="Infinitive",Bo="PresentTense",Oo="Singular",zo="PastTense",Vo="Adverb",Fo="Expression",$o="Actor",So="Verb",Ho="Noun",Jo="LastName";var Mo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,Oo,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Oo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,To,"antagonize"],[/.[^aeiou]ise$/,To,"antagonise"],[/.[aeiou]te$/,To,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Fo,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Oo,"magnesium"],[/[^aeiou]ism$/,Oo,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,$o,"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$/,Oo],[/[^i]fer$/,To],[/.[^aeiou][ao]pher$/,$o],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Oo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,Oo],[/[a-z]'s$/,Ho],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Oo],[/[rdntkbhs]ly$/,Vo],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,Vo],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Oo]]};const Lo="Verb",Wo="Noun";var Ko={leftTags:[["Adjective",Wo],["Possessive",Wo],["Determiner",Wo],["Adverb",Lo],["Pronoun",Lo],["Value",Wo],["Ordinal",Wo],["Modal",Lo],["Superlative",Wo],["Demonym",Wo],["Honorific","Person"]],leftWords:[["i",Lo],["first",Wo],["it",Lo],["there",Lo],["not",Lo],["because",Wo],["if",Wo],["but",Wo],["who",Lo],["this",Wo],["his",Wo],["when",Wo],["you",Lo],["very","Adjective"],["old",Wo],["never",Lo],["before",Wo],["a","Singular"],["the",Wo],["been",Lo]],rightTags:[["Copula",Wo],["PastTense",Wo],["Conjunction",Wo],["Modal",Wo]],rightWords:[["there",Lo],["me",Lo],["man","Adjective"],["only",Lo],["him",Lo],["it",Lo],["were",Wo],["took",Wo],["himself",Lo],["went",Wo],["who",Wo],["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"},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"},Uo={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"},Zo={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"},Qo={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 _o=/^.([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(_o);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(_o,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Yo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Yo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ai=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 ri=ni({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"}),oi=ni(Zo),ii=ni(Ro),si=ni(Uo),li=ai(ri),ui=ai(oi),ci=ai(ii),di=ai(si),hi=ni(qo),gi=ni(Qo);var mi={fromPast:ri,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:di,toComparative:hi,toSuperlative:gi,fromComparative:ai(hi),fromSuperlative:ai(gi)},pi=["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),{}),fi=[[/([^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,""]],bi=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 vi=yi,wi=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 ki={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},Ei=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 ji="ically",Ii=new Set(["analyt"+ji,"chem"+ji,"class"+ji,"clin"+ji,"crit"+ji,"ecolog"+ji,"electr"+ji,"empir"+ji,"frant"+ji,"grammat"+ji,"ident"+ji,"ideolog"+ji,"log"+ji,"mag"+ji,"mathemat"+ji,"mechan"+ji,"med"+ji,"method"+ji,"method"+ji,"mus"+ji,"phys"+ji,"phys"+ji,"polit"+ji,"pract"+ji,"rad"+ji,"satir"+ji,"statist"+ji,"techn"+ji,"technolog"+ji,"theoret"+ji,"typ"+ji,"vert"+ji,"whims"+ji]),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"}],Ni=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"]),Di={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var xi=function(e){return e.endsWith("ly")?Ii.has(e)?e.replace(/ically/,"ical"):Ni.has(e)?null:Di.hasOwnProperty(e)?Di[e]:Ei(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"},{},{},{}],Ti={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Bi=function(e){if(Ti.hasOwnProperty(e))return Ti[e];let t=Ei(e,Ci);return t||e+"ly"};const Oi=[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"},Vi=new Set(["terrible","annoying"]),Fi=function(e,t){const n=t.two.models.toSuperlative;return Xo(e,n)},$i=function(e,t){const n=t.two.models.toComparative;return Xo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:Fi,adjToComparative:$i,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:xi,adjToAdverb:Bi,adjToNoun:function(e){if(zi.hasOwnProperty(e))return zi[e];if(Vi.has(e))return null;let t=Ei(e,Oi);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 Mi=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=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 Wi={two:{models:mi}};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"},qi=function(e,t){const n={model:t,methods:Hi};let{lex:a,_multi:r}=Hi.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=Ai(e,Wi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Ki[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(r,a,!1),"Adj|Present"===o&&(Ri(r,a,!0),function(e,t,n){let a=Fi(e,n);t[a]=t[a]||"Superlative";let r=$i(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(r,Wi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(r,Wi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=qi(n,t)};let Zi={one:{_multiCache:{},lexicon:Gr},two:{irregularPlurals:gr,models:mi,suffixPatterns:Io,prefixPatterns:xo,endsWith:Mo,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:Nr,clues:ho,uncountable:{},orgWords:pi}};Zi=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=Ui(e.two.switches,e),e=Li(e),e=Ji(e)}(Zi);var Qi=Zi;const _i=/^(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(_i.test(r.normal)){let e=r.normal.replace(_i,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},Yi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const rs=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(as(e.normal)?Yi(e,"Plural","3-plural-guess"):Yi(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Yi(e,t,"3-verb-tense-guess")}}(a)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^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 hs=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>a.tags.has(e))?null:(os(e,t,n),a.tags.has("Noun")||a.tags.clear(),Yi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!ds[a.normal]?(Yi(a,"RomanNumeral","2-xvii"),!0):null};const gs=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 ms=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=gs(a.normal,n.two.suffixPatterns);if(null!==e)return Yi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=gs(a.implicit,n.two.suffixPatterns),null!==e))return Yi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ps=/['‘’‛‵′`´]/,fs=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 Yi(a,e,"2-prefix"),a.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"]),ws=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")},ks=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var As=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(ws(r)||ws(o))return Yi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(ks(r)||ks(o))return Yi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Yi(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 Yi(n,"Year","2-tagYear-noun")}}}return null};const Es=/^[A-Z]('s|,)?$/,js=/^[A-Z-]+$/,Is=/([A-Z]\.)+[A-Z]?,?$/,Gs=/[A-Z]{2,}('s|,)?$/,Ns=/([a-z]\.)+[a-z]\.?$/,Ds={I:!0,A:!0};var xs=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===js.test(n)||n.length>5||Ds.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Is.test(n)&&!0!==Ns.test(n)&&!0!==Es.test(n)&&!0!==Gs.test(n))}(a,n)?(a.tags.clear(),Yi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ds.hasOwnProperty(a.text)&&Es.test(a.text)?(a.tags.clear(),Yi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Yi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&js.test(a.text)&&a.text.length<=6?(Yi(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},Ts=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: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||Ts(e[t-1],a),l=l||Ts(e[t+1],i),l)return Yi(s,l,"3-[neighbour]"),os(e,t,n),e[t].confidence=.2,!0}return null};const Os=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 a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Os(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Os(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Vs=function(e,t,n){0===e[t].tags.size&&(Yi(e[t],"Noun","3-[fallback]"),os(e,t,n),e[t].confidence=.1)};const Fs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,$s=(e,t,n)=>0!==t||e[1]?null:n;var Ss={"Adj|Gerund":(e,t)=>Fs(e,t),"Adj|Noun":(e,t)=>Fs(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)||$s(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Fs(e,t)||$s(e,t,"PresentTense"),"Person|Noun":(e,t)=>Fs(e,t),"Person|Verb":(e,t)=>0!==t&&Fs(e,t)};const Hs="undefined"!=typeof process&&process.env?process.env:self.env||{},Js=/^(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&&Hs.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&&Hs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},Ws={tagSwitch:Xi,checkSuffix:ms,checkRegex:bs,checkCase:hs,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")&&(Yi(o,"Verb","3-[prefix]"),Yi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Yi(o,"Adjective","3-[prefix]"),Yi(o,"Prefix","3-[prefix]")))},checkYear:As},Ks={checkAcronym:xs,neighbours:Bs,orgWords:zs,nounFallback:Vs,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(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,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||Ls(e[t-1],n.beforeTags,r),o=o||Ls(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Ss[o]&&(u=Ss[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Hs.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)},Zs={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: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 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 a=e[t+1];if(a&&a.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"]},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 hl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},gl={in:!0,by:!0,for:!0};var ml=(e,t)=>{let n=e[t];if(hl.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===gl[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 pl=/'/,fl=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)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>dl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},yl=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((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===pl.test(a[o].normal)&&([,i]=a[o].normal.split(pl));let s=null;bl.hasOwnProperty(i)&&(s=bl[i](a,o,t)),s&&(s=yl(s,e),il(n,[r,o],s),fl(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=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=rl},hooks:["contractionTwo"]};const wl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",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:"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: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:"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"}]),Al=null;var El={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;Al=Al||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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},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)},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},Gl={api:function(e){e.prototype.swap=Il}};return m.plugin(tl),m.plugin(vl),m.plugin(El),m.plugin(Gl),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 618d69553..a70b337ec 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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=(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 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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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},C.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 T=C;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;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 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,T,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 Q=/'/,_=new Set(["what","how","when","where","why"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e)){return e.fullPointer.length>0}if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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 Ze=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 Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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){jt(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){jt(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 Ct=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 Tt=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 Bt=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 Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Tt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Dt(r))return null}else{if(!Gt(r))return null}else{if(!It(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},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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 gn={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},bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=bn(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 vn={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:bn,splitAll:yn}}};var wn=function(e,t){let n=e.concat(t),a=bn(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=>fn(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 Pn=function(e,t){let n=bn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},En=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},jn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.difference=jn.not,jn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},jn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=En(e,this.document),this.update(e)};var In={methods:vn,api:function(e){Object.assign(e.prototype,jn)}};const Nn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(e))})})}),t.filter(e=>e)}(e.regs),e.wants=function(e){let t=[];return e.forEach(e=>{"or"!==e.operator||e.optional||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Nn(e);n&&t.push(n)})}))}),t}(e.regs),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Dn=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 xn=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.find(e=>a.has(e)))})};var Cn=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 Tn=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=Gn(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=Dn(r,t.hooks);return o=xn(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),Cn(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===Tn(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 On=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Vn=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(),On.test(t))!function(e,t,n,a){let r=t.split(On);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Vn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,a))};var $n=Fn;var Sn=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=>Hn({id:e})),t}return[Hn({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},Wn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=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:Mn(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Ln(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Ln(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},Un=function(e){let t=Ln(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},Zn={text:Rn,txt:Rn,array:Un,flat:Un},Qn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},_n=e=>{Ln(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Wn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Hn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Ln(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Ln(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 Ln(this.json)}fillDown(){var e;return e=this.json,Ln(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 Wn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){_n(this.json);let e=Ln(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 _n(this.json),Qn(this.json,e)}debug(){return _n(this.json),Qn(this.json,"debug"),this}}const Yn=function(e){let t=qn(e);return new g$1(t)};Yn.prototype.plugin=function(e){e(this)};var ea={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ta=function(e){if(ea.hasOwnProperty(e.id))return ea[e.id];if(ea.hasOwnProperty(e.is))return ea[e.is];let t=e._cache.parents.find(e=>ea[e]);return ea[t]};var na=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:ta(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 aa=function(e){return e?"string"==typeof e?[e]:e:[]};var ra=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=aa(e[t].children),e[t].not=aa(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 oa={one:{setTag:$n,unTag:Sn,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=ra(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 Yn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return na(n)}}};const ia=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sa={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||""),ia(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 ia(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 la=function(e){Object.assign(e.prototype,sa)};var ua={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 ca=new Set(["Auxiliary","Possessive"]);var da={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(ca.has(e)||!t.hasOwnProperty(n))return 1;if(ca.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:oa,api:la,lib:ua};const ha=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ga=/((?:\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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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=(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 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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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},C.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 T=C;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;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 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,T,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 Q=/'/,_=new Set(["what","how","when","where","why"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e)){return e.fullPointer.length>0}if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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 Ze=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 Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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){jt(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){jt(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 Ct=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 Tt=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 Bt=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 Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Tt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Dt(r))return null}else{if(!Gt(r))return null}else{if(!It(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},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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 gn={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},bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=bn(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 vn={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:bn,splitAll:yn}}};var wn=function(e,t){let n=e.concat(t),a=bn(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=>fn(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 Pn=function(e,t){let n=bn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},En=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},jn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.difference=jn.not,jn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},jn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=En(e,this.document),this.update(e)};var In={methods:vn,api:function(e){Object.assign(e.prototype,jn)}};const Nn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(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=Nn(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 Dn=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 xn=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 Cn=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 Tn=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=Gn(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=Dn(r,t.hooks);return o=xn(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),Cn(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===Tn(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 On=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Vn=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(),On.test(t))!function(e,t,n,a){let r=t.split(On);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Vn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,a))};var $n=Fn;var Sn=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=>Hn({id:e})),t}return[Hn({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},Wn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=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:Mn(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Ln(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Ln(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},Un=function(e){let t=Ln(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},Zn={text:Rn,txt:Rn,array:Un,flat:Un},Qn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},_n=e=>{Ln(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Wn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Hn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Ln(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Ln(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 Ln(this.json)}fillDown(){var e;return e=this.json,Ln(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 Wn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){_n(this.json);let e=Ln(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 _n(this.json),Qn(this.json,e)}debug(){return _n(this.json),Qn(this.json,"debug"),this}}const Yn=function(e){let t=qn(e);return new g$1(t)};Yn.prototype.plugin=function(e){e(this)};var ea={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ta=function(e){if(ea.hasOwnProperty(e.id))return ea[e.id];if(ea.hasOwnProperty(e.is))return ea[e.is];let t=e._cache.parents.find(e=>ea[e]);return ea[t]};var na=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:ta(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 aa=function(e){return e?"string"==typeof e?[e]:e:[]};var ra=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=aa(e[t].children),e[t].not=aa(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 oa={one:{setTag:$n,unTag:Sn,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=ra(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 Yn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return na(n)}}};const ia=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sa={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||""),ia(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 ia(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 la=function(e){Object.assign(e.prototype,sa)};var ua={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 ca=new Set(["Auxiliary","Possessive"]);var da={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(ca.has(e)||!t.hasOwnProperty(n))return 1;if(ca.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:oa,api:la,lib:ua};const ha=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ga=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var ma=function(e){let t=[],n=e.split(ga);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 Ta=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ba=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Oa=/['’]/,za=/^[a-z]\.([a-z]\.)+/i,Va=/^[-+.][0-9]/,Fa=/^'[0-9]{2}/;var $a=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ta,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Va.test(e)?"'"===n&&Fa.test(e)?(n="",t):"":(n="",t)))).replace(Ba,r=>(a=r,Oa.test(r)&&/[sn]['’]$/.test(t)&&!1===Oa.test(n)?(a=a.replace(Oa,""),"'"):!0===za.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Sa=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 Ha=/([A-Z]\.)+[A-Z]?,?$/,Ja=/^[A-Z]\.,?$/,Ma=/[A-Z]{2,}('s|,)?$/,La=/([a-z]\.)+[a-z]\.?$/;var Wa=function(e){return function(e){return!0===Ha.test(e)||!0===La.test(e)||!0===Ja.test(e)||!0===Ma.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ka=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Sa(a),a=n(a,t),a=Wa(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:Pa,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(xa);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=Na(n),n=ja(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=$a(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=>{Ka(e,t)}),n})}}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ua={},Za={};[[["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=>{Ua[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])})});var Qa=["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 _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Xa[t]=e}))}));const Ya=/\//,er=/[a-z]\.[a-z]/i,tr=/[0-9]/;var nr=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])),Ya.test(n)&&!er.test(n)&&!tr.test(n)){let t=n.split(Ya);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ar=/^\p{Letter}+-\p{Letter}+$/u;var rr=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"),ar.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var or=function(e){let t=0,n=0,a=e.document;for(let e=0;eir(e,nr),machine:e=>ir(e,rr),normal:e=>ir(e,Ka),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 cr={safe:!0,min:3};var dr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=lr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},cr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=ur(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(pn),m.extend(St),m.extend(In),m.extend(da),m.plugin(be),m.extend(sr),m.plugin(f),m.extend(De),m.extend(dr),m.extend(Pe),m.extend(Bn);var hr={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"},gr={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 mr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",pr=mr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var fr=function(e){if(void 0!==pr[e])return pr[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 br=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=vr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=wr(gr[e]);Er.test(e)?Object.keys(t).forEach(t=>{if(Ir[t]=e,"Noun|Verb"===e){let e=Ar(t,Nr);Ir[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{jr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","jr[e]="Emoticon"),delete jr[""],delete jr.null,delete jr[" "];const Gr="Adjective";var Dr={beforeTags:{Determiner:Gr,Possessive:Gr},afterTags:{Adjective:Gr},beforeWords:{seem:Gr,seemed:Gr,seems:Gr,feel:Gr,feels:Gr,felt:Gr,appear:Gr,appears:Gr,appeared:Gr,also:Gr,over:Gr,under:Gr,too:Gr,it:Gr,but:Gr,still:Gr,really:Gr,quite:Gr,well:Gr,very:Gr,deeply:Gr,profoundly:Gr,extremely:Gr,so:Gr,badly:Gr,mostly:Gr,totally:Gr,awfully:Gr,rather:Gr,nothing:Gr,something:Gr,anything:Gr},afterWords:{too:Gr,also:Gr,or:Gr}};const xr="Gerund";var Cr={beforeTags:{Adverb:xr,Preposition:xr,Conjunction:xr},afterTags:{Adverb:xr,Possessive:xr,Person:xr,Pronoun:xr,Determiner:xr,Copula:xr,Preposition:xr,Conjunction:xr,Comparative:xr},beforeWords:{been:xr,keep:xr,continue:xr,stop:xr,am:xr,be:xr,me:xr,began:xr,start:xr,starts:xr,started:xr,stops:xr,stopped:xr,help:xr,helps:xr,avoid:xr,avoids:xr,love:xr,loves:xr,loved:xr,hate:xr,hates:xr,hated:xr},afterWords:{you:xr,me:xr,her:xr,him:xr,them:xr,their:xr,it:xr,this:xr,there:xr,on:xr,about:xr,for:xr}};var Tr={beforeTags:Object.assign({},Dr.beforeTags,Cr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Dr.afterTags,Cr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Dr.beforeWords,Cr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Dr.afterWords,Cr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Br="Singular";var Or={beforeTags:{Determiner:Br,Possessive:Br,Acronym:Br,Noun:Br,Adjective:Br,PresentTense:Br,Gerund:Br,PastTense:Br,Infinitive:Br,Date:Br},afterTags:{Value:Br,Modal:Br,Copula:Br,PresentTense:Br,PastTense:Br,Demonym:Br},beforeWords:{the:Br,with:Br,without:Br,of:Br,for:Br,any:Br,all:Br,on:Br,cut:Br,cuts:Br,save:Br,saved:Br,saves:Br,make:Br,makes:Br,made:Br,minus:Br,plus:Br,than:Br,another:Br,versus:Br,neither:Br,favorite:Br,best:Br,daily:Br,weekly:Br,linear:Br,binary:Br,mobile:Br,lexical:Br,technical:Br,computer:Br,scientific:Br,formal:Br},afterWords:{of:Br,system:Br,aid:Br,method:Br,utility:Br,tool:Br,reform:Br,therapy:Br,philosophy:Br,room:Br,authority:Br,says:Br,said:Br,wants:Br,wanted:Br}};const zr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Vr={beforeTags:Object.assign({},Dr.beforeTags,Or.beforeTags,zr.beforeTags),afterTags:Object.assign({},Dr.afterTags,Or.afterTags),beforeWords:Object.assign({},Dr.beforeWords,Or.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Dr.afterWords,Or.afterWords)};const Fr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},$r={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Sr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Hr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Jr={beforeTags:Object.assign({},Dr.beforeTags,Fr),afterTags:Object.assign({},Dr.afterTags,$r),beforeWords:Object.assign({},Dr.beforeWords,Sr),afterWords:Object.assign({},Dr.afterWords,Hr)};const Mr="Infinitive";var Lr={beforeTags:{Modal:Mr,Adverb:Mr,Negative:Mr,Plural:Mr},afterTags:{Determiner:Mr,Adverb:Mr,Possessive:Mr,Preposition:Mr},beforeWords:{i:Mr,we:Mr,you:Mr,they:Mr,to:Mr,please:Mr,will:Mr,have:Mr,had:Mr,would:Mr,could:Mr,should:Mr,do:Mr,did:Mr,does:Mr,can:Mr,must:Mr,us:Mr,me:Mr,he:Mr,she:Mr,it:Mr,being:Mr},afterWords:{the:Mr,me:Mr,you:Mr,him:Mr,her:Mr,them:Mr,it:Mr,a:Mr,an:Mr,up:Mr,down:Mr,by:Mr,out:Mr,off:Mr,when:Mr,all:Mr,to:Mr,because:Mr,although:Mr,before:Mr,how:Mr,otherwise:Mr,though:Mr,yet:Mr}};const Wr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Kr={beforeTags:Object.assign({},Dr.beforeTags,Lr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Dr.afterTags,Lr.afterTags,Wr.afterTags),beforeWords:Object.assign({},Dr.beforeWords,Lr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Dr.afterWords,Lr.afterWords,{to:void 0})};const qr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Rr={},Ur={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Zr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Qr={beforeTags:Object.assign({},Cr.beforeTags,Or.beforeTags,qr),afterTags:Object.assign({},Cr.afterTags,Or.afterTags,Rr),beforeWords:Object.assign({},Cr.beforeWords,Or.beforeWords,Ur),afterWords:Object.assign({},Cr.afterWords,Or.afterWords,Zr)};var _r={beforeTags:Object.assign({},Lr.beforeTags,Or.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Lr.afterTags,Or.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Lr.beforeWords,Or.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Lr.afterWords,Or.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Xr="Person";var Yr={beforeTags:{Honorific:Xr,Person:Xr,Preposition:Xr},afterTags:{Person:Xr,ProperNoun:Xr,Verb:Xr},ownTags:{ProperNoun:Xr},beforeWords:{hi:Xr,hey:Xr,yo:Xr,dear:Xr,hello:Xr},afterWords:{said:Xr,says:Xr,told:Xr,tells:Xr,feels:Xr,felt:Xr,seems:Xr,thinks:Xr,thought:Xr,spends:Xr,spendt:Xr,plays:Xr,played:Xr,sing:Xr,sang:Xr,learn:Xr,learned:Xr,wants:Xr,wanted:Xr}};const eo="Month",to={beforeTags:{Date:eo,Value:eo},afterTags:{Date:eo,Value:eo},beforeWords:{by:eo,in:eo,on:eo,during:eo,after:eo,before:eo,between:eo,until:eo,til:eo,sometime:eo,of:eo,this:eo,next:eo,last:eo,previous:eo,following:eo},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Yr.beforeTags,to.beforeTags),afterTags:Object.assign({},Yr.afterTags,to.afterTags),beforeWords:Object.assign({},Yr.beforeWords,to.beforeWords),afterWords:Object.assign({},Yr.afterWords,to.afterWords)};const ao={Place:"Place"},ro={Place:"Place",Abbreviation:"Place"},oo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const so={"Adj|Gerund":Tr,"Adj|Noun":Vr,"Adj|Past":Jr,"Adj|Present":Kr,"Noun|Verb":_r,"Noun|Gerund":Qr,"Person|Noun":{beforeTags:Object.assign({},Or.beforeTags,Yr.beforeTags),afterTags:Object.assign({},Or.afterTags,Yr.afterTags),beforeWords:Object.assign({},Or.beforeWords,Yr.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Or.afterWords,Yr.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Yr.beforeTags,Lr.beforeTags),afterTags:Object.assign({},Yr.afterTags,Lr.afterTags),beforeWords:Object.assign({},Yr.beforeWords,Lr.beforeWords),afterWords:Object.assign({},Yr.afterWords,Lr.afterWords)},"Person|Place":{beforeTags:Object.assign({},ao,Yr.beforeTags),afterTags:Object.assign({},ro,Yr.afterTags),beforeWords:Object.assign({},oo,Yr.beforeWords),afterWords:Object.assign({},io,Yr.afterWords)}},lo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};so["Plural|Verb"]={beforeWords:lo(so["Noun|Verb"].beforeWords,{}),afterWords:lo(so["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:lo(so["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:lo(so["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var uo=so;const co="Adjective",ho="Infinitive",go="PresentTense",mo="Singular",po="PastTense",fo="Adverb",bo="Plural",yo="Verb",vo="LastName",wo="Participle";var ko=[null,null,{ea:mo,ia:"Noun",ic:co,ly:fo,"'n":yo,"'t":yo},{oed:po,ued:po,xed:po," so":fo,"'ll":"Modal","'re":"Copula",azy:co,eer:"Noun",end:yo,ped:po,ffy:co,ify:ho,ing:"Gerund",ize:ho,ibe:ho,lar:co,mum:co,nes:go,nny:co,ous:co,que:co,rol:mo,sis:mo,ogy:mo,oid:mo,ian:mo,zes:go,eld:po,ken:wo,ven:wo,ten:wo,ect:ho,ict:ho,ign:ho,ful:co,bal:co},{amed:po,aped:po,ched:po,lked:po,rked:po,reed:po,nded:po,mned:co,cted:po,dged:po,ield:mo,akis:vo,cede:ho,chuk:vo,czyk:vo,ects:go,ends:yo,enko:vo,ette:mo,wner:mo,fies:go,fore:fo,gate:ho,gone:co,ices:bo,ints:bo,ruct:ho,ines:bo,ions:bo,less:co,llen:co,made:co,nsen:vo,oses:go,ould:"Modal",some:co,sson:vo,tion:mo,tage:"Noun",ique:mo,tive:co,tors:"Noun",vice:mo,lier:mo,fier:mo,wned:po,gent:mo,tist:mo,pist:mo,rist:mo,mist:mo,yist:mo,vist:mo,lite:mo,site:mo,rite:mo,mite:mo,bite:mo,mate:mo,date:mo,ndal:mo,vent:mo,uist:mo,gist:mo,note:mo,cide:mo,wide:co,vide:ho,ract:ho,duce:ho,pose:ho,eive:ho,lyze:ho,lyse:ho,iant:co,nary:co},{elist:mo,holic:mo,phite:mo,tized:po,urned:po,eased:po,ances:bo,bound:co,ettes:bo,fully:fo,ishes:go,ities:bo,marek:vo,nssen:vo,ology:"Noun",osome:mo,tment:mo,ports:bo,rough:co,tches:go,tieth:"Ordinal",tures:bo,wards:fo,where:fo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:mo,scent:mo,onist:mo,anist:mo,alist:mo,olist:mo,icist:mo,ounce:ho,iable:co,borne:co,gnant:co,inant:co,igent:co,atory:co,rient:mo,dient:mo},{auskas:vo,parent:mo,cedent:mo,ionary:mo,cklist:mo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:vo,borough:"Place",sdottir:vo}];const Po="Adjective";var Ao=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Po,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Po,tele:"Noun","pro-":Po,"mis-":"Verb","dis-":"Verb","pre-":Po},{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:Po,radio:"Noun",tetra:"Noun","omni-":Po,"post-":Po},{pseudo:Po,"extra-":Po,"hyper-":Po,"inter-":Po,"intra-":Po,"deca-":Po},{electro:"Noun"}];const Eo="Adjective",jo="Infinitive",Io="PresentTense",No="Singular",Go="PastTense",Do="Expression",xo="LastName";var Co={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,xo],[/.[^aeiou]ica$/,No,"harmonica"],[/^([hyj]a+)+$/,Do,"haha"]],c:[[/.[^aeiou]ic$/,Eo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Go,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Go,"rammed"],[/.[aeiou][sg]hed$/,Go,"gushed"],[/.[aeiou]red$/,Go,"hired"],[/.[aeiou]r?ried$/,Go,"hurried"],[/[^aeiou]ard$/,No,"steward"],[/[aeiou][^aeiou]id$/,Eo,""],[/.[vrl]id$/,Eo,"livid"],[/..led$/,Go,"hurled"],[/.[iao]sed$/,Go,""],[/[aeiou]n?[cs]ed$/,Go,""],[/[aeiou][rl]?[mnf]ed$/,Go,""],[/[aeiou][ns]?c?ked$/,Go,"bunked"],[/[aeiou]gned$/,Go],[/[aeiou][nl]?ged$/,Go],[/.[tdbwxyz]ed$/,Go],[/[^aeiou][aeiou][tvx]ed$/,Go],[/.[cdflmnprstv]ied$/,Go,"emptied"]],e:[[/.[lnr]ize$/,jo,"antagonize"],[/.[^aeiou]ise$/,jo,"antagonise"],[/.[aeiou]te$/,jo,"bite"],[/.[^aeiou][ai]ble$/,Eo,"fixable"],[/.[^aeiou]eable$/,Eo,"maleable"],[/.[ts]ive$/,Eo,"festive"],[/[a-z]-like$/,Eo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Eo,"cornish"],[/.v[iy]ch$/,xo,"..ovich"],[/^ug?h+$/,Do,"ughh"],[/^uh[ -]?oh$/,Do,"uhoh"],[/[a-z]-ish$/,Eo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,xo,"polish-male"]],k:[[/^(k){2}$/,Do,"kkkk"]],l:[[/.[gl]ial$/,Eo,"familial"],[/.[^aeiou]ful$/,Eo,"fitful"],[/.[nrtumcd]al$/,Eo,"natal"],[/.[^aeiou][ei]al$/,Eo,"familial"]],m:[[/.[^aeiou]ium$/,No,"magnesium"],[/[^aeiou]ism$/,No,"schism"],[/^[hu]m+$/,Do,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Eo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Do,"noooo"],[/^(yo)+$/,Do,"yoo"],[/^wo{2,}[pt]?$/,Do,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,No],[/[^i]fer$/,jo],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Eo],[/[aeiou].*ist$/,Eo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Io],[/.[rln]ates$/,Io],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,No],[/.[aeiou]sks$/,Io],[/.[aeiou]kes$/,Io],[/[aeiou][^aeiou]is$/,No],[/[a-z]'s$/,"Noun"],[/^yes+$/,Do]],v:[[/.[^aeiou][ai][kln]ov$/,xo]],y:[[/.[cts]hy$/,Eo],[/.[st]ty$/,Eo],[/.[tnl]ary$/,Eo],[/.[oe]ry$/,No],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Eo],[/...lly$/,"Adverb"],[/.[gk]y$/,Eo],[/[bszmp]{2}y$/,Eo],[/.[ai]my$/,Eo],[/[ea]{2}zy$/,Eo],[/.[^aeiou]ity$/,No]]};const To="Verb",Bo="Noun";var Oo={leftTags:[["Adjective",Bo],["Possessive",Bo],["Determiner",Bo],["Adverb",To],["Pronoun",To],["Value",Bo],["Ordinal",Bo],["Modal",To],["Superlative",Bo],["Demonym",Bo],["Honorific","Person"]],leftWords:[["i",To],["first",Bo],["it",To],["there",To],["not",To],["because",Bo],["if",Bo],["but",Bo],["who",To],["this",Bo],["his",Bo],["when",Bo],["you",To],["very","Adjective"],["old",Bo],["never",To],["before",Bo],["a","Singular"],["the",Bo],["been",To]],rightTags:[["Copula",Bo],["PastTense",Bo],["Conjunction",Bo],["Modal",Bo]],rightWords:[["there",To],["me",To],["man","Adjective"],["only",To],["him",To],["it",To],["were",Bo],["took",Bo],["himself",To],["went",Bo],["who",Bo],["jr","Person"]]},zo={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"},Vo={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"},Fo={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"},$o={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"},So={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 Ho=/^.([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],a=n.match(Ho);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Ho,"")}(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},Lo=/^([0-9]+)/,Wo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Lo);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(Lo,"")]}(n[0],n[1])})};var Ko=function(e={}){return(e=Object.assign({},e)).rules=Wo(e.rules),e.rules=Mo(e.rules),e.rev&&(e.rev=Wo(e.rev),e.rev=Mo(e.rev)),e.exceptions=Wo(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 Ro=Ko({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"}),Uo=Ko($o),Zo=Ko(Vo),Qo=Ko(Fo),_o=qo(Ro),Xo=qo(Uo),Yo=qo(Zo),ei=qo(Qo),ti=Ko(zo),ni=Ko(So);var ai={fromPast:Ro,fromPresent:Uo,fromGerund:Zo,fromParticiple:Qo,toPast:_o,toPresent:Xo,toGerund:Yo,toParticiple:ei,toComparative:ti,toSuperlative:ni,fromComparative:qo(ti),fromSuperlative:qo(ni)},ri=["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),{}),oi=[[/([^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 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(si[t].forEach(n=>e[n]=t),e),{});var li=si;var ui=function(e){let t=e.substring(e.length-3);if(!0===li.hasOwnProperty(t))return li[t];let n=e.substring(e.length-2);return!0===li.hasOwnProperty(n)?li[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ci={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var di=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=ui(e)),ci.hasOwnProperty(e))c=ci[e];else if("Participle"===n)c=Jo(l,i);else if("PastTense"===n)c=Jo(l,a);else if("PresentTense"===n)c=Jo(l,r);else{if("Gerund"!==n)return e;c=Jo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var hi=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:Jo(i,n),PresentTense:Jo(i,a),Gerund:Jo(i,r),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 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 mi="ically",pi=new Set(["analyt"+mi,"chem"+mi,"class"+mi,"clin"+mi,"crit"+mi,"ecolog"+mi,"electr"+mi,"empir"+mi,"frant"+mi,"grammat"+mi,"ident"+mi,"ideolog"+mi,"log"+mi,"mag"+mi,"mathemat"+mi,"mechan"+mi,"med"+mi,"method"+mi,"method"+mi,"mus"+mi,"phys"+mi,"phys"+mi,"polit"+mi,"pract"+mi,"rad"+mi,"satir"+mi,"statist"+mi,"techn"+mi,"technolog"+mi,"theoret"+mi,"typ"+mi,"vert"+mi,"whims"+mi]),fi=[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"}],bi=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"]),yi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var vi=function(e){return e.endsWith("ly")?pi.has(e)?e.replace(/ically/,"ical"):bi.has(e)?null:yi.hasOwnProperty(e)?yi[e]:gi(e,fi)||e:null};const wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ki={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Pi=function(e){if(ki.hasOwnProperty(e))return ki[e];let t=gi(e,wi);return t||e+"ly"};const Ai=[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"}],Ei={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"},ji=new Set(["terrible","annoying"]);const Ii=function(e,t){const n=t.two.models.toSuperlative;return Jo(e,n)},Ni=function(e,t){const n=t.two.models.toComparative;return Jo(e,n)};var Gi={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 Di={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===Gi.hasOwnProperty(i)&&Gi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Ar,nounToSingular:ii,verbToInfinitive:di,getTense:ui,verbConjugate:hi,adjToSuperlative:Ii,adjToComparative:Ni,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:vi,adjToAdverb:Pi,adjToNoun:function(e){if(Ei.hasOwnProperty(e))return Ei[e];if(ji.has(e))return null;let t=gi(e,Ai);return t||e+"ness"}}}};var 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 Ci=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Ti=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=Ci(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ci(a,"Infinitive","Verb"),Object.assign(s,l),l=Ci(r,"Infinitive","Gerund"),Object.assign(s,l),l=Ci(o,"Adjective","Superlative"),Object.assign(s,l),l=Ci(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Bi={two:{models:ai}};const Oi={"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"},zi=function(e,t){const n={model:t,methods:Di};let{lex:a,_multi:r}=Di.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Vi=function(e,t,n){let a=hi(e,Bi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Fi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Oi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Vi(r,a,!1),"Adj|Present"===o&&(Vi(r,a,!0),function(e,t,n){let a=Ii(e,n);t[a]=t[a]||"Superlative";let r=Ni(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=di(r,Bi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=di(r,Bi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=zi(n,t)};let $i={one:{_multiCache:{},lexicon:jr},two:{irregularPlurals:hr,models:ai,suffixPatterns:ko,prefixPatterns:Ao,endsWith:Co,neighbours:Oo,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:Ir,clues:uo,uncountable:{},orgWords:ri}};$i=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=zi(e.one.lexicon,e)).one.lexicon,e),e=Fi(e.two.switches,e),e=Ti(e),e=xi(e)}($i);var Si=$i;const Hi=/^(under|over|mis|re|un|dis|semi)-?/;var Ji=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(Hi.test(r.normal)){let e=r.normal.replace(Hi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Mi=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 Li={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Wi=new Set(["formulas","koalas","israelis","menus"]),Ki=["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(Wi.has(e))return!0;let t=e[e.length-1];return Li.hasOwnProperty(t)?Li[t].find(t=>e.endsWith(t)):"s"===t&&!Ki.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Ui=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(qi(e.normal)?Mi(e,"Plural","3-plural-guess"):Mi(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ui(e.normal);t&&Mi(e,t,"3-verb-tense-guess")}}(a)};const Zi=/^\p{Lu}[\p{Ll}'’]/u,Qi=/[0-9]/,_i=["Date","Month","WeekDay","Unit"],Xi=/^[IVXLCDM]{2,}$/,Yi=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,es={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ts=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===Zi.test(o)&&!1===Qi.test(o)?_i.find(e=>a.tags.has(e))?null:(Ui(e,t,n),a.tags.has("Noun")||a.tags.clear(),Mi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Xi.test(o)&&Yi.test(o)&&!es[a.normal]?(Mi(a,"RomanNumeral","2-xvii"),!0):null};const ns=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=ns(a.normal,n.two.suffixPatterns);if(null!==e)return Mi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=ns(a.implicit,n.two.suffixPatterns),null!==e))return Mi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const rs=/['‘’‛‵′`´]/,os=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 Mi(a,e,"2-prefix"),a.confidence=.5,!0}return null};const ls=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"]),us=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ls.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},cs=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 hs=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(us(r)||us(o))return Mi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(cs(r)||cs(o))return Mi(n,"Year","2-tagYear-close");if(ds(e[t-2])||ds(e[t+2]))return Mi(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 Mi(n,"Year","2-tagYear-noun")}}}return null};const gs=/^[A-Z]('s|,)?$/,ms=/^[A-Z-]+$/,ps=/([A-Z]\.)+[A-Z]?,?$/,fs=/[A-Z]{2,}('s|,)?$/,bs=/([a-z]\.)+[a-z]\.?$/,ys={I:!0,A:!0};var vs=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===ms.test(n)||n.length>5||ys.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==ps.test(n)&&!0!==bs.test(n)&&!0!==gs.test(n)&&!0!==fs.test(n))}(a,n)?(a.tags.clear(),Mi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!ys.hasOwnProperty(a.text)&&gs.test(a.text)?(a.tags.clear(),Mi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Mi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&ms.test(a.text)&&a.text.length<=6?(Mi(a,"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},ks=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ps=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||ws(e[t-1],r),l=l||ws(e[t+1],o),l=l||ks(e[t-1],a),l=l||ks(e[t+1],i),l)return Mi(s,l,"3-[neighbour]"),Ui(e,t,n),e[t].confidence=.2,!0}return null};const As=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 Es=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]&&As(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&As(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var js=function(e,t,n){0===e[t].tags.size&&(Mi(e[t],"Noun","3-[fallback]"),Ui(e,t,n),e[t].confidence=.1)};const Is=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ns=(e,t,n)=>0!==t||e[1]?null:n;var Gs={"Adj|Gerund":(e,t)=>Is(e,t),"Adj|Noun":(e,t)=>Is(e,t),"Adj|Past":(e,t)=>Is(e,t),"Adj|Present":(e,t)=>Is(e,t),"Noun|Gerund":(e,t)=>Is(e,t),"Noun|Verb":(e,t)=>Is(e,t)||Ns(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Is(e,t)||Ns(e,t,"PresentTense"),"Person|Noun":(e,t)=>Is(e,t),"Person|Verb":(e,t)=>0!==t&&Is(e,t)};const Ds="undefined"!=typeof process&&process.env?process.env:self.env||{},xs=/^(under|over|mis|re|un|dis|semi)-?/,Cs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Ds.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ts=(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&&Ds.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Bs={tagSwitch:Ji,checkSuffix:as,checkRegex:is,checkCase:ts,checkPrefix:ss,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")&&(Mi(o,"Verb","3-[prefix]"),Mi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Mi(o,"Adjective","3-[prefix]"),Mi(o,"Prefix","3-[prefix]")))},checkYear:hs},Os={checkAcronym:vs,neighbours:Ps,orgWords:Es,nounFallback:js,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(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=Cs(e[t+1],n.afterWords);return o=o||Cs(e[t-1],n.beforeWords),o=o||Ts(e[t-1],n.beforeTags,r),o=o||Ts(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Gs[o]&&(u=Gs[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Ds.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},zs=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 $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 Ss={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 Qs=/'/;var _s=function(e,t){let n=e[t].normal.split(Qs)[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 Xs=/'/;var Ys=function(e,t){let n=e[t].normal.split(Xs)[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 el=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 tl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},nl={in:!0,by:!0,for:!0};var al=(e,t)=>{let n=e[t];if(tl.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===nl[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 rl=/'/,ol=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)=>Ys(e,t),t:(e,t)=>el(e,t),s:(e,t,n)=>al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):_s(e,t)},sl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ll={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===rl.test(a[o].normal)&&([,i]=a[o].normal.split(rl));let s=null;il.hasOwnProperty(i)&&(s=il[i](a,o,t)),s&&(s=sl(s,e),Zs(n,[r,o],s),ol(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=Us.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=Rs},hooks:["contractionTwo"]};const ul="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const cl=["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:"[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:"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:ul+" #Person",tag:"Person",reason:"randy-smith"},{match:ul+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${ul}]`,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:"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:cl,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:cl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:cl,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 hl=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;hl=hl||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(hl),e.uncache(),e}},model:{two:{matches:dl}},hooks:["postTagger"]};var ml=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 pl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?ml(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 fl={api:function(e){e.prototype.swap=pl}};m.plugin(Ws),m.plugin(ll),m.plugin(gl),m.plugin(fl);export{m as default}; diff --git a/scratch.js b/scratch.js index b659dbafd..e4a5fa0d1 100644 --- a/scratch.js +++ b/scratch.js @@ -1,5 +1,5 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/one.js' +import nlp from './src/two.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) @@ -37,15 +37,20 @@ import nlp from './src/one.js' // Upload documents required to verify your eligibility +let m = '(he|she|they|and|but|#Patient|#Noun|#Honorific|#ProperNoun+) #ProperNoun+? (will|shall|should|would) be followed up .{0,3}?$' +let txt = `and he will be followed up after the injection.`//followUp positive + + +m = `!(not|would) (discharge|discharging|discharged) (him|her|them|you|#Honorific|#ProperNoun+) #ProperNoun+? from * (service|services|clinic|unit|ward|care)` +txt = `At this stage we discharged him from clinic.` let matches = [ - // { match: '(he|she|they|and|but|#Patient|#Noun|#Honorific|#ProperNoun+) #ProperNoun+? (will|shall|should|would) be followed up .{0,3}?$' } - { match: '(one|two) and (three|four)' } + { match: m } ] let net = nlp.buildNet(matches) -let doc = nlp('one and foo') +let doc = nlp(txt) // doc.debug() // doc.verbs().toFutureTense() doc.match(net).debug() diff --git a/src/1-one/sweep/methods/buildNet/01-parse.js b/src/1-one/sweep/methods/buildNet/01-parse.js index 4974d592e..434678699 100644 --- a/src/1-one/sweep/methods/buildNet/01-parse.js +++ b/src/1-one/sweep/methods/buildNet/01-parse.js @@ -36,7 +36,7 @@ const getWants = function (regs) { let wants = [] let count = 0 regs.forEach(reg => { - if (reg.operator === 'or' && !reg.optional) { + if (reg.operator === 'or' && !reg.optional && !reg.negative) { // add fast-or terms if (reg.fastOr) { Array.from(reg.fastOr).forEach(w => { From 01f159e76a18ce5a01fdce1273a96505bc2a2c9e Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 13 Jun 2022 18:02:17 -0400 Subject: [PATCH 10/13] some tagging fixes, 1x --- data/lexicon/adjectives/comparables.js | 1 - data/lexicon/nouns/singulars.js | 2 + data/lexicon/switches/adj-noun.js | 1 + data/lexicon/switches/noun-verb.js | 1 + scratch.js | 76 +++++++++++-------- src/2-two/postTagger/model/nouns/nouns.js | 3 +- src/2-two/postTagger/model/verbs/verbs.js | 14 ++-- .../compute/tagger/3rd-pass/06-switches.js | 3 +- src/2-two/preTagger/model/clues/_verb.js | 2 + src/2-two/preTagger/model/lexicon/_data.js | 8 +- src/2-two/preTagger/model/lexicon/misc.js | 25 +++--- tests/two/variables/present-noun.test.js | 2 +- 12 files changed, 77 insertions(+), 61 deletions(-) diff --git a/data/lexicon/adjectives/comparables.js b/data/lexicon/adjectives/comparables.js index c6ccd71a9..4d4c454a4 100644 --- a/data/lexicon/adjectives/comparables.js +++ b/data/lexicon/adjectives/comparables.js @@ -115,7 +115,6 @@ export default [ 'icy', 'ill', 'insecure', - 'instant', 'intellegent', 'intermediate', 'intimate', diff --git a/data/lexicon/nouns/singulars.js b/data/lexicon/nouns/singulars.js index fa53ec119..71a75d5f5 100644 --- a/data/lexicon/nouns/singulars.js +++ b/data/lexicon/nouns/singulars.js @@ -398,6 +398,8 @@ export default [ 'incentive', 'parish', 'tv', + + 'stone', ] diff --git a/data/lexicon/switches/adj-noun.js b/data/lexicon/switches/adj-noun.js index ccfd6b8e7..b966f13b2 100644 --- a/data/lexicon/switches/adj-noun.js +++ b/data/lexicon/switches/adj-noun.js @@ -45,6 +45,7 @@ export default [ 'incumbent', 'individual', 'innocent', + 'instant', 'juvenile', 'justice', 'latter', diff --git a/data/lexicon/switches/noun-verb.js b/data/lexicon/switches/noun-verb.js index a58c95407..00fb02df8 100644 --- a/data/lexicon/switches/noun-verb.js +++ b/data/lexicon/switches/noun-verb.js @@ -63,6 +63,7 @@ export default [ 'breach', 'break', 'bridge', + 'bribe', 'broadcast', 'bubble', 'buckle', diff --git a/scratch.js b/scratch.js index e4a5fa0d1..1dc1c6219 100644 --- a/scratch.js +++ b/scratch.js @@ -3,7 +3,9 @@ import nlp from './src/two.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -// nlp.verbose('tagger') +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." @@ -11,49 +13,59 @@ import nlp from './src/two.js' // "A 40-year-old man called me swell." // "that's just not swell" -// Let’s get you into wardrobe for a fitting. - -// "My pants don't even fit right", -// "In a baseball hat fit for a queen" -// "Srinath will be fit in three weeks" -// "does the different part fit together" - -// License fee for beach vendors hiked -// "TTC to hike fares by 10 cents in March" - -// "He deserted from the Dragoons at", -// "Offices; banks wear deserted look" - -// "CBI catches DD acting director taking bribe" -// "How do I keep kissing you and catch my breath?" +txt = "Let’s get you into wardrobe for a fitting." +txt = " any need for a trial" +txt = " definitely worth a rental." +txt = "go kayaking in a tributary?." +txt = "any need for a trial." +txt = "keeping the matter a secret" +txt = "on this as a whole" +txt = "he had fallen into a cold" +txt = " I was an expert" +txt = " taken from us in an instant" +txt = " the instant he walked" +txt = " pressure on the terrorist countries." + +// 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?" // "who were always throwing stones at me." -// "People in glass houses should not throw stones, Dick, said Jaqueline." +// txt = " throw stones, Dick, said Jaqueline." // -// "Why did the mechanic sleep under the car?" - -// Loblaws reducing food prices at Toronto stores -// "Stock prices closed higher in Stockholm -// Upload documents required to verify your eligibility +// txt = "Loblaws reducing food prices at Toronto stores" +// txt = "Stock prices closed higher in Stockholm" -let m = '(he|she|they|and|but|#Patient|#Noun|#Honorific|#ProperNoun+) #ProperNoun+? (will|shall|should|would) be followed up .{0,3}?$' -let txt = `and he will be followed up after the injection.`//followUp positive +// txt = `Upload documents required to verify your eligibility` -m = `!(not|would) (discharge|discharging|discharged) (him|her|them|you|#Honorific|#ProperNoun+) #ProperNoun+? from * (service|services|clinic|unit|ward|care)` -txt = `At this stage we discharged him from clinic.` -let matches = [ - { match: m } -] +// let txt = `There are no open wounds ` - -let net = nlp.buildNet(matches) +// let matches = [ +// { match: m } +// ] +// let net = nlp.buildNet(matches) let doc = nlp(txt) +// console.log(doc.docs) // doc.debug() // doc.verbs().toFutureTense() -doc.match(net).debug() +// doc.match(net).debug() +doc.debug() + +// banks wear +// %Plural|Verb% %Noun|Verb% // let doc = nlp(`he will have been walking`).debug() // let doc = nlp(`Bob has handled`).debug() diff --git a/src/2-two/postTagger/model/nouns/nouns.js b/src/2-two/postTagger/model/nouns/nouns.js index 1e08ece6d..42e7cf85d 100644 --- a/src/2-two/postTagger/model/nouns/nouns.js +++ b/src/2-two/postTagger/model/nouns/nouns.js @@ -117,9 +117,10 @@ export default [ // 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' }, + { 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' }, ] diff --git a/src/2-two/postTagger/model/verbs/verbs.js b/src/2-two/postTagger/model/verbs/verbs.js index c8ad18d2c..3a05e6686 100644 --- a/src/2-two/postTagger/model/verbs/verbs.js +++ b/src/2-two/postTagger/model/verbs/verbs.js @@ -10,13 +10,6 @@ export default [ // 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' }, @@ -81,5 +74,10 @@ export default [ // 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' }, ] 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 b0f3a9403..9431c1e86 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 @@ -73,10 +73,9 @@ const doSwitches = function (terms, i, world) { } // did we find anything? if (tag) { - // setTag(term, tag, model) setTag([term], tag, world, null, `3-[variable] (${form})`) } else if (env.DEBUG_TAGS) { - console.log(`\n -> X - '${str}' : ${form} `)//eslint-disable-line + console.log(`\n -> X - '${str}' : (${form}) `)//eslint-disable-line } } } diff --git a/src/2-two/preTagger/model/clues/_verb.js b/src/2-two/preTagger/model/clues/_verb.js index 12b78aedd..03617ae7a 100644 --- a/src/2-two/preTagger/model/clues/_verb.js +++ b/src/2-two/preTagger/model/clues/_verb.js @@ -60,6 +60,7 @@ export default { out: v, // on: v, off: v, + under: v, when: v,//starts when // for:true, //settled for all: v,//shiver all night @@ -70,6 +71,7 @@ export default { before: v,// how: v,// otherwise: v,// + together: v,//fit together though: v,// yet: v,// }, diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index e5841646d..d46d52aab 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -18,18 +18,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: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,u4;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;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;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;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem5d3l2nim0rab;al;ert;olesc1ult;ent;ic", + "Adj|Noun": "true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;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", @@ -53,7 +53,7 @@ export default { "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", diff --git a/src/2-two/preTagger/model/lexicon/misc.js b/src/2-two/preTagger/model/lexicon/misc.js index 688f4955e..338b87cc4 100644 --- a/src/2-two/preTagger/model/lexicon/misc.js +++ b/src/2-two/preTagger/model/lexicon/misc.js @@ -48,18 +48,19 @@ let misc = { // 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'] } export default misc diff --git a/tests/two/variables/present-noun.test.js b/tests/two/variables/present-noun.test.js index 7e632591f..d9886b19c 100644 --- a/tests/two/variables/present-noun.test.js +++ b/tests/two/variables/present-noun.test.js @@ -82,7 +82,7 @@ let arr = [ [`the city strains`, `the #Noun #Plural`], // [`the software patches`, `the #Noun #Plural`], // [`the toronto fires`, `the #Noun #Plural`], - [`The paving-stones`, `the #Noun #Plural`], + [`The paving-stones`, `the #Adjective #Plural`], // [`cost of living`, `#PastTense #Preposition #Noun`], [`The similar TORRO scale ranges from`, 'the #Adjective #Noun #Noun #PresentTense from'], // [`New project crowdsources help for Toronto's homeless`, '#Adjective #Noun #PresentTense #Noun for #Possessive #Noun'], From 04de9571104b810e7d7214ec61c489cacae5c857 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 13 Jun 2022 18:18:22 -0400 Subject: [PATCH 11/13] tagging tests --- builds/compromise.js | 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 ++-- data/lexicon/nouns/singulars.js | 1 + data/lexicon/switches/adj-noun.js | 1 + scratch.js | 17 +++-------------- .../postTagger/model/adjective/adj-noun.js | 2 ++ src/2-two/postTagger/model/nouns/nouns.js | 2 +- src/2-two/preTagger/model/lexicon/_data.js | 4 ++-- tests/two/match.test.js | 14 ++++++++++++++ tests/two/tagger/_pennSample.js | 4 ---- 13 files changed, 34 insertions(+), 31 deletions(-) diff --git a/builds/compromise.js b/builds/compromise.js index ff007dc88..0d9d656c6 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.0";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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\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(We),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 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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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(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||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(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=In(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},Tn=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})},Cn=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)})},Dn=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},On=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=Gn(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=Tn(a,t.hooks);return o=Cn(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),Dn(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===On(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 Vn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Vn.test(t))!function(e,t,n,r){let a=t.split(Vn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn,Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Rn=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:Ln(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Wn(t=e).forEach(Mn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Wn(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},Qn=function(e){let t=Wn(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},Zn={text:Un,txt:Un,array:Qn,flat:Qn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Yn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Wn(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 Yn(this.json),_n(this.json,e)}debug(){return Yn(this.json),_n(this.json,"debug"),this}}const er=function(e){let t=Rn(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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)}},ur=function(e){Object.assign(e.prototype,lr)},cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var gr=function(e){let t=[],n=e.split(mr);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 Or=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Br=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Vr=/['’]/,zr=/^[a-z]\.([a-z]\.)+/i,$r=/^[-+.][0-9]/,Fr=/^'[0-9]{2}/;var Sr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Or,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$r.test(e)?"'"===n&&Fr.test(e)?(n="",t):"":(n="",t)))).replace(Br,a=>(r=a,Vr.test(a)&&/[sn]['’]$/.test(t)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Hr=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,Lr=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var qr=function(e){return function(e){return!0===Mr.test(e)||!0===Wr.test(e)||!0===Jr.test(e)||!0===Lr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Kr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Hr(r),r=n(r,t),r=qr(r),e.normal=r},Rr={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:Ar,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(Cr);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=Ir(n),n=xr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Sr(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=>{Kr(e,t)}),n})}}}},Ur={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["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=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])})});var _r=["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 Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xr={};Object.keys(Yr).forEach((function(e){Yr[e].split("").forEach((function(t){Xr[t]=e}))}));const ea=/\//,ta=/[a-z]\.[a-z]/i,na=/[0-9]/;var ra=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])),ea.test(n)&&!ta.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 aa=/^\p{Letter}+-\p{Letter}+$/u;var oa=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"),aa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ia=function(e){let t=0,n=0,r=e.document;for(let e=0;esa(e,ra),machine:e=>sa(e,oa),normal:e=>sa(e,Kr),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 ha={safe:!0,min:3};var da={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ua},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ha,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ca(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(fn),m.extend(St),m.extend(Nn),m.extend(dr),m.plugin(be),m.extend(la),m.plugin(f),m.extend(Ge),m.extend(da),m.extend(Pe),m.extend(Bn);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"},ma={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ga=36,fa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ba=fa.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=ga,a=1;for(;n=0;n--,a*=ga){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ya=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=Pa(ma[e]);xa.test(e)?Object.keys(t).forEach(t=>{if(Ia[t]=e,"Noun|Verb"===e){let e=Ea(t,Ga);Ia[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ta="Adjective";var Ca={beforeTags:{Determiner:Ta,Possessive:Ta},afterTags:{Adjective:Ta},beforeWords:{seem:Ta,seemed:Ta,seems:Ta,feel:Ta,feels:Ta,felt:Ta,appear:Ta,appears:Ta,appeared:Ta,also:Ta,over:Ta,under:Ta,too:Ta,it:Ta,but:Ta,still:Ta,really:Ta,quite:Ta,well:Ta,very:Ta,deeply:Ta,profoundly:Ta,extremely:Ta,so:Ta,badly:Ta,mostly:Ta,totally:Ta,awfully:Ta,rather:Ta,nothing:Ta,something:Ta,anything:Ta},afterWords:{too:Ta,also:Ta,or:Ta}};const Da="Gerund";var Oa={beforeTags:{Adverb:Da,Preposition:Da,Conjunction:Da},afterTags:{Adverb:Da,Possessive:Da,Person:Da,Pronoun:Da,Determiner:Da,Copula:Da,Preposition:Da,Conjunction:Da,Comparative:Da},beforeWords:{been:Da,keep:Da,continue:Da,stop:Da,am:Da,be:Da,me:Da,began:Da,start:Da,starts:Da,started:Da,stops:Da,stopped:Da,help:Da,helps:Da,avoid:Da,avoids:Da,love:Da,loves:Da,loved:Da,hate:Da,hates:Da,hated:Da},afterWords:{you:Da,me:Da,her:Da,him:Da,them:Da,their:Da,it:Da,this:Da,there:Da,on:Da,about:Da,for:Da}},Ba={beforeTags:Object.assign({},Ca.beforeTags,Oa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ca.afterTags,Oa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ca.beforeWords,Oa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ca.afterWords,Oa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Va="Singular";var za={beforeTags:{Determiner:Va,Possessive:Va,Acronym:Va,Noun:Va,Adjective:Va,PresentTense:Va,Gerund:Va,PastTense:Va,Infinitive:Va,Date:Va},afterTags:{Value:Va,Modal:Va,Copula:Va,PresentTense:Va,PastTense:Va,Demonym:Va},beforeWords:{the:Va,with:Va,without:Va,of:Va,for:Va,any:Va,all:Va,on:Va,cut:Va,cuts:Va,save:Va,saved:Va,saves:Va,make:Va,makes:Va,made:Va,minus:Va,plus:Va,than:Va,another:Va,versus:Va,neither:Va,favorite:Va,best:Va,daily:Va,weekly:Va,linear:Va,binary:Va,mobile:Va,lexical:Va,technical:Va,computer:Va,scientific:Va,formal:Va},afterWords:{of:Va,system:Va,aid:Va,method:Va,utility:Va,tool:Va,reform:Va,therapy:Va,philosophy:Va,room:Va,authority:Va,says:Va,said:Va,wants:Va,wanted:Va}};const $a={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fa={beforeTags:Object.assign({},Ca.beforeTags,za.beforeTags,$a.beforeTags),afterTags:Object.assign({},Ca.afterTags,za.afterTags),beforeWords:Object.assign({},Ca.beforeWords,za.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,za.afterWords)};const Sa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ha={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ma={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ja={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var La={beforeTags:Object.assign({},Ca.beforeTags,Sa),afterTags:Object.assign({},Ca.afterTags,Ha),beforeWords:Object.assign({},Ca.beforeWords,Ma),afterWords:Object.assign({},Ca.afterWords,Ja)};const Wa="Infinitive";var qa={beforeTags:{Modal:Wa,Adverb:Wa,Negative:Wa,Plural:Wa},afterTags:{Determiner:Wa,Adverb:Wa,Possessive:Wa,Preposition:Wa},beforeWords:{i:Wa,we:Wa,you:Wa,they:Wa,to:Wa,please:Wa,will:Wa,have:Wa,had:Wa,would:Wa,could:Wa,should:Wa,do:Wa,did:Wa,does:Wa,can:Wa,must:Wa,us:Wa,me:Wa,he:Wa,she:Wa,it:Wa,being:Wa},afterWords:{the:Wa,me:Wa,you:Wa,him:Wa,her:Wa,them:Wa,it:Wa,a:Wa,an:Wa,up:Wa,down:Wa,by:Wa,out:Wa,off:Wa,when:Wa,all:Wa,to:Wa,because:Wa,although:Wa,before:Wa,how:Wa,otherwise:Wa,though:Wa,yet:Wa}};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Ca.beforeTags,qa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ca.afterTags,qa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Ca.beforeWords,qa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,qa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qa={},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"},_a={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Ya={beforeTags:Object.assign({},Oa.beforeTags,za.beforeTags,Ua),afterTags:Object.assign({},Oa.afterTags,za.afterTags,Qa),beforeWords:Object.assign({},Oa.beforeWords,za.beforeWords,Za),afterWords:Object.assign({},Oa.afterWords,za.afterWords,_a)},Xa={beforeTags:Object.assign({},qa.beforeTags,za.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qa.afterTags,za.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qa.beforeWords,za.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qa.afterWords,za.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ro={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ao={beforeTags:Object.assign({},to.beforeTags,ro.beforeTags),afterTags:Object.assign({},to.afterTags,ro.afterTags),beforeWords:Object.assign({},to.beforeWords,ro.beforeWords),afterWords:Object.assign({},to.afterWords,ro.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Ba,"Adj|Noun":Fa,"Adj|Past":La,"Adj|Present":Ra,"Noun|Verb":Xa,"Noun|Gerund":Ya,"Person|Noun":{beforeTags:Object.assign({},za.beforeTags,to.beforeTags),afterTags:Object.assign({},za.afterTags,to.afterTags),beforeWords:Object.assign({},za.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},za.afterWords,to.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,qa.beforeTags),afterTags:Object.assign({},to.afterTags,qa.afterTags),beforeWords:Object.assign({},to.beforeWords,qa.beforeWords),afterWords:Object.assign({},to.afterWords,qa.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const po="Adjective",mo="Infinitive",go="PresentTense",fo="Singular",bo="PastTense",vo="Adverb",yo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",jo="Modal",Eo="Participle";var xo=[null,null,{ea:fo,ia:Po,ic:po,ly:vo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":vo,"'ll":jo,"'re":"Copula",azy:po,eer:Po,end:ko,ped:bo,ffy:po,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:po,mum:po,nes:go,nny:po,ous:po,que:po,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:go,eld:bo,ken:Eo,ven:Eo,ten:Eo,ect:mo,ict:mo,ign:mo,ful:po,bal:po},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:po,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:go,ends:ko,enko:Ao,ette:fo,wner:fo,fies:go,fore:vo,gate:mo,gone:po,ices:yo,ints:yo,ruct:mo,ines:yo,ions:yo,less:po,llen:po,made:po,nsen:Ao,oses:go,ould:jo,some:po,sson:Ao,tion:fo,tage:Po,ique:fo,tive:po,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:po,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:po,nary:po},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:yo,bound:po,ettes:yo,fully:vo,ishes:go,ities:yo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:yo,rough:po,tches:go,tieth:"Ordinal",tures:yo,wards:vo,where:vo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const No="Adjective",Io="Noun",Go="Verb";var To=[null,null,{},{neo:Io,bio:Io,"de-":Go,"re-":Go,"un-":Go},{anti:Io,auto:Io,faux:No,hexa:Io,kilo:Io,mono:Io,nano:Io,octa:Io,poly:Io,semi:No,tele:Io,"pro-":No,"mis-":Go,"dis-":Go,"pre-":No},{anglo:Io,centi:Io,ethno:Io,ferro:Io,grand:Io,hepta:Io,hydro:Io,intro:Io,macro:Io,micro:Io,milli:Io,nitro:Io,penta:Io,quasi:No,radio:Io,tetra:Io,"omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:Io}];const Co="Adjective",Do="Infinitive",Oo="PresentTense",Bo="Singular",Vo="PastTense",zo="Adverb",$o="Expression",Fo="Actor",So="Verb",Ho="Noun",Mo="LastName";var Jo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Mo],[/.[^aeiou]ica$/,Bo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Vo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Vo,"rammed"],[/.[aeiou][sg]hed$/,Vo,"gushed"],[/.[aeiou]red$/,Vo,"hired"],[/.[aeiou]r?ried$/,Vo,"hurried"],[/[^aeiou]ard$/,Bo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,Vo,"hurled"],[/.[iao]sed$/,Vo,""],[/[aeiou]n?[cs]ed$/,Vo,""],[/[aeiou][rl]?[mnf]ed$/,Vo,""],[/[aeiou][ns]?c?ked$/,Vo,"bunked"],[/[aeiou]gned$/,Vo],[/[aeiou][nl]?ged$/,Vo],[/.[tdbwxyz]ed$/,Vo],[/[^aeiou][aeiou][tvx]ed$/,Vo],[/.[cdflmnprstv]ied$/,Vo,"emptied"]],e:[[/.[lnr]ize$/,Do,"antagonize"],[/.[^aeiou]ise$/,Do,"antagonise"],[/.[aeiou]te$/,Do,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,Mo,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Mo,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Bo,"magnesium"],[/[^aeiou]ism$/,Bo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,Fo,"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$/,Bo],[/[^i]fer$/,Do],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Bo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Bo],[/[a-z]'s$/,Ho],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,Mo]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Bo],[/[rdntkbhs]ly$/,zo],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,zo],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Bo]]};const Lo="Verb",Wo="Noun";var qo={leftTags:[["Adjective",Wo],["Possessive",Wo],["Determiner",Wo],["Adverb",Lo],["Pronoun",Lo],["Value",Wo],["Ordinal",Wo],["Modal",Lo],["Superlative",Wo],["Demonym",Wo],["Honorific","Person"]],leftWords:[["i",Lo],["first",Wo],["it",Lo],["there",Lo],["not",Lo],["because",Wo],["if",Wo],["but",Wo],["who",Lo],["this",Wo],["his",Wo],["when",Wo],["you",Lo],["very","Adjective"],["old",Wo],["never",Lo],["before",Wo],["a","Singular"],["the",Wo],["been",Lo]],rightTags:[["Copula",Wo],["PastTense",Wo],["Conjunction",Wo],["Modal",Wo]],rightWords:[["there",Lo],["me",Lo],["man","Adjective"],["only",Lo],["him",Lo],["it",Lo],["were",Wo],["took",Wo],["himself",Lo],["went",Wo],["who",Wo],["jr","Person"]]},Ko={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"},Uo={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 _o=/^.([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(_o);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(_o,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Xo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Xo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ri=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 ai=ni({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"}),oi=ni(Qo),ii=ni(Ro),si=ni(Uo),li=ri(ai),ui=ri(oi),ci=ri(ii),hi=ri(si),di=ni(Ko),pi=ni(Zo);var mi={fromPast:ai,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:hi,toComparative:di,toSuperlative:pi,fromComparative:ri(di),fromSuperlative:ri(pi)},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),{}),fi=[[/([^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,""]],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(vi[t].forEach(n=>e[n]=t),e),{});var yi=vi,wi=function(e){let t=e.substring(e.length-3);if(!0===yi.hasOwnProperty(t))return yi[t];let n=e.substring(e.length-2);return!0===yi.hasOwnProperty(n)?yi[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 Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},ji=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]),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"}],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"]),Gi={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")?xi.has(e)?e.replace(/ically/,"ical"):Ii.has(e)?null:Gi.hasOwnProperty(e)?Gi[e]:ji(e,Ni)||e:null};const Ci=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Di={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Di.hasOwnProperty(e))return Di[e];let t=ji(e,Ci);return t||e+"ly"};const Bi=[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"},zi=new Set(["terrible","annoying"]),$i=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},Fi=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:$i,adjToComparative:Fi,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:Ti,adjToAdverb:Oi,adjToNoun:function(e){if(Vi.hasOwnProperty(e))return Vi[e];if(zi.has(e))return null;let t=ji(e,Bi);return t||e+"ness"}}}},Mi=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 Ji=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Li=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=Ji(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ji(r,"Infinitive","Verb"),Object.assign(s,l),l=Ji(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ji(o,"Adjective","Superlative"),Object.assign(s,l),l=Ji(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Wi={two:{models:mi}};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"},Ki=function(e,t){const n={model:t,methods:Hi};let{lex:r,_multi:a}=Hi.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=Ai(e,Wi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=qi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(a,r,!1),"Adj|Present"===o&&(Ri(a,r,!0),function(e,t,n){let r=$i(e,n);t[r]=t[r]||"Superlative";let a=Fi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(a,Wi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(a,Wi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ki(n,t)};let Qi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:pa,models:mi,suffixPatterns:xo,prefixPatterns:To,endsWith:Jo,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:Ia,clues:ho,uncountable:{},orgWords:gi}};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=Ki(e.one.lexicon,e)).one.lexicon,e),e=Ui(e.two.switches,e),e=Li(e),e=Mi(e)}(Qi);var Zi=Qi;const _i=/^(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(_i.test(a.normal)){let e=a.normal.replace(_i,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Xi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const as=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(rs(e.normal)?Xi(e,"Plural","3-plural-guess"):Xi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ds=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>r.tags.has(e))?null:(os(e,t,n),r.tags.has("Noun")||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!hs[r.normal]?(Xi(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 ms=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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ps(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const gs=/['‘’‛‵′`´]/,fs=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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ys=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"]),ws=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ys.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)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};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){let a=e[t-1],o=e[t+1];if(ws(a)||ws(o))return Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ks(a)||ks(o))return Xi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Xi(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 Xi(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Es=/^[A-Z-]+$/,xs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[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===Es.test(n)||n.length>5||Gs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==xs.test(n)&&!0!==Is.test(n)&&!0!==js.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Gs.hasOwnProperty(r.text)&&js.test(r.text)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Xi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Es.test(r.text)&&r.text.length<=6?(Xi(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 Xi(s,l,"3-[neighbour]"),os(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},zs=function(e,t,n){0===e[t].tags.size&&(Xi(e[t],"Noun","3-[fallback]"),os(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)-?/,Js=(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},Ls=(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(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Ws={tagSwitch:Yi,checkSuffix:ms,checkRegex:bs,checkCase:ds,checkPrefix:vs,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")&&(Xi(o,"Verb","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Xi(o,"Adjective","3-[prefix]"),Xi(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=Js(e[t+1],n.afterWords);return o=o||Js(e[t-1],n.beforeWords),o=o||Ls(e[t-1],n.beforeTags,a),o=o||Ls(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ss[o]&&(u=Ss[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):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)},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 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"]},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},pl={in:!0,by:!0,for:!0};var ml=(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===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 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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>hl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},vl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.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;bl.hasOwnProperty(i)&&(s=bl[i](r,o,t)),s&&(s=vl(s,e),il(n,[a,o],s),fl(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=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)",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:"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: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:"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"}]),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,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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},El=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)},xl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?El(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},Nl={api:function(e){e.prototype.swap=xl}};m.plugin(tl),m.plugin(yl),m.plugin(jl),m.plugin(Nl);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},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{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},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 Jl=/\(/,Ll=/\)/,Wl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Jl,"");let t=e[e.length-1];t.post=t.post.replace(Ll,"")}),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={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Kl).join("|")+")"),Ul=RegExp("("+Object.values(Kl).join("|")+")"),Ql=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ul,"")})}(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 _l=/\./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(_l,""),e.normal=e.normal.replace(_l,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(_l,""),e.normal=e.normal.replace(_l,""),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)}},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),Zl(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",pu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var mu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=pu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[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 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 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")},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:vu(e,t),isSubordinate:bu(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);return t.found?(t.parse()[0]||{}).num: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 Eu=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 Nu=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 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=>Eu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return Nu(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)}}},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},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},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=Ju.hasOwnProperty(a)?Ju[a]:Mu(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:Mu(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},Wu=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"],Ru=[[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"]],Uu=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=Wu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ru.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(Uu(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=Wu(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(" ")},Zu=function(e){return e.numerator&&e.denominator?`${Qu({num:e.numerator})} out of ${Qu({num:e.denominator})}`:""};const _u={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 _u.hasOwnProperty(n)?t[t.length-1]=_u[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},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(Lu)}get(e){return ec(this,e).map(Lu)}json(e){return ec(this,e).map(t=>{let n=t.toView().json(e)[0],r=Lu(t);return n.fraction=r,n},[])}toDecimal(e){return ec(this,e).forEach(e=>{let{decimal:t}=Lu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return ec(this,e).forEach(e=>{let t=Lu(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=Lu(e),n=Xu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return ec(this,e).forEach(e=>{let t=Lu(e),n=Zu(t);e.replaceWith(n)}),this}toPercentage(e){return ec(this,e).forEach(e=>{let{decimal:t}=Lu(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},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=Lu(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")}},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=Wu(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},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},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},dc={api:function(e){tc(e),hc(e)}};const pc={people:!0,emails:!0,phoneNumbers:!0,places:!0},mc=function(e={}){return!1!==(e=Object.assign({},pc,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=mc}},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))})},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}},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},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},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},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}=vc(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=>(vc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(vc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(vc(e),e=kc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(vc(e),Pc(e)))}toNegative(e){return Ac(this,e).map(e=>(vc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(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 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)}},Ec=function(e){return e.match("#Honorific+? #Person+")},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 Nc="male",Ic="female",Gc={mr:Nc,mrs:Ic,miss:Ic,madam:Ic,king:Nc,queen:Ic,duke:Nc,duchess:Ic,baron:Nc,baroness:Ic,count:Nc,countess:Ic,prince:Nc,princess:Ic,sire:Nc,dame:Ic,lady:Ic,ayatullah:Nc,congressman:Nc,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 Nc;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 Nc}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 Nc;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(xc)}json(e){return Cc(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: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=Ec(this);return t=Cc(t,e),new People(this.document,t.pointer)}},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},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)}},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},Fc={api:function(e){Dc(e),Bc(e),Vc(e),$c(e)}},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},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},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 Jc=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},Lc=function(e){return e.match("#Negative")},Wc=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:Jc(t,n),negative:Lc(t),phrasal:Wc(n)}};const Kc={tense:"PresentTense"},Rc={conditional:!0},Uc={tense:"FutureTense"},Qc={progressive:!0},Zc={tense:"PastTense"},_c={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$",[Zc]],["^will want to #Infinitive$",[Uc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Zc]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Uc]],["^have #PastTense #Gerund$",[Zc]],["^will have #PastTense #Gerund$",[Zc]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[Zc]]],"simple-future":[["^will #Adverb? #Infinitive",[Uc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,Qc]]],"past-progressive":[["^(was|were) #Gerund$",[Zc,Qc]]],"future-progressive":[["^will be #Gerund$",[Uc,Qc]]],"present-perfect":[["^(has|have) #PastTense$",[Zc,_c]]],"past-perfect":[["^had #PastTense$",[Zc,_c]],["^had #PastTense to #Infinitive",[Zc,_c]]],"future-perfect":[["^will have #PastTense$",[Uc,_c]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Zc,Qc]]],"past-perfect-progressive":[["^had been #Gerund$",[Zc,Qc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Uc,Qc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Zc,Yc]],["^(was|were) being (#PastTense|#Participle)",[Zc,Yc]],["^(had|have) been (#PastTense|#Participle)",[Zc,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)",[Uc,Yc,Rc]],["will be being? (#PastTense|#Participle)",[Uc,Yc,Rc]]],"present-conditional":[["would be #PastTense",[Kc,Rc]]],"past-conditional":[["would have been #PastTense",[Zc,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Uc]]],"auxiliary-past":[["^did #Infinitive$",[Zc,{plural:!1}]],["^used to #Infinitive$",[Zc,_c]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Kc,_c,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Zc]]],"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,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},ph=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),mh=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"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var bh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:mh(t.adverbs.pre),postAdverbs:mh(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const vh={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,vh).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=ph(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),ph(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},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).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},Nh={infinitive:Eh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Eh(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":Eh,"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 Eh(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)=>(Eh(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$"),Eh(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 Nh.hasOwnProperty(n)?((e=Nh[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 Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var Lh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Jh(this,e).map(qc)}json(e,t){return Jh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=bh(t),n},[])}subjects(e){return Jh(this,e).map(e=>(qc(e),ih(e).subject))}adverbs(e){return Jh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Jh(this,e).filter(e=>!0!==ih(e).plural)}isPlural(e){return Jh(this,e).filter(e=>!0===ih(e).plural)}isImperative(e){return Jh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return yh(e,t,n.form)})}toPresentTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ih(e,t,n.form)})}toPastTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ah(e,t,n.form)})}toFutureTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Oh(e,t,n.form)})}toGerund(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Vh(e,t,n.form)})}conjugate(e){return Jh(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 Jh(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=Jh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Sl),m.plugin(su),m.plugin(mu),m.plugin(Gu),m.plugin(dc),m.plugin(gc),m.plugin(jc),m.plugin(Fc),m.plugin(Lh),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]);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.0";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 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;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()),k(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(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=xe(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&&(Et(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&&(Et(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=Et(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(!xt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(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=In(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},Gn=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})},Dn=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)})},Cn=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},On=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=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 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=Gn(a,t.hooks);return o=Dn(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),Cn(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===On(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 Bn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Bn.test(t))!function(e,t,n,r){let a=t.split(Bn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn,Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Jn(t=e).forEach(Mn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Jn(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},Qn=function(e){let t=Jn(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},_n={text:Un,txt:Un,array:Qn,flat:Qn},Zn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Yn=e=>{Jn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Jn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Jn(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 Jn(this.json)}fillDown(){var e;return e=this.json,Jn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Jn(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 Yn(this.json),Zn(this.json,e)}debug(){return Yn(this.json),Zn(this.json,"debug"),this}}const er=function(e){let t=Rn(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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)}},ur=function(e){Object.assign(e.prototype,lr)},cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var gr=function(e){let t=[],n=e.split(mr);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 Or=/^[ \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]+$/,Br=/['’]/,zr=/^[a-z]\.([a-z]\.)+/i,$r=/^[-+.][0-9]/,Fr=/^'[0-9]{2}/;var Sr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Or,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$r.test(e)?"'"===n&&Fr.test(e)?(n="",t):"":(n="",t)))).replace(Vr,a=>(r=a,Br.test(a)&&/[sn]['’]$/.test(t)&&!1===Br.test(n)?(r=r.replace(Br,""),"'"):!0===zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Hr=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Lr=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,Jr=/([a-z]\.)+[a-z]\.?$/;var qr=function(e){return function(e){return!0===Mr.test(e)||!0===Jr.test(e)||!0===Lr.test(e)||!0===Wr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Kr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Hr(r),r=n(r,t),r=qr(r),e.normal=r},Rr={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:Ar,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(Dr);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=Ir(n),n=xr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Sr(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=>{Kr(e,t)}),n})}}}},Ur={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},_r={};[[["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=>{Qr[t]=!0,_r[t]="Abbreviation",void 0!==e[1]&&(_r[t]=[_r[t],e[1]])})});var Zr=["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 Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xr={};Object.keys(Yr).forEach((function(e){Yr[e].split("").forEach((function(t){Xr[t]=e}))}));const ea=/\//,ta=/[a-z]\.[a-z]/i,na=/[0-9]/;var ra=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])),ea.test(n)&&!ta.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 aa=/^\p{Letter}+-\p{Letter}+$/u;var oa=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"),aa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ia=function(e){let t=0,n=0,r=e.document;for(let e=0;esa(e,ra),machine:e=>sa(e,oa),normal:e=>sa(e,Kr),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 ha={safe:!0,min:3};var da={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ua},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ha,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ca(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(fn),m.extend(St),m.extend(Nn),m.extend(dr),m.plugin(be),m.extend(la),m.plugin(f),m.extend(Te),m.extend(da),m.extend(Pe),m.extend(Vn);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"},ma={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 ga=36,fa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ba=fa.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=ga,a=1;for(;n=0;n--,a*=ga){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ya=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=Pa(ma[e]);xa.test(e)?Object.keys(t).forEach(t=>{if(Ia[t]=e,"Noun|Verb"===e){let e=Ea(t,Ta);Ia[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ga="Adjective";var Da={beforeTags:{Determiner:Ga,Possessive:Ga},afterTags:{Adjective:Ga},beforeWords:{seem:Ga,seemed:Ga,seems:Ga,feel:Ga,feels:Ga,felt:Ga,appear:Ga,appears:Ga,appeared:Ga,also:Ga,over:Ga,under:Ga,too:Ga,it:Ga,but:Ga,still:Ga,really:Ga,quite:Ga,well:Ga,very:Ga,deeply:Ga,profoundly:Ga,extremely:Ga,so:Ga,badly:Ga,mostly:Ga,totally:Ga,awfully:Ga,rather:Ga,nothing:Ga,something:Ga,anything:Ga},afterWords:{too:Ga,also:Ga,or:Ga}};const Ca="Gerund";var Oa={beforeTags:{Adverb:Ca,Preposition:Ca,Conjunction:Ca},afterTags:{Adverb:Ca,Possessive:Ca,Person:Ca,Pronoun:Ca,Determiner:Ca,Copula:Ca,Preposition:Ca,Conjunction:Ca,Comparative:Ca},beforeWords:{been:Ca,keep:Ca,continue:Ca,stop:Ca,am:Ca,be:Ca,me:Ca,began:Ca,start:Ca,starts:Ca,started:Ca,stops:Ca,stopped:Ca,help:Ca,helps:Ca,avoid:Ca,avoids:Ca,love:Ca,loves:Ca,loved:Ca,hate:Ca,hates:Ca,hated:Ca},afterWords:{you:Ca,me:Ca,her:Ca,him:Ca,them:Ca,their:Ca,it:Ca,this:Ca,there:Ca,on:Ca,about:Ca,for:Ca}},Va={beforeTags:Object.assign({},Da.beforeTags,Oa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Da.afterTags,Oa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Da.beforeWords,Oa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Da.afterWords,Oa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ba="Singular";var za={beforeTags:{Determiner:Ba,Possessive:Ba,Acronym:Ba,Noun:Ba,Adjective:Ba,PresentTense:Ba,Gerund:Ba,PastTense:Ba,Infinitive:Ba,Date:Ba},afterTags:{Value:Ba,Modal:Ba,Copula:Ba,PresentTense:Ba,PastTense:Ba,Demonym:Ba},beforeWords:{the:Ba,with:Ba,without:Ba,of:Ba,for:Ba,any:Ba,all:Ba,on:Ba,cut:Ba,cuts:Ba,save:Ba,saved:Ba,saves:Ba,make:Ba,makes:Ba,made:Ba,minus:Ba,plus:Ba,than:Ba,another:Ba,versus:Ba,neither:Ba,favorite:Ba,best:Ba,daily:Ba,weekly:Ba,linear:Ba,binary:Ba,mobile:Ba,lexical:Ba,technical:Ba,computer:Ba,scientific:Ba,formal:Ba},afterWords:{of:Ba,system:Ba,aid:Ba,method:Ba,utility:Ba,tool:Ba,reform:Ba,therapy:Ba,philosophy:Ba,room:Ba,authority:Ba,says:Ba,said:Ba,wants:Ba,wanted:Ba}};const $a={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fa={beforeTags:Object.assign({},Da.beforeTags,za.beforeTags,$a.beforeTags),afterTags:Object.assign({},Da.afterTags,za.afterTags),beforeWords:Object.assign({},Da.beforeWords,za.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,za.afterWords)};const Sa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ha={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ma={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},La={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wa={beforeTags:Object.assign({},Da.beforeTags,Sa),afterTags:Object.assign({},Da.afterTags,Ha),beforeWords:Object.assign({},Da.beforeWords,Ma),afterWords:Object.assign({},Da.afterWords,La)};const Ja="Infinitive";var qa={beforeTags:{Modal:Ja,Adverb:Ja,Negative:Ja,Plural:Ja},afterTags:{Determiner:Ja,Adverb:Ja,Possessive:Ja,Preposition:Ja},beforeWords:{i:Ja,we:Ja,you:Ja,they:Ja,to:Ja,please:Ja,will:Ja,have:Ja,had:Ja,would:Ja,could:Ja,should:Ja,do:Ja,did:Ja,does:Ja,can:Ja,must:Ja,us:Ja,me:Ja,he:Ja,she:Ja,it:Ja,being:Ja},afterWords:{the:Ja,me:Ja,you:Ja,him:Ja,her:Ja,them:Ja,it:Ja,a:Ja,an:Ja,up:Ja,down:Ja,by:Ja,out:Ja,off:Ja,under:Ja,when:Ja,all:Ja,to:Ja,because:Ja,although:Ja,before:Ja,how:Ja,otherwise:Ja,together:Ja,though:Ja,yet:Ja}};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Da.beforeTags,qa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,qa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Da.beforeWords,qa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,qa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qa={},_a={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Za={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Ya={beforeTags:Object.assign({},Oa.beforeTags,za.beforeTags,Ua),afterTags:Object.assign({},Oa.afterTags,za.afterTags,Qa),beforeWords:Object.assign({},Oa.beforeWords,za.beforeWords,_a),afterWords:Object.assign({},Oa.afterWords,za.afterWords,Za)},Xa={beforeTags:Object.assign({},qa.beforeTags,za.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qa.afterTags,za.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qa.beforeWords,za.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qa.afterWords,za.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ro={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ao={beforeTags:Object.assign({},to.beforeTags,ro.beforeTags),afterTags:Object.assign({},to.afterTags,ro.afterTags),beforeWords:Object.assign({},to.beforeWords,ro.beforeWords),afterWords:Object.assign({},to.afterWords,ro.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Va,"Adj|Noun":Fa,"Adj|Past":Wa,"Adj|Present":Ra,"Noun|Verb":Xa,"Noun|Gerund":Ya,"Person|Noun":{beforeTags:Object.assign({},za.beforeTags,to.beforeTags),afterTags:Object.assign({},za.afterTags,to.afterTags),beforeWords:Object.assign({},za.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},za.afterWords,to.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,qa.beforeTags),afterTags:Object.assign({},to.afterTags,qa.afterTags),beforeWords:Object.assign({},to.beforeWords,qa.beforeWords),afterWords:Object.assign({},to.afterWords,qa.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const po="Adjective",mo="Infinitive",go="PresentTense",fo="Singular",bo="PastTense",vo="Adverb",yo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",jo="Modal",Eo="Participle";var xo=[null,null,{ea:fo,ia:Po,ic:po,ly:vo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":vo,"'ll":jo,"'re":"Copula",azy:po,eer:Po,end:ko,ped:bo,ffy:po,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:po,mum:po,nes:go,nny:po,ous:po,que:po,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:go,eld:bo,ken:Eo,ven:Eo,ten:Eo,ect:mo,ict:mo,ign:mo,ful:po,bal:po},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:po,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:go,ends:ko,enko:Ao,ette:fo,wner:fo,fies:go,fore:vo,gate:mo,gone:po,ices:yo,ints:yo,ruct:mo,ines:yo,ions:yo,less:po,llen:po,made:po,nsen:Ao,oses:go,ould:jo,some:po,sson:Ao,tion:fo,tage:Po,ique:fo,tive:po,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:po,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:po,nary:po},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:yo,bound:po,ettes:yo,fully:vo,ishes:go,ities:yo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:yo,rough:po,tches:go,tieth:"Ordinal",tures:yo,wards:vo,where:vo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const No="Adjective",Io="Noun",To="Verb";var Go=[null,null,{},{neo:Io,bio:Io,"de-":To,"re-":To,"un-":To},{anti:Io,auto:Io,faux:No,hexa:Io,kilo:Io,mono:Io,nano:Io,octa:Io,poly:Io,semi:No,tele:Io,"pro-":No,"mis-":To,"dis-":To,"pre-":No},{anglo:Io,centi:Io,ethno:Io,ferro:Io,grand:Io,hepta:Io,hydro:Io,intro:Io,macro:Io,micro:Io,milli:Io,nitro:Io,penta:Io,quasi:No,radio:Io,tetra:Io,"omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:Io}];const Do="Adjective",Co="Infinitive",Oo="PresentTense",Vo="Singular",Bo="PastTense",zo="Adverb",$o="Expression",Fo="Actor",So="Verb",Ho="Noun",Mo="LastName";var Lo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Mo],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,Do]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Bo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Bo,"rammed"],[/.[aeiou][sg]hed$/,Bo,"gushed"],[/.[aeiou]red$/,Bo,"hired"],[/.[aeiou]r?ried$/,Bo,"hurried"],[/[^aeiou]ard$/,Vo,"steward"],[/[aeiou][^aeiou]id$/,Do,""],[/.[vrl]id$/,Do,"livid"],[/..led$/,Bo,"hurled"],[/.[iao]sed$/,Bo,""],[/[aeiou]n?[cs]ed$/,Bo,""],[/[aeiou][rl]?[mnf]ed$/,Bo,""],[/[aeiou][ns]?c?ked$/,Bo,"bunked"],[/[aeiou]gned$/,Bo],[/[aeiou][nl]?ged$/,Bo],[/.[tdbwxyz]ed$/,Bo],[/[^aeiou][aeiou][tvx]ed$/,Bo],[/.[cdflmnprstv]ied$/,Bo,"emptied"]],e:[[/.[lnr]ize$/,Co,"antagonize"],[/.[^aeiou]ise$/,Co,"antagonise"],[/.[aeiou]te$/,Co,"bite"],[/.[^aeiou][ai]ble$/,Do,"fixable"],[/.[^aeiou]eable$/,Do,"maleable"],[/.[ts]ive$/,Do,"festive"],[/[a-z]-like$/,Do,"woman-like"]],h:[[/.[^aeiouf]ish$/,Do,"cornish"],[/.v[iy]ch$/,Mo,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,Do,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Mo,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,Do,"familial"],[/.[^aeiou]ful$/,Do,"fitful"],[/.[nrtumcd]al$/,Do,"natal"],[/.[^aeiou][ei]al$/,Do,"familial"]],m:[[/.[^aeiou]ium$/,Vo,"magnesium"],[/[^aeiou]ism$/,Vo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Do,"republican"],[/[^aeiou]ician$/,Fo,"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$/,Co],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Do],[/[aeiou].*ist$/,Do],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,Ho],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,Mo]],y:[[/.[cts]hy$/,Do],[/.[st]ty$/,Do],[/.[tnl]ary$/,Do],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,zo],[/.(gg|bb|zz)ly$/,Do],[/...lly$/,zo],[/.[gk]y$/,Do],[/[bszmp]{2}y$/,Do],[/.[ai]my$/,Do],[/[ea]{2}zy$/,Do],[/.[^aeiou]ity$/,Vo]]};const Wo="Verb",Jo="Noun";var qo={leftTags:[["Adjective",Jo],["Possessive",Jo],["Determiner",Jo],["Adverb",Wo],["Pronoun",Wo],["Value",Jo],["Ordinal",Jo],["Modal",Wo],["Superlative",Jo],["Demonym",Jo],["Honorific","Person"]],leftWords:[["i",Wo],["first",Jo],["it",Wo],["there",Wo],["not",Wo],["because",Jo],["if",Jo],["but",Jo],["who",Wo],["this",Jo],["his",Jo],["when",Jo],["you",Wo],["very","Adjective"],["old",Jo],["never",Wo],["before",Jo],["a","Singular"],["the",Jo],["been",Wo]],rightTags:[["Copula",Jo],["PastTense",Jo],["Conjunction",Jo],["Modal",Jo]],rightWords:[["there",Wo],["me",Wo],["man","Adjective"],["only",Wo],["him",Wo],["it",Wo],["were",Jo],["took",Jo],["himself",Wo],["went",Jo],["who",Jo],["jr","Person"]]},Ko={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"},Uo={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 Zo=/^.([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(Zo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Zo,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Xo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Xo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ri=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 ai=ni({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"}),oi=ni(Qo),ii=ni(Ro),si=ni(Uo),li=ri(ai),ui=ri(oi),ci=ri(ii),hi=ri(si),di=ni(Ko),pi=ni(_o);var mi={fromPast:ai,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:hi,toComparative:di,toSuperlative:pi,fromComparative:ri(di),fromSuperlative:ri(pi)},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),{}),fi=[[/([^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,""]],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(vi[t].forEach(n=>e[n]=t),e),{});var yi=vi,wi=function(e){let t=e.substring(e.length-3);if(!0===yi.hasOwnProperty(t))return yi[t];let n=e.substring(e.length-2);return!0===yi.hasOwnProperty(n)?yi[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 Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},ji=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]),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"}],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"]),Ti={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")?xi.has(e)?e.replace(/ically/,"ical"):Ii.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:ji(e,Ni)||e:null};const Di=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ci={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Ci.hasOwnProperty(e))return Ci[e];let t=ji(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"}],Bi={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"},zi=new Set(["terrible","annoying"]),$i=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},Fi=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:$i,adjToComparative:Fi,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:Gi,adjToAdverb:Oi,adjToNoun:function(e){if(Bi.hasOwnProperty(e))return Bi[e];if(zi.has(e))return null;let t=ji(e,Vi);return t||e+"ness"}}}},Mi=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 Li=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Wi=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(r,"Infinitive","Verb"),Object.assign(s,l),l=Li(a,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ji={two:{models:mi}};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"},Ki=function(e,t){const n={model:t,methods:Hi};let{lex:r,_multi:a}=Hi.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=Ai(e,Ji);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=qi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(a,r,!1),"Adj|Present"===o&&(Ri(a,r,!0),function(e,t,n){let r=$i(e,n);t[r]=t[r]||"Superlative";let a=Fi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(a,Ji,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(a,Ji,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ki(n,t)};let Qi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:pa,models:mi,suffixPatterns:xo,prefixPatterns:Go,endsWith:Lo,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:Ia,clues:ho,uncountable:{},orgWords:gi}};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=Ki(e.one.lexicon,e)).one.lexicon,e),e=Ui(e.two.switches,e),e=Wi(e),e=Mi(e)}(Qi);var _i=Qi;const Zi=/^(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(Zi.test(a.normal)){let e=a.normal.replace(Zi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Xi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const as=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(rs(e.normal)?Xi(e,"Plural","3-plural-guess"):Xi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ds=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>r.tags.has(e))?null:(os(e,t,n),r.tags.has("Noun")||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!hs[r.normal]?(Xi(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 ms=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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ps(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const gs=/['‘’‛‵′`´]/,fs=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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ys=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"]),ws=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ys.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)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};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){let a=e[t-1],o=e[t+1];if(ws(a)||ws(o))return Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ks(a)||ks(o))return Xi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Xi(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 Xi(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Es=/^[A-Z-]+$/,xs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[A-Z]{2,}('s|,)?$/,Is=/([a-z]\.)+[a-z]\.?$/,Ts={I:!0,A:!0};var Gs=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!==Is.test(n)&&!0!==js.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ts.hasOwnProperty(r.text)&&js.test(r.text)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Xi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Es.test(r.text)&&r.text.length<=6?(Xi(r,"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},Cs=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||Ds(e[t-1],a),l=l||Ds(e[t+1],o),l=l||Cs(e[t-1],r),l=l||Cs(e[t+1],i),l)return Xi(s,l,"3-[neighbour]"),os(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 Bs=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},zs=function(e,t,n){0===e[t].tags.size&&(Xi(e[t],"Noun","3-[fallback]"),os(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(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Js={tagSwitch:Yi,checkSuffix:ms,checkRegex:bs,checkCase:ds,checkPrefix:vs,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")&&(Xi(o,"Verb","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Xi(o,"Adjective","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")))},checkYear:As},qs={checkAcronym:Gs,neighbours:Os,orgWords:Bs,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?a([s],u,n,null,`3-[variable] (${o})`):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)},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: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 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"]},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},pl={in:!0,by:!0,for:!0};var ml=(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===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 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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>hl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},vl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.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;bl.hasOwnProperty(i)&&(s=bl[i](r,o,t)),s&&(s=vl(s,e),il(n,[a,o],s),fl(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=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)",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:"#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: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:"#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: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"}]),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,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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},El=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)},xl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?El(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},Nl={api:function(e){e.prototype.swap=xl}};m.plugin(tl),m.plugin(yl),m.plugin(jl),m.plugin(Nl);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},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{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},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={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Kl).join("|")+")"),Ul=RegExp("("+Object.values(Kl).join("|")+")"),Ql=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ul,"")})}(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)}},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",pu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var mu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=pu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[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 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 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")},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:vu(e,t),isSubordinate:bu(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);return t.found?(t.parse()[0]||{}).num: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 Eu=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 Nu=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=>Eu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return Nu(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)}}},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},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},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$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Mu(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},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"],Ru=[[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"]],Uu=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 Ru.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(Uu(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(" ")},_u=function(e){return e.numerator&&e.denominator?`${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(" ")},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},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")}},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},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},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},dc={api:function(e){tc(e),hc(e)}};const pc={people:!0,emails:!0,phoneNumbers:!0,places:!0},mc=function(e={}){return!1!==(e=Object.assign({},pc,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=mc}},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))})},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}},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},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},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},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}=vc(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=>(vc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(vc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(vc(e),e=kc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(vc(e),Pc(e)))}toNegative(e){return Ac(this,e).map(e=>(vc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(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 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)}},Ec=function(e){return e.match("#Honorific+? #Person+")},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 Nc="male",Ic="female",Tc={mr:Nc,mrs:Ic,miss:Ic,madam:Ic,king:Nc,queen:Ic,duke:Nc,duchess:Ic,baron:Nc,baroness:Ic,count:Nc,countess:Ic,prince:Nc,princess:Ic,sire:Nc,dame:Ic,lady:Ic,ayatullah:Nc,congressman:Nc,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 Nc;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 Nc}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 Nc;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=Ec(this);return t=Dc(t,e),new People(this.document,t.pointer)}},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},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)}},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},Fc={api:function(e){Cc(e),Vc(e),Bc(e),$c(e)}},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},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},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"},Rc={conditional:!0},Uc={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$",[Uc]]],"gerund-phrase":[["^#PastTense #Gerund$",[_c]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Uc]],["^have #PastTense #Gerund$",[_c]],["^will have #PastTense #Gerund$",[_c]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[_c]]],"simple-future":[["^will #Adverb? #Infinitive",[Uc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,Qc]]],"past-progressive":[["^(was|were) #Gerund$",[_c,Qc]]],"future-progressive":[["^will be #Gerund$",[Uc,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$",[Uc,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$",[Uc,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)",[Uc,Yc,Rc]],["will be being? (#PastTense|#Participle)",[Uc,Yc,Rc]]],"present-conditional":[["would be #PastTense",[Kc,Rc]]],"past-conditional":[["would have been #PastTense",[_c,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Uc]]],"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,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},ph=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),mh=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"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var bh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:mh(t.adverbs.pre),postAdverbs:mh(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const vh={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,vh).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=ph(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),ph(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},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).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},Nh={infinitive:Eh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Eh(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":Eh,"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 Eh(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)=>(Eh(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$"),Eh(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 Nh.hasOwnProperty(n)?((e=Nh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","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(["lexicon","preTagger","postTagger","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(["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=bh(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)}}};return m.plugin(Sl),m.plugin(su),m.plugin(mu),m.plugin(Tu),m.plugin(dc),m.plugin(gc),m.plugin(jc),m.plugin(Fc),m.plugin(Wh),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.cjs b/builds/three/compromise-three.cjs index ff007dc88..0d9d656c6 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.0";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 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;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()),k(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 D=C,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;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"]),M=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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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},Ge={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=xe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\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(We),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 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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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&&(Et(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&&(Et(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},Tt=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},Ct=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)}},Dt=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)}},Bt=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]&&Ct(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||Dt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Et(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Vt=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&&!Tt(a))return null;if(!0!==e.optional)return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Bt(a))return null}else if(!Gt(a))return null}else if(!It(a))return null}else if(!xt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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(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||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(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=In(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},Tn=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})},Cn=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)})},Dn=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},On=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=Gn(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=Tn(a,t.hooks);return o=Cn(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),Dn(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===On(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 Vn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Vn.test(t))!function(e,t,n,r){let a=t.split(Vn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn,Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Rn=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:Ln(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Wn(t=e).forEach(Mn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Wn(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},Qn=function(e){let t=Wn(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},Zn={text:Un,txt:Un,array:Qn,flat:Qn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Yn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Wn(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 Yn(this.json),_n(this.json,e)}debug(){return Yn(this.json),_n(this.json,"debug"),this}}const er=function(e){let t=Rn(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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)}},ur=function(e){Object.assign(e.prototype,lr)},cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var gr=function(e){let t=[],n=e.split(mr);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 Or=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Br=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Vr=/['’]/,zr=/^[a-z]\.([a-z]\.)+/i,$r=/^[-+.][0-9]/,Fr=/^'[0-9]{2}/;var Sr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Or,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$r.test(e)?"'"===n&&Fr.test(e)?(n="",t):"":(n="",t)))).replace(Br,a=>(r=a,Vr.test(a)&&/[sn]['’]$/.test(t)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Hr=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,Lr=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var qr=function(e){return function(e){return!0===Mr.test(e)||!0===Wr.test(e)||!0===Jr.test(e)||!0===Lr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Kr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Hr(r),r=n(r,t),r=qr(r),e.normal=r},Rr={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:Ar,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(Cr);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=Ir(n),n=xr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Sr(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=>{Kr(e,t)}),n})}}}},Ur={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["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=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])})});var _r=["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 Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xr={};Object.keys(Yr).forEach((function(e){Yr[e].split("").forEach((function(t){Xr[t]=e}))}));const ea=/\//,ta=/[a-z]\.[a-z]/i,na=/[0-9]/;var ra=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])),ea.test(n)&&!ta.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 aa=/^\p{Letter}+-\p{Letter}+$/u;var oa=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"),aa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ia=function(e){let t=0,n=0,r=e.document;for(let e=0;esa(e,ra),machine:e=>sa(e,oa),normal:e=>sa(e,Kr),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 ha={safe:!0,min:3};var da={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ua},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ha,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ca(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(fn),m.extend(St),m.extend(Nn),m.extend(dr),m.plugin(be),m.extend(la),m.plugin(f),m.extend(Ge),m.extend(da),m.extend(Pe),m.extend(Bn);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"},ma={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ga=36,fa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ba=fa.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=ga,a=1;for(;n=0;n--,a*=ga){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ya=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=Pa(ma[e]);xa.test(e)?Object.keys(t).forEach(t=>{if(Ia[t]=e,"Noun|Verb"===e){let e=Ea(t,Ga);Ia[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ta="Adjective";var Ca={beforeTags:{Determiner:Ta,Possessive:Ta},afterTags:{Adjective:Ta},beforeWords:{seem:Ta,seemed:Ta,seems:Ta,feel:Ta,feels:Ta,felt:Ta,appear:Ta,appears:Ta,appeared:Ta,also:Ta,over:Ta,under:Ta,too:Ta,it:Ta,but:Ta,still:Ta,really:Ta,quite:Ta,well:Ta,very:Ta,deeply:Ta,profoundly:Ta,extremely:Ta,so:Ta,badly:Ta,mostly:Ta,totally:Ta,awfully:Ta,rather:Ta,nothing:Ta,something:Ta,anything:Ta},afterWords:{too:Ta,also:Ta,or:Ta}};const Da="Gerund";var Oa={beforeTags:{Adverb:Da,Preposition:Da,Conjunction:Da},afterTags:{Adverb:Da,Possessive:Da,Person:Da,Pronoun:Da,Determiner:Da,Copula:Da,Preposition:Da,Conjunction:Da,Comparative:Da},beforeWords:{been:Da,keep:Da,continue:Da,stop:Da,am:Da,be:Da,me:Da,began:Da,start:Da,starts:Da,started:Da,stops:Da,stopped:Da,help:Da,helps:Da,avoid:Da,avoids:Da,love:Da,loves:Da,loved:Da,hate:Da,hates:Da,hated:Da},afterWords:{you:Da,me:Da,her:Da,him:Da,them:Da,their:Da,it:Da,this:Da,there:Da,on:Da,about:Da,for:Da}},Ba={beforeTags:Object.assign({},Ca.beforeTags,Oa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ca.afterTags,Oa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ca.beforeWords,Oa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ca.afterWords,Oa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Va="Singular";var za={beforeTags:{Determiner:Va,Possessive:Va,Acronym:Va,Noun:Va,Adjective:Va,PresentTense:Va,Gerund:Va,PastTense:Va,Infinitive:Va,Date:Va},afterTags:{Value:Va,Modal:Va,Copula:Va,PresentTense:Va,PastTense:Va,Demonym:Va},beforeWords:{the:Va,with:Va,without:Va,of:Va,for:Va,any:Va,all:Va,on:Va,cut:Va,cuts:Va,save:Va,saved:Va,saves:Va,make:Va,makes:Va,made:Va,minus:Va,plus:Va,than:Va,another:Va,versus:Va,neither:Va,favorite:Va,best:Va,daily:Va,weekly:Va,linear:Va,binary:Va,mobile:Va,lexical:Va,technical:Va,computer:Va,scientific:Va,formal:Va},afterWords:{of:Va,system:Va,aid:Va,method:Va,utility:Va,tool:Va,reform:Va,therapy:Va,philosophy:Va,room:Va,authority:Va,says:Va,said:Va,wants:Va,wanted:Va}};const $a={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fa={beforeTags:Object.assign({},Ca.beforeTags,za.beforeTags,$a.beforeTags),afterTags:Object.assign({},Ca.afterTags,za.afterTags),beforeWords:Object.assign({},Ca.beforeWords,za.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,za.afterWords)};const Sa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ha={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ma={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ja={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var La={beforeTags:Object.assign({},Ca.beforeTags,Sa),afterTags:Object.assign({},Ca.afterTags,Ha),beforeWords:Object.assign({},Ca.beforeWords,Ma),afterWords:Object.assign({},Ca.afterWords,Ja)};const Wa="Infinitive";var qa={beforeTags:{Modal:Wa,Adverb:Wa,Negative:Wa,Plural:Wa},afterTags:{Determiner:Wa,Adverb:Wa,Possessive:Wa,Preposition:Wa},beforeWords:{i:Wa,we:Wa,you:Wa,they:Wa,to:Wa,please:Wa,will:Wa,have:Wa,had:Wa,would:Wa,could:Wa,should:Wa,do:Wa,did:Wa,does:Wa,can:Wa,must:Wa,us:Wa,me:Wa,he:Wa,she:Wa,it:Wa,being:Wa},afterWords:{the:Wa,me:Wa,you:Wa,him:Wa,her:Wa,them:Wa,it:Wa,a:Wa,an:Wa,up:Wa,down:Wa,by:Wa,out:Wa,off:Wa,when:Wa,all:Wa,to:Wa,because:Wa,although:Wa,before:Wa,how:Wa,otherwise:Wa,though:Wa,yet:Wa}};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Ca.beforeTags,qa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ca.afterTags,qa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Ca.beforeWords,qa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,qa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qa={},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"},_a={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Ya={beforeTags:Object.assign({},Oa.beforeTags,za.beforeTags,Ua),afterTags:Object.assign({},Oa.afterTags,za.afterTags,Qa),beforeWords:Object.assign({},Oa.beforeWords,za.beforeWords,Za),afterWords:Object.assign({},Oa.afterWords,za.afterWords,_a)},Xa={beforeTags:Object.assign({},qa.beforeTags,za.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qa.afterTags,za.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qa.beforeWords,za.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qa.afterWords,za.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ro={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ao={beforeTags:Object.assign({},to.beforeTags,ro.beforeTags),afterTags:Object.assign({},to.afterTags,ro.afterTags),beforeWords:Object.assign({},to.beforeWords,ro.beforeWords),afterWords:Object.assign({},to.afterWords,ro.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Ba,"Adj|Noun":Fa,"Adj|Past":La,"Adj|Present":Ra,"Noun|Verb":Xa,"Noun|Gerund":Ya,"Person|Noun":{beforeTags:Object.assign({},za.beforeTags,to.beforeTags),afterTags:Object.assign({},za.afterTags,to.afterTags),beforeWords:Object.assign({},za.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},za.afterWords,to.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,qa.beforeTags),afterTags:Object.assign({},to.afterTags,qa.afterTags),beforeWords:Object.assign({},to.beforeWords,qa.beforeWords),afterWords:Object.assign({},to.afterWords,qa.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const po="Adjective",mo="Infinitive",go="PresentTense",fo="Singular",bo="PastTense",vo="Adverb",yo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",jo="Modal",Eo="Participle";var xo=[null,null,{ea:fo,ia:Po,ic:po,ly:vo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":vo,"'ll":jo,"'re":"Copula",azy:po,eer:Po,end:ko,ped:bo,ffy:po,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:po,mum:po,nes:go,nny:po,ous:po,que:po,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:go,eld:bo,ken:Eo,ven:Eo,ten:Eo,ect:mo,ict:mo,ign:mo,ful:po,bal:po},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:po,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:go,ends:ko,enko:Ao,ette:fo,wner:fo,fies:go,fore:vo,gate:mo,gone:po,ices:yo,ints:yo,ruct:mo,ines:yo,ions:yo,less:po,llen:po,made:po,nsen:Ao,oses:go,ould:jo,some:po,sson:Ao,tion:fo,tage:Po,ique:fo,tive:po,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:po,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:po,nary:po},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:yo,bound:po,ettes:yo,fully:vo,ishes:go,ities:yo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:yo,rough:po,tches:go,tieth:"Ordinal",tures:yo,wards:vo,where:vo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const No="Adjective",Io="Noun",Go="Verb";var To=[null,null,{},{neo:Io,bio:Io,"de-":Go,"re-":Go,"un-":Go},{anti:Io,auto:Io,faux:No,hexa:Io,kilo:Io,mono:Io,nano:Io,octa:Io,poly:Io,semi:No,tele:Io,"pro-":No,"mis-":Go,"dis-":Go,"pre-":No},{anglo:Io,centi:Io,ethno:Io,ferro:Io,grand:Io,hepta:Io,hydro:Io,intro:Io,macro:Io,micro:Io,milli:Io,nitro:Io,penta:Io,quasi:No,radio:Io,tetra:Io,"omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:Io}];const Co="Adjective",Do="Infinitive",Oo="PresentTense",Bo="Singular",Vo="PastTense",zo="Adverb",$o="Expression",Fo="Actor",So="Verb",Ho="Noun",Mo="LastName";var Jo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Mo],[/.[^aeiou]ica$/,Bo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Vo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Vo,"rammed"],[/.[aeiou][sg]hed$/,Vo,"gushed"],[/.[aeiou]red$/,Vo,"hired"],[/.[aeiou]r?ried$/,Vo,"hurried"],[/[^aeiou]ard$/,Bo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,Vo,"hurled"],[/.[iao]sed$/,Vo,""],[/[aeiou]n?[cs]ed$/,Vo,""],[/[aeiou][rl]?[mnf]ed$/,Vo,""],[/[aeiou][ns]?c?ked$/,Vo,"bunked"],[/[aeiou]gned$/,Vo],[/[aeiou][nl]?ged$/,Vo],[/.[tdbwxyz]ed$/,Vo],[/[^aeiou][aeiou][tvx]ed$/,Vo],[/.[cdflmnprstv]ied$/,Vo,"emptied"]],e:[[/.[lnr]ize$/,Do,"antagonize"],[/.[^aeiou]ise$/,Do,"antagonise"],[/.[aeiou]te$/,Do,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,Mo,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Mo,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Bo,"magnesium"],[/[^aeiou]ism$/,Bo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,Fo,"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$/,Bo],[/[^i]fer$/,Do],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Bo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Bo],[/[a-z]'s$/,Ho],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,Mo]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Bo],[/[rdntkbhs]ly$/,zo],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,zo],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Bo]]};const Lo="Verb",Wo="Noun";var qo={leftTags:[["Adjective",Wo],["Possessive",Wo],["Determiner",Wo],["Adverb",Lo],["Pronoun",Lo],["Value",Wo],["Ordinal",Wo],["Modal",Lo],["Superlative",Wo],["Demonym",Wo],["Honorific","Person"]],leftWords:[["i",Lo],["first",Wo],["it",Lo],["there",Lo],["not",Lo],["because",Wo],["if",Wo],["but",Wo],["who",Lo],["this",Wo],["his",Wo],["when",Wo],["you",Lo],["very","Adjective"],["old",Wo],["never",Lo],["before",Wo],["a","Singular"],["the",Wo],["been",Lo]],rightTags:[["Copula",Wo],["PastTense",Wo],["Conjunction",Wo],["Modal",Wo]],rightWords:[["there",Lo],["me",Lo],["man","Adjective"],["only",Lo],["him",Lo],["it",Lo],["were",Wo],["took",Wo],["himself",Lo],["went",Wo],["who",Wo],["jr","Person"]]},Ko={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"},Uo={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 _o=/^.([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(_o);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(_o,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Xo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Xo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ri=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 ai=ni({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"}),oi=ni(Qo),ii=ni(Ro),si=ni(Uo),li=ri(ai),ui=ri(oi),ci=ri(ii),hi=ri(si),di=ni(Ko),pi=ni(Zo);var mi={fromPast:ai,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:hi,toComparative:di,toSuperlative:pi,fromComparative:ri(di),fromSuperlative:ri(pi)},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),{}),fi=[[/([^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,""]],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(vi[t].forEach(n=>e[n]=t),e),{});var yi=vi,wi=function(e){let t=e.substring(e.length-3);if(!0===yi.hasOwnProperty(t))return yi[t];let n=e.substring(e.length-2);return!0===yi.hasOwnProperty(n)?yi[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 Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},ji=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]),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"}],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"]),Gi={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")?xi.has(e)?e.replace(/ically/,"ical"):Ii.has(e)?null:Gi.hasOwnProperty(e)?Gi[e]:ji(e,Ni)||e:null};const Ci=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Di={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Di.hasOwnProperty(e))return Di[e];let t=ji(e,Ci);return t||e+"ly"};const Bi=[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"},zi=new Set(["terrible","annoying"]),$i=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},Fi=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:$i,adjToComparative:Fi,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:Ti,adjToAdverb:Oi,adjToNoun:function(e){if(Vi.hasOwnProperty(e))return Vi[e];if(zi.has(e))return null;let t=ji(e,Bi);return t||e+"ness"}}}},Mi=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 Ji=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Li=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=Ji(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ji(r,"Infinitive","Verb"),Object.assign(s,l),l=Ji(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ji(o,"Adjective","Superlative"),Object.assign(s,l),l=Ji(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Wi={two:{models:mi}};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"},Ki=function(e,t){const n={model:t,methods:Hi};let{lex:r,_multi:a}=Hi.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=Ai(e,Wi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=qi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(a,r,!1),"Adj|Present"===o&&(Ri(a,r,!0),function(e,t,n){let r=$i(e,n);t[r]=t[r]||"Superlative";let a=Fi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(a,Wi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(a,Wi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ki(n,t)};let Qi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:pa,models:mi,suffixPatterns:xo,prefixPatterns:To,endsWith:Jo,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:Ia,clues:ho,uncountable:{},orgWords:gi}};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=Ki(e.one.lexicon,e)).one.lexicon,e),e=Ui(e.two.switches,e),e=Li(e),e=Mi(e)}(Qi);var Zi=Qi;const _i=/^(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(_i.test(a.normal)){let e=a.normal.replace(_i,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Xi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const as=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(rs(e.normal)?Xi(e,"Plural","3-plural-guess"):Xi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ds=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>r.tags.has(e))?null:(os(e,t,n),r.tags.has("Noun")||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!hs[r.normal]?(Xi(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 ms=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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ps(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const gs=/['‘’‛‵′`´]/,fs=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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ys=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"]),ws=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ys.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)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};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){let a=e[t-1],o=e[t+1];if(ws(a)||ws(o))return Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ks(a)||ks(o))return Xi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Xi(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 Xi(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Es=/^[A-Z-]+$/,xs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[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===Es.test(n)||n.length>5||Gs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==xs.test(n)&&!0!==Is.test(n)&&!0!==js.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Gs.hasOwnProperty(r.text)&&js.test(r.text)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Xi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Es.test(r.text)&&r.text.length<=6?(Xi(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 Xi(s,l,"3-[neighbour]"),os(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},zs=function(e,t,n){0===e[t].tags.size&&(Xi(e[t],"Noun","3-[fallback]"),os(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)-?/,Js=(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},Ls=(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(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Ws={tagSwitch:Yi,checkSuffix:ms,checkRegex:bs,checkCase:ds,checkPrefix:vs,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")&&(Xi(o,"Verb","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Xi(o,"Adjective","3-[prefix]"),Xi(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=Js(e[t+1],n.afterWords);return o=o||Js(e[t-1],n.beforeWords),o=o||Ls(e[t-1],n.beforeTags,a),o=o||Ls(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ss[o]&&(u=Ss[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):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)},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 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"]},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},pl={in:!0,by:!0,for:!0};var ml=(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===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 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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>hl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},vl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.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;bl.hasOwnProperty(i)&&(s=bl[i](r,o,t)),s&&(s=vl(s,e),il(n,[a,o],s),fl(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=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)",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:"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: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:"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"}]),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,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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},El=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)},xl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?El(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},Nl={api:function(e){e.prototype.swap=xl}};m.plugin(tl),m.plugin(yl),m.plugin(jl),m.plugin(Nl);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},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{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},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 Jl=/\(/,Ll=/\)/,Wl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Jl,"");let t=e[e.length-1];t.post=t.post.replace(Ll,"")}),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={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Kl).join("|")+")"),Ul=RegExp("("+Object.values(Kl).join("|")+")"),Ql=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ul,"")})}(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 _l=/\./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(_l,""),e.normal=e.normal.replace(_l,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(_l,""),e.normal=e.normal.replace(_l,""),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)}},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),Zl(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",pu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var mu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=pu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[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 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 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")},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:vu(e,t),isSubordinate:bu(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);return t.found?(t.parse()[0]||{}).num: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 Eu=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 Nu=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 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=>Eu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return Nu(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)}}},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},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},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=Ju.hasOwnProperty(a)?Ju[a]:Mu(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:Mu(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},Wu=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"],Ru=[[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"]],Uu=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=Wu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ru.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(Uu(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=Wu(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(" ")},Zu=function(e){return e.numerator&&e.denominator?`${Qu({num:e.numerator})} out of ${Qu({num:e.denominator})}`:""};const _u={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 _u.hasOwnProperty(n)?t[t.length-1]=_u[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},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(Lu)}get(e){return ec(this,e).map(Lu)}json(e){return ec(this,e).map(t=>{let n=t.toView().json(e)[0],r=Lu(t);return n.fraction=r,n},[])}toDecimal(e){return ec(this,e).forEach(e=>{let{decimal:t}=Lu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return ec(this,e).forEach(e=>{let t=Lu(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=Lu(e),n=Xu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return ec(this,e).forEach(e=>{let t=Lu(e),n=Zu(t);e.replaceWith(n)}),this}toPercentage(e){return ec(this,e).forEach(e=>{let{decimal:t}=Lu(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},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=Lu(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")}},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=Wu(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},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},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},dc={api:function(e){tc(e),hc(e)}};const pc={people:!0,emails:!0,phoneNumbers:!0,places:!0},mc=function(e={}){return!1!==(e=Object.assign({},pc,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=mc}},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))})},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}},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},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},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},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}=vc(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=>(vc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(vc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(vc(e),e=kc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(vc(e),Pc(e)))}toNegative(e){return Ac(this,e).map(e=>(vc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(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 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)}},Ec=function(e){return e.match("#Honorific+? #Person+")},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 Nc="male",Ic="female",Gc={mr:Nc,mrs:Ic,miss:Ic,madam:Ic,king:Nc,queen:Ic,duke:Nc,duchess:Ic,baron:Nc,baroness:Ic,count:Nc,countess:Ic,prince:Nc,princess:Ic,sire:Nc,dame:Ic,lady:Ic,ayatullah:Nc,congressman:Nc,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 Nc;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 Nc}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 Nc;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(xc)}json(e){return Cc(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: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=Ec(this);return t=Cc(t,e),new People(this.document,t.pointer)}},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},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)}},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},Fc={api:function(e){Dc(e),Bc(e),Vc(e),$c(e)}},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},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},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 Jc=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},Lc=function(e){return e.match("#Negative")},Wc=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:Jc(t,n),negative:Lc(t),phrasal:Wc(n)}};const Kc={tense:"PresentTense"},Rc={conditional:!0},Uc={tense:"FutureTense"},Qc={progressive:!0},Zc={tense:"PastTense"},_c={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$",[Zc]],["^will want to #Infinitive$",[Uc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Zc]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Uc]],["^have #PastTense #Gerund$",[Zc]],["^will have #PastTense #Gerund$",[Zc]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[Zc]]],"simple-future":[["^will #Adverb? #Infinitive",[Uc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,Qc]]],"past-progressive":[["^(was|were) #Gerund$",[Zc,Qc]]],"future-progressive":[["^will be #Gerund$",[Uc,Qc]]],"present-perfect":[["^(has|have) #PastTense$",[Zc,_c]]],"past-perfect":[["^had #PastTense$",[Zc,_c]],["^had #PastTense to #Infinitive",[Zc,_c]]],"future-perfect":[["^will have #PastTense$",[Uc,_c]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Zc,Qc]]],"past-perfect-progressive":[["^had been #Gerund$",[Zc,Qc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Uc,Qc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Zc,Yc]],["^(was|were) being (#PastTense|#Participle)",[Zc,Yc]],["^(had|have) been (#PastTense|#Participle)",[Zc,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)",[Uc,Yc,Rc]],["will be being? (#PastTense|#Participle)",[Uc,Yc,Rc]]],"present-conditional":[["would be #PastTense",[Kc,Rc]]],"past-conditional":[["would have been #PastTense",[Zc,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Uc]]],"auxiliary-past":[["^did #Infinitive$",[Zc,{plural:!1}]],["^used to #Infinitive$",[Zc,_c]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Kc,_c,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Zc]]],"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,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},ph=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),mh=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"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var bh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:mh(t.adverbs.pre),postAdverbs:mh(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const vh={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,vh).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=ph(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),ph(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},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).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},Nh={infinitive:Eh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Eh(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":Eh,"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 Eh(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)=>(Eh(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$"),Eh(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 Nh.hasOwnProperty(n)?((e=Nh[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 Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var Lh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Jh(this,e).map(qc)}json(e,t){return Jh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=bh(t),n},[])}subjects(e){return Jh(this,e).map(e=>(qc(e),ih(e).subject))}adverbs(e){return Jh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Jh(this,e).filter(e=>!0!==ih(e).plural)}isPlural(e){return Jh(this,e).filter(e=>!0===ih(e).plural)}isImperative(e){return Jh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return yh(e,t,n.form)})}toPresentTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ih(e,t,n.form)})}toPastTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ah(e,t,n.form)})}toFutureTense(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Oh(e,t,n.form)})}toGerund(e){return Jh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Vh(e,t,n.form)})}conjugate(e){return Jh(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 Jh(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=Jh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Sl),m.plugin(su),m.plugin(mu),m.plugin(Gu),m.plugin(dc),m.plugin(gc),m.plugin(jc),m.plugin(Fc),m.plugin(Lh),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]);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.0";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 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;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()),k(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(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=xe(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&&(Et(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&&(Et(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=Et(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(!xt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(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=In(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},Gn=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})},Dn=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)})},Cn=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},On=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=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 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=Gn(a,t.hooks);return o=Dn(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),Cn(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===On(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 Bn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Bn.test(t))!function(e,t,n,r){let a=t.split(Bn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn,Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Jn(t=e).forEach(Mn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Jn(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},Qn=function(e){let t=Jn(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},_n={text:Un,txt:Un,array:Qn,flat:Qn},Zn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Yn=e=>{Jn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Jn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Jn(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 Jn(this.json)}fillDown(){var e;return e=this.json,Jn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Jn(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 Yn(this.json),Zn(this.json,e)}debug(){return Yn(this.json),Zn(this.json,"debug"),this}}const er=function(e){let t=Rn(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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)}},ur=function(e){Object.assign(e.prototype,lr)},cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var gr=function(e){let t=[],n=e.split(mr);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 Or=/^[ \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]+$/,Br=/['’]/,zr=/^[a-z]\.([a-z]\.)+/i,$r=/^[-+.][0-9]/,Fr=/^'[0-9]{2}/;var Sr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Or,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$r.test(e)?"'"===n&&Fr.test(e)?(n="",t):"":(n="",t)))).replace(Vr,a=>(r=a,Br.test(a)&&/[sn]['’]$/.test(t)&&!1===Br.test(n)?(r=r.replace(Br,""),"'"):!0===zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Hr=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Lr=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,Jr=/([a-z]\.)+[a-z]\.?$/;var qr=function(e){return function(e){return!0===Mr.test(e)||!0===Jr.test(e)||!0===Lr.test(e)||!0===Wr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Kr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Hr(r),r=n(r,t),r=qr(r),e.normal=r},Rr={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:Ar,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(Dr);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=Ir(n),n=xr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Sr(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=>{Kr(e,t)}),n})}}}},Ur={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},_r={};[[["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=>{Qr[t]=!0,_r[t]="Abbreviation",void 0!==e[1]&&(_r[t]=[_r[t],e[1]])})});var Zr=["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 Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xr={};Object.keys(Yr).forEach((function(e){Yr[e].split("").forEach((function(t){Xr[t]=e}))}));const ea=/\//,ta=/[a-z]\.[a-z]/i,na=/[0-9]/;var ra=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])),ea.test(n)&&!ta.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 aa=/^\p{Letter}+-\p{Letter}+$/u;var oa=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"),aa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ia=function(e){let t=0,n=0,r=e.document;for(let e=0;esa(e,ra),machine:e=>sa(e,oa),normal:e=>sa(e,Kr),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 ha={safe:!0,min:3};var da={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ua},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ha,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ca(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(fn),m.extend(St),m.extend(Nn),m.extend(dr),m.plugin(be),m.extend(la),m.plugin(f),m.extend(Te),m.extend(da),m.extend(Pe),m.extend(Vn);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"},ma={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 ga=36,fa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ba=fa.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=ga,a=1;for(;n=0;n--,a*=ga){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ya=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=Pa(ma[e]);xa.test(e)?Object.keys(t).forEach(t=>{if(Ia[t]=e,"Noun|Verb"===e){let e=Ea(t,Ta);Ia[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ga="Adjective";var Da={beforeTags:{Determiner:Ga,Possessive:Ga},afterTags:{Adjective:Ga},beforeWords:{seem:Ga,seemed:Ga,seems:Ga,feel:Ga,feels:Ga,felt:Ga,appear:Ga,appears:Ga,appeared:Ga,also:Ga,over:Ga,under:Ga,too:Ga,it:Ga,but:Ga,still:Ga,really:Ga,quite:Ga,well:Ga,very:Ga,deeply:Ga,profoundly:Ga,extremely:Ga,so:Ga,badly:Ga,mostly:Ga,totally:Ga,awfully:Ga,rather:Ga,nothing:Ga,something:Ga,anything:Ga},afterWords:{too:Ga,also:Ga,or:Ga}};const Ca="Gerund";var Oa={beforeTags:{Adverb:Ca,Preposition:Ca,Conjunction:Ca},afterTags:{Adverb:Ca,Possessive:Ca,Person:Ca,Pronoun:Ca,Determiner:Ca,Copula:Ca,Preposition:Ca,Conjunction:Ca,Comparative:Ca},beforeWords:{been:Ca,keep:Ca,continue:Ca,stop:Ca,am:Ca,be:Ca,me:Ca,began:Ca,start:Ca,starts:Ca,started:Ca,stops:Ca,stopped:Ca,help:Ca,helps:Ca,avoid:Ca,avoids:Ca,love:Ca,loves:Ca,loved:Ca,hate:Ca,hates:Ca,hated:Ca},afterWords:{you:Ca,me:Ca,her:Ca,him:Ca,them:Ca,their:Ca,it:Ca,this:Ca,there:Ca,on:Ca,about:Ca,for:Ca}},Va={beforeTags:Object.assign({},Da.beforeTags,Oa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Da.afterTags,Oa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Da.beforeWords,Oa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Da.afterWords,Oa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ba="Singular";var za={beforeTags:{Determiner:Ba,Possessive:Ba,Acronym:Ba,Noun:Ba,Adjective:Ba,PresentTense:Ba,Gerund:Ba,PastTense:Ba,Infinitive:Ba,Date:Ba},afterTags:{Value:Ba,Modal:Ba,Copula:Ba,PresentTense:Ba,PastTense:Ba,Demonym:Ba},beforeWords:{the:Ba,with:Ba,without:Ba,of:Ba,for:Ba,any:Ba,all:Ba,on:Ba,cut:Ba,cuts:Ba,save:Ba,saved:Ba,saves:Ba,make:Ba,makes:Ba,made:Ba,minus:Ba,plus:Ba,than:Ba,another:Ba,versus:Ba,neither:Ba,favorite:Ba,best:Ba,daily:Ba,weekly:Ba,linear:Ba,binary:Ba,mobile:Ba,lexical:Ba,technical:Ba,computer:Ba,scientific:Ba,formal:Ba},afterWords:{of:Ba,system:Ba,aid:Ba,method:Ba,utility:Ba,tool:Ba,reform:Ba,therapy:Ba,philosophy:Ba,room:Ba,authority:Ba,says:Ba,said:Ba,wants:Ba,wanted:Ba}};const $a={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fa={beforeTags:Object.assign({},Da.beforeTags,za.beforeTags,$a.beforeTags),afterTags:Object.assign({},Da.afterTags,za.afterTags),beforeWords:Object.assign({},Da.beforeWords,za.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,za.afterWords)};const Sa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ha={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ma={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},La={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wa={beforeTags:Object.assign({},Da.beforeTags,Sa),afterTags:Object.assign({},Da.afterTags,Ha),beforeWords:Object.assign({},Da.beforeWords,Ma),afterWords:Object.assign({},Da.afterWords,La)};const Ja="Infinitive";var qa={beforeTags:{Modal:Ja,Adverb:Ja,Negative:Ja,Plural:Ja},afterTags:{Determiner:Ja,Adverb:Ja,Possessive:Ja,Preposition:Ja},beforeWords:{i:Ja,we:Ja,you:Ja,they:Ja,to:Ja,please:Ja,will:Ja,have:Ja,had:Ja,would:Ja,could:Ja,should:Ja,do:Ja,did:Ja,does:Ja,can:Ja,must:Ja,us:Ja,me:Ja,he:Ja,she:Ja,it:Ja,being:Ja},afterWords:{the:Ja,me:Ja,you:Ja,him:Ja,her:Ja,them:Ja,it:Ja,a:Ja,an:Ja,up:Ja,down:Ja,by:Ja,out:Ja,off:Ja,under:Ja,when:Ja,all:Ja,to:Ja,because:Ja,although:Ja,before:Ja,how:Ja,otherwise:Ja,together:Ja,though:Ja,yet:Ja}};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Da.beforeTags,qa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,qa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Da.beforeWords,qa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,qa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qa={},_a={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Za={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Ya={beforeTags:Object.assign({},Oa.beforeTags,za.beforeTags,Ua),afterTags:Object.assign({},Oa.afterTags,za.afterTags,Qa),beforeWords:Object.assign({},Oa.beforeWords,za.beforeWords,_a),afterWords:Object.assign({},Oa.afterWords,za.afterWords,Za)},Xa={beforeTags:Object.assign({},qa.beforeTags,za.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qa.afterTags,za.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qa.beforeWords,za.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qa.afterWords,za.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ro={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ao={beforeTags:Object.assign({},to.beforeTags,ro.beforeTags),afterTags:Object.assign({},to.afterTags,ro.afterTags),beforeWords:Object.assign({},to.beforeWords,ro.beforeWords),afterWords:Object.assign({},to.afterWords,ro.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Va,"Adj|Noun":Fa,"Adj|Past":Wa,"Adj|Present":Ra,"Noun|Verb":Xa,"Noun|Gerund":Ya,"Person|Noun":{beforeTags:Object.assign({},za.beforeTags,to.beforeTags),afterTags:Object.assign({},za.afterTags,to.afterTags),beforeWords:Object.assign({},za.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},za.afterWords,to.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,qa.beforeTags),afterTags:Object.assign({},to.afterTags,qa.afterTags),beforeWords:Object.assign({},to.beforeWords,qa.beforeWords),afterWords:Object.assign({},to.afterWords,qa.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const po="Adjective",mo="Infinitive",go="PresentTense",fo="Singular",bo="PastTense",vo="Adverb",yo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",jo="Modal",Eo="Participle";var xo=[null,null,{ea:fo,ia:Po,ic:po,ly:vo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":vo,"'ll":jo,"'re":"Copula",azy:po,eer:Po,end:ko,ped:bo,ffy:po,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:po,mum:po,nes:go,nny:po,ous:po,que:po,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:go,eld:bo,ken:Eo,ven:Eo,ten:Eo,ect:mo,ict:mo,ign:mo,ful:po,bal:po},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:po,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:go,ends:ko,enko:Ao,ette:fo,wner:fo,fies:go,fore:vo,gate:mo,gone:po,ices:yo,ints:yo,ruct:mo,ines:yo,ions:yo,less:po,llen:po,made:po,nsen:Ao,oses:go,ould:jo,some:po,sson:Ao,tion:fo,tage:Po,ique:fo,tive:po,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:po,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:po,nary:po},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:yo,bound:po,ettes:yo,fully:vo,ishes:go,ities:yo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:yo,rough:po,tches:go,tieth:"Ordinal",tures:yo,wards:vo,where:vo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const No="Adjective",Io="Noun",To="Verb";var Go=[null,null,{},{neo:Io,bio:Io,"de-":To,"re-":To,"un-":To},{anti:Io,auto:Io,faux:No,hexa:Io,kilo:Io,mono:Io,nano:Io,octa:Io,poly:Io,semi:No,tele:Io,"pro-":No,"mis-":To,"dis-":To,"pre-":No},{anglo:Io,centi:Io,ethno:Io,ferro:Io,grand:Io,hepta:Io,hydro:Io,intro:Io,macro:Io,micro:Io,milli:Io,nitro:Io,penta:Io,quasi:No,radio:Io,tetra:Io,"omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:Io}];const Do="Adjective",Co="Infinitive",Oo="PresentTense",Vo="Singular",Bo="PastTense",zo="Adverb",$o="Expression",Fo="Actor",So="Verb",Ho="Noun",Mo="LastName";var Lo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Mo],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,Do]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Bo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Bo,"rammed"],[/.[aeiou][sg]hed$/,Bo,"gushed"],[/.[aeiou]red$/,Bo,"hired"],[/.[aeiou]r?ried$/,Bo,"hurried"],[/[^aeiou]ard$/,Vo,"steward"],[/[aeiou][^aeiou]id$/,Do,""],[/.[vrl]id$/,Do,"livid"],[/..led$/,Bo,"hurled"],[/.[iao]sed$/,Bo,""],[/[aeiou]n?[cs]ed$/,Bo,""],[/[aeiou][rl]?[mnf]ed$/,Bo,""],[/[aeiou][ns]?c?ked$/,Bo,"bunked"],[/[aeiou]gned$/,Bo],[/[aeiou][nl]?ged$/,Bo],[/.[tdbwxyz]ed$/,Bo],[/[^aeiou][aeiou][tvx]ed$/,Bo],[/.[cdflmnprstv]ied$/,Bo,"emptied"]],e:[[/.[lnr]ize$/,Co,"antagonize"],[/.[^aeiou]ise$/,Co,"antagonise"],[/.[aeiou]te$/,Co,"bite"],[/.[^aeiou][ai]ble$/,Do,"fixable"],[/.[^aeiou]eable$/,Do,"maleable"],[/.[ts]ive$/,Do,"festive"],[/[a-z]-like$/,Do,"woman-like"]],h:[[/.[^aeiouf]ish$/,Do,"cornish"],[/.v[iy]ch$/,Mo,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,Do,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Mo,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,Do,"familial"],[/.[^aeiou]ful$/,Do,"fitful"],[/.[nrtumcd]al$/,Do,"natal"],[/.[^aeiou][ei]al$/,Do,"familial"]],m:[[/.[^aeiou]ium$/,Vo,"magnesium"],[/[^aeiou]ism$/,Vo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Do,"republican"],[/[^aeiou]ician$/,Fo,"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$/,Co],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Do],[/[aeiou].*ist$/,Do],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,Ho],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,Mo]],y:[[/.[cts]hy$/,Do],[/.[st]ty$/,Do],[/.[tnl]ary$/,Do],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,zo],[/.(gg|bb|zz)ly$/,Do],[/...lly$/,zo],[/.[gk]y$/,Do],[/[bszmp]{2}y$/,Do],[/.[ai]my$/,Do],[/[ea]{2}zy$/,Do],[/.[^aeiou]ity$/,Vo]]};const Wo="Verb",Jo="Noun";var qo={leftTags:[["Adjective",Jo],["Possessive",Jo],["Determiner",Jo],["Adverb",Wo],["Pronoun",Wo],["Value",Jo],["Ordinal",Jo],["Modal",Wo],["Superlative",Jo],["Demonym",Jo],["Honorific","Person"]],leftWords:[["i",Wo],["first",Jo],["it",Wo],["there",Wo],["not",Wo],["because",Jo],["if",Jo],["but",Jo],["who",Wo],["this",Jo],["his",Jo],["when",Jo],["you",Wo],["very","Adjective"],["old",Jo],["never",Wo],["before",Jo],["a","Singular"],["the",Jo],["been",Wo]],rightTags:[["Copula",Jo],["PastTense",Jo],["Conjunction",Jo],["Modal",Jo]],rightWords:[["there",Wo],["me",Wo],["man","Adjective"],["only",Wo],["him",Wo],["it",Wo],["were",Jo],["took",Jo],["himself",Wo],["went",Jo],["who",Jo],["jr","Person"]]},Ko={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"},Uo={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 Zo=/^.([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(Zo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Zo,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Xo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Xo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ri=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 ai=ni({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"}),oi=ni(Qo),ii=ni(Ro),si=ni(Uo),li=ri(ai),ui=ri(oi),ci=ri(ii),hi=ri(si),di=ni(Ko),pi=ni(_o);var mi={fromPast:ai,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:hi,toComparative:di,toSuperlative:pi,fromComparative:ri(di),fromSuperlative:ri(pi)},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),{}),fi=[[/([^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,""]],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(vi[t].forEach(n=>e[n]=t),e),{});var yi=vi,wi=function(e){let t=e.substring(e.length-3);if(!0===yi.hasOwnProperty(t))return yi[t];let n=e.substring(e.length-2);return!0===yi.hasOwnProperty(n)?yi[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 Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},ji=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]),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"}],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"]),Ti={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")?xi.has(e)?e.replace(/ically/,"ical"):Ii.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:ji(e,Ni)||e:null};const Di=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ci={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Ci.hasOwnProperty(e))return Ci[e];let t=ji(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"}],Bi={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"},zi=new Set(["terrible","annoying"]),$i=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},Fi=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:$i,adjToComparative:Fi,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:Gi,adjToAdverb:Oi,adjToNoun:function(e){if(Bi.hasOwnProperty(e))return Bi[e];if(zi.has(e))return null;let t=ji(e,Vi);return t||e+"ness"}}}},Mi=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 Li=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Wi=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(r,"Infinitive","Verb"),Object.assign(s,l),l=Li(a,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ji={two:{models:mi}};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"},Ki=function(e,t){const n={model:t,methods:Hi};let{lex:r,_multi:a}=Hi.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=Ai(e,Ji);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=qi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(a,r,!1),"Adj|Present"===o&&(Ri(a,r,!0),function(e,t,n){let r=$i(e,n);t[r]=t[r]||"Superlative";let a=Fi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(a,Ji,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(a,Ji,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ki(n,t)};let Qi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:pa,models:mi,suffixPatterns:xo,prefixPatterns:Go,endsWith:Lo,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:Ia,clues:ho,uncountable:{},orgWords:gi}};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=Ki(e.one.lexicon,e)).one.lexicon,e),e=Ui(e.two.switches,e),e=Wi(e),e=Mi(e)}(Qi);var _i=Qi;const Zi=/^(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(Zi.test(a.normal)){let e=a.normal.replace(Zi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Xi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const as=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(rs(e.normal)?Xi(e,"Plural","3-plural-guess"):Xi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ds=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>r.tags.has(e))?null:(os(e,t,n),r.tags.has("Noun")||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!hs[r.normal]?(Xi(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 ms=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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ps(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const gs=/['‘’‛‵′`´]/,fs=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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ys=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"]),ws=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ys.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)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};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){let a=e[t-1],o=e[t+1];if(ws(a)||ws(o))return Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ks(a)||ks(o))return Xi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Xi(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 Xi(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Es=/^[A-Z-]+$/,xs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[A-Z]{2,}('s|,)?$/,Is=/([a-z]\.)+[a-z]\.?$/,Ts={I:!0,A:!0};var Gs=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!==Is.test(n)&&!0!==js.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ts.hasOwnProperty(r.text)&&js.test(r.text)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Xi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Es.test(r.text)&&r.text.length<=6?(Xi(r,"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},Cs=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||Ds(e[t-1],a),l=l||Ds(e[t+1],o),l=l||Cs(e[t-1],r),l=l||Cs(e[t+1],i),l)return Xi(s,l,"3-[neighbour]"),os(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 Bs=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},zs=function(e,t,n){0===e[t].tags.size&&(Xi(e[t],"Noun","3-[fallback]"),os(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(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Js={tagSwitch:Yi,checkSuffix:ms,checkRegex:bs,checkCase:ds,checkPrefix:vs,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")&&(Xi(o,"Verb","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Xi(o,"Adjective","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")))},checkYear:As},qs={checkAcronym:Gs,neighbours:Os,orgWords:Bs,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?a([s],u,n,null,`3-[variable] (${o})`):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)},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: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 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"]},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},pl={in:!0,by:!0,for:!0};var ml=(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===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 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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>hl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},vl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.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;bl.hasOwnProperty(i)&&(s=bl[i](r,o,t)),s&&(s=vl(s,e),il(n,[a,o],s),fl(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=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)",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:"#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: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:"#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: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"}]),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,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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},El=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)},xl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?El(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},Nl={api:function(e){e.prototype.swap=xl}};m.plugin(tl),m.plugin(yl),m.plugin(jl),m.plugin(Nl);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},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{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},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={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Kl).join("|")+")"),Ul=RegExp("("+Object.values(Kl).join("|")+")"),Ql=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ul,"")})}(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)}},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",pu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var mu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=pu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[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 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 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")},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:vu(e,t),isSubordinate:bu(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);return t.found?(t.parse()[0]||{}).num: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 Eu=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 Nu=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=>Eu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return Nu(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)}}},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},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},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$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Mu(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},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"],Ru=[[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"]],Uu=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 Ru.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(Uu(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(" ")},_u=function(e){return e.numerator&&e.denominator?`${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(" ")},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},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")}},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},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},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},dc={api:function(e){tc(e),hc(e)}};const pc={people:!0,emails:!0,phoneNumbers:!0,places:!0},mc=function(e={}){return!1!==(e=Object.assign({},pc,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=mc}},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))})},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}},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},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},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},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}=vc(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=>(vc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(vc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(vc(e),e=kc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(vc(e),Pc(e)))}toNegative(e){return Ac(this,e).map(e=>(vc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(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 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)}},Ec=function(e){return e.match("#Honorific+? #Person+")},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 Nc="male",Ic="female",Tc={mr:Nc,mrs:Ic,miss:Ic,madam:Ic,king:Nc,queen:Ic,duke:Nc,duchess:Ic,baron:Nc,baroness:Ic,count:Nc,countess:Ic,prince:Nc,princess:Ic,sire:Nc,dame:Ic,lady:Ic,ayatullah:Nc,congressman:Nc,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 Nc;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 Nc}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 Nc;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=Ec(this);return t=Dc(t,e),new People(this.document,t.pointer)}},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},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)}},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},Fc={api:function(e){Cc(e),Vc(e),Bc(e),$c(e)}},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},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},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"},Rc={conditional:!0},Uc={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$",[Uc]]],"gerund-phrase":[["^#PastTense #Gerund$",[_c]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Uc]],["^have #PastTense #Gerund$",[_c]],["^will have #PastTense #Gerund$",[_c]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[_c]]],"simple-future":[["^will #Adverb? #Infinitive",[Uc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,Qc]]],"past-progressive":[["^(was|were) #Gerund$",[_c,Qc]]],"future-progressive":[["^will be #Gerund$",[Uc,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$",[Uc,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$",[Uc,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)",[Uc,Yc,Rc]],["will be being? (#PastTense|#Participle)",[Uc,Yc,Rc]]],"present-conditional":[["would be #PastTense",[Kc,Rc]]],"past-conditional":[["would have been #PastTense",[_c,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Uc]]],"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,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},ph=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),mh=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"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var bh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:mh(t.adverbs.pre),postAdverbs:mh(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const vh={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,vh).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=ph(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),ph(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},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).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},Nh={infinitive:Eh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Eh(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":Eh,"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 Eh(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)=>(Eh(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$"),Eh(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 Nh.hasOwnProperty(n)?((e=Nh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","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(["lexicon","preTagger","postTagger","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(["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=bh(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)}}};return m.plugin(Sl),m.plugin(su),m.plugin(mu),m.plugin(Tu),m.plugin(dc),m.plugin(gc),m.plugin(jc),m.plugin(Fc),m.plugin(Wh),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 ecba0d8dc..277d1f740 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.0";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(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},C.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 D=C;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;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 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.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 L=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 W={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=L(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=L(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,D,V,$,J,W,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(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 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 Ge={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 Te=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},Ce=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Te(n,t),Object.keys(r).forEach(e=>{r[e]=Te(r[e],t)}),{ptrs:n,byGroup:r}},De=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&De(e)&&!0===e.isView,Be=e=>e&&De(e)&&!0===e.isNet;var Ve={matchOne:function(e,t,n){const r=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=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}=Ce(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(Be(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}=Ce(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(Be(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(Be(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(Be(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 Je=Object.assign({},Ve,ze,Me);Je.lookBehind=Je.before,Je.lookBefore=Je.before,Je.lookAhead=Je.after,Je.lookAfter=Je.after,Je.notIf=Je.ifNo;var Le=function(e){Object.assign(e.prototype,Je)};const We=/(?:^|\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(We),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 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),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)){_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 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===Ze.test(e)&&(e=e.replace(Ze,(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 Tt=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 Ct=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 Dt=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 Bt=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]&&Ct(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(!Dt(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 Vt=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(!Tt(a))return null}if(!0!==e.optional)return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Bt(a))return null}else{if(!Gt(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=Vt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:Le,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=/^#./,Jt=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 Lt={html:function(e){let{starts:t,ends:n}=Jt(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(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||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&_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 r=0;ra||a<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var bn=function(e,t){let n=vn(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 yn={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:vn,splitAll:bn}}};var wn=function(e,t){let n=e.concat(t),r=vn(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=>fn(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 Pn=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},jn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Nn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=jn(e,this.document),this.update(e)};var En={methods:yn,api:function(e){Object.assign(e.prototype,Nn)}};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 In=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: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=xn(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 Gn=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 Tn=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 Cn=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 Dn=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=In(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=Gn(a,t.hooks);return o=Tn(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),Cn(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===Dn(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 Bn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},zn=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(),Bn.test(t))!function(e,t,n,r){let a=t.split(Bn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),zn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,r))};var Fn=$n;var Sn=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=>Hn({id:e})),t}return[Hn({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},Wn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Kn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Jn(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Ln(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ln(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},Un=function(e){let t=Ln(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},Qn={text:Rn,txt:Rn,array:Un,flat:Un},Zn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},_n=e=>{Ln(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Wn(e))return e.forEach(e=>this.add(qn(e),t)),this;e=qn(e);let n=Hn({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 Ln(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Ln(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 Ln(this.json)}fillDown(){var e;return e=this.json,Ln(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 Wn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){_n(this.json);let e=Ln(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 _n(this.json),Zn(this.json,e)}debug(){return _n(this.json),Zn(this.json,"debug"),this}}const Xn=function(e){let t=Kn(e);return new g$1(t)};Xn.prototype.plugin=function(e){e(this)};var er={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const tr=function(e){if(er.hasOwnProperty(e.id))return er[e.id];if(er.hasOwnProperty(e.is))return er[e.is];let t=e._cache.parents.find(e=>er[e]);return er[t]};var nr=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:tr(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 rr=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=rr(e[t].children),e[t].not=rr(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 or={one:{setTag:Fn,unTag:Sn,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 Xn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return nr(n)}}};const ir=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sr={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||""),ir(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 ir(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 lr=function(e){Object.assign(e.prototype,sr)};var ur={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 cr=new Set(["Auxiliary","Possessive"]);var hr={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(cr.has(e)||!t.hasOwnProperty(n))return 1;if(cr.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:or,api:lr,lib:ur};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,pr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var mr=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 Dr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Or=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Br=/['’]/,Vr=/^[a-z]\.([a-z]\.)+/i,zr=/^[-+.][0-9]/,$r=/^'[0-9]{2}/;var Fr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Dr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!zr.test(e)?"'"===n&&$r.test(e)?(n="",t):"":(n="",t)))).replace(Or,a=>(r=a,Br.test(a)&&/[sn]['’]$/.test(t)&&!1===Br.test(n)?(r=r.replace(Br,""),"'"):!0===Vr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Sr=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 Hr=/([A-Z]\.)+[A-Z]?,?$/,Mr=/^[A-Z]\.,?$/,Jr=/[A-Z]{2,}('s|,)?$/,Lr=/([a-z]\.)+[a-z]\.?$/;var Wr=function(e){return function(e){return!0===Hr.test(e)||!0===Lr.test(e)||!0===Mr.test(e)||!0===Jr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var qr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Sr(r),r=n(r,t),r=Wr(r),e.normal=r};var Kr={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:Pr,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(Tr);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=xr(n),n=Nr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Fr(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})}}}};var Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ur={},Qr={};[[["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=>{Ur[t]=!0,Qr[t]="Abbreviation",void 0!==e[1]&&(Qr[t]=[Qr[t],e[1]])})});var Zr=["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 _r={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(_r).forEach((function(e){_r[e].split("").forEach((function(t){Yr[t]=e}))}));const Xr=/\//,ea=/[a-z]\.[a-z]/i,ta=/[0-9]/;var na=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])),Xr.test(n)&&!ea.test(n)&&!ta.test(n)){let t=n.split(Xr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ra=/^\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"),ra.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var oa=function(e){let t=0,n=0,r=e.document;for(let e=0;eia(e,na),machine:e=>ia(e,aa),normal:e=>ia(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 ca={safe:!0,min:3};var ha={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=la},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ca,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ua(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(gn),m.extend(St),m.extend(En),m.extend(hr),m.plugin(ve),m.extend(sa),m.plugin(f),m.extend(Ge),m.extend(ha),m.extend(Pe),m.extend(On);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"},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",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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 ma="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ga=ma.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var fa=function(e){if(void 0!==ga[e])return ga[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 va=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=ya(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=wa(pa[e]);ja.test(e)?Object.keys(t).forEach(t=>{if(Ea[t]=e,"Noun|Verb"===e){let e=Aa(t,xa);Ea[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ia="Adjective";var Ga={beforeTags:{Determiner:Ia,Possessive:Ia},afterTags:{Adjective:Ia},beforeWords:{seem:Ia,seemed:Ia,seems:Ia,feel:Ia,feels:Ia,felt:Ia,appear:Ia,appears:Ia,appeared:Ia,also:Ia,over:Ia,under:Ia,too:Ia,it:Ia,but:Ia,still:Ia,really:Ia,quite:Ia,well:Ia,very:Ia,deeply:Ia,profoundly:Ia,extremely:Ia,so:Ia,badly:Ia,mostly:Ia,totally:Ia,awfully:Ia,rather:Ia,nothing:Ia,something:Ia,anything:Ia},afterWords:{too:Ia,also:Ia,or:Ia}};const Ta="Gerund";var Ca={beforeTags:{Adverb:Ta,Preposition:Ta,Conjunction:Ta},afterTags:{Adverb:Ta,Possessive:Ta,Person:Ta,Pronoun:Ta,Determiner:Ta,Copula:Ta,Preposition:Ta,Conjunction:Ta,Comparative:Ta},beforeWords:{been:Ta,keep:Ta,continue:Ta,stop:Ta,am:Ta,be:Ta,me:Ta,began:Ta,start:Ta,starts:Ta,started:Ta,stops:Ta,stopped:Ta,help:Ta,helps:Ta,avoid:Ta,avoids:Ta,love:Ta,loves:Ta,loved:Ta,hate:Ta,hates:Ta,hated:Ta},afterWords:{you:Ta,me:Ta,her:Ta,him:Ta,them:Ta,their:Ta,it:Ta,this:Ta,there:Ta,on:Ta,about:Ta,for:Ta}};var Da={beforeTags:Object.assign({},Ga.beforeTags,Ca.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ga.afterTags,Ca.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ga.beforeWords,Ca.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ga.afterWords,Ca.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Oa="Singular";var Ba={beforeTags:{Determiner:Oa,Possessive:Oa,Acronym:Oa,Noun:Oa,Adjective:Oa,PresentTense:Oa,Gerund:Oa,PastTense:Oa,Infinitive:Oa,Date:Oa},afterTags:{Value:Oa,Modal:Oa,Copula:Oa,PresentTense:Oa,PastTense:Oa,Demonym:Oa},beforeWords:{the:Oa,with:Oa,without:Oa,of:Oa,for:Oa,any:Oa,all:Oa,on:Oa,cut:Oa,cuts:Oa,save:Oa,saved:Oa,saves:Oa,make:Oa,makes:Oa,made:Oa,minus:Oa,plus:Oa,than:Oa,another:Oa,versus:Oa,neither:Oa,favorite:Oa,best:Oa,daily:Oa,weekly:Oa,linear:Oa,binary:Oa,mobile:Oa,lexical:Oa,technical:Oa,computer:Oa,scientific:Oa,formal:Oa},afterWords:{of:Oa,system:Oa,aid:Oa,method:Oa,utility:Oa,tool:Oa,reform:Oa,therapy:Oa,philosophy:Oa,room:Oa,authority:Oa,says:Oa,said:Oa,wants:Oa,wanted:Oa}};const Va={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var za={beforeTags:Object.assign({},Ga.beforeTags,Ba.beforeTags,Va.beforeTags),afterTags:Object.assign({},Ga.afterTags,Ba.afterTags),beforeWords:Object.assign({},Ga.beforeWords,Ba.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ga.afterWords,Ba.afterWords)};const $a={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Fa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Sa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ha={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ma={beforeTags:Object.assign({},Ga.beforeTags,$a),afterTags:Object.assign({},Ga.afterTags,Fa),beforeWords:Object.assign({},Ga.beforeWords,Sa),afterWords:Object.assign({},Ga.afterWords,Ha)};const Ja="Infinitive";var La={beforeTags:{Modal:Ja,Adverb:Ja,Negative:Ja,Plural:Ja},afterTags:{Determiner:Ja,Adverb:Ja,Possessive:Ja,Preposition:Ja},beforeWords:{i:Ja,we:Ja,you:Ja,they:Ja,to:Ja,please:Ja,will:Ja,have:Ja,had:Ja,would:Ja,could:Ja,should:Ja,do:Ja,did:Ja,does:Ja,can:Ja,must:Ja,us:Ja,me:Ja,he:Ja,she:Ja,it:Ja,being:Ja},afterWords:{the:Ja,me:Ja,you:Ja,him:Ja,her:Ja,them:Ja,it:Ja,a:Ja,an:Ja,up:Ja,down:Ja,by:Ja,out:Ja,off:Ja,when:Ja,all:Ja,to:Ja,because:Ja,although:Ja,before:Ja,how:Ja,otherwise:Ja,though:Ja,yet:Ja}};const Wa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var qa={beforeTags:Object.assign({},Ga.beforeTags,La.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ga.afterTags,La.afterTags,Wa.afterTags),beforeWords:Object.assign({},Ga.beforeWords,La.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ga.afterWords,La.afterWords,{to:void 0})};const Ka={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Ra={},Ua={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Qa={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Za={beforeTags:Object.assign({},Ca.beforeTags,Ba.beforeTags,Ka),afterTags:Object.assign({},Ca.afterTags,Ba.afterTags,Ra),beforeWords:Object.assign({},Ca.beforeWords,Ba.beforeWords,Ua),afterWords:Object.assign({},Ca.afterWords,Ba.afterWords,Qa)};var _a={beforeTags:Object.assign({},La.beforeTags,Ba.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},La.afterTags,Ba.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},La.beforeWords,Ba.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},La.afterWords,Ba.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Ya="Person";var Xa={beforeTags:{Honorific:Ya,Person:Ya,Preposition:Ya},afterTags:{Person:Ya,ProperNoun:Ya,Verb:Ya},ownTags:{ProperNoun:Ya},beforeWords:{hi:Ya,hey:Ya,yo:Ya,dear:Ya,hello:Ya},afterWords:{said:Ya,says:Ya,told:Ya,tells:Ya,feels:Ya,felt:Ya,seems:Ya,thinks:Ya,thought:Ya,spends:Ya,spendt:Ya,plays:Ya,played:Ya,sing:Ya,sang:Ya,learn:Ya,learned:Ya,wants:Ya,wanted:Ya}};const eo="Month",to={beforeTags:{Date:eo,Value:eo},afterTags:{Date:eo,Value:eo},beforeWords:{by:eo,in:eo,on:eo,during:eo,after:eo,before:eo,between:eo,until:eo,til:eo,sometime:eo,of:eo,this:eo,next:eo,last:eo,previous:eo,following:eo},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Xa.beforeTags,to.beforeTags),afterTags:Object.assign({},Xa.afterTags,to.afterTags),beforeWords:Object.assign({},Xa.beforeWords,to.beforeWords),afterWords:Object.assign({},Xa.afterWords,to.afterWords)};const ro={Place:"Place"},ao={Place:"Place",Abbreviation:"Place"},oo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const so={"Adj|Gerund":Da,"Adj|Noun":za,"Adj|Past":Ma,"Adj|Present":qa,"Noun|Verb":_a,"Noun|Gerund":Za,"Person|Noun":{beforeTags:Object.assign({},Ba.beforeTags,Xa.beforeTags),afterTags:Object.assign({},Ba.afterTags,Xa.afterTags),beforeWords:Object.assign({},Ba.beforeWords,Xa.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ba.afterWords,Xa.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Xa.beforeTags,La.beforeTags),afterTags:Object.assign({},Xa.afterTags,La.afterTags),beforeWords:Object.assign({},Xa.beforeWords,La.beforeWords),afterWords:Object.assign({},Xa.afterWords,La.afterWords)},"Person|Place":{beforeTags:Object.assign({},ro,Xa.beforeTags),afterTags:Object.assign({},ao,Xa.afterTags),beforeWords:Object.assign({},oo,Xa.beforeWords),afterWords:Object.assign({},io,Xa.afterWords)}},lo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};so["Plural|Verb"]={beforeWords:lo(so["Noun|Verb"].beforeWords,{}),afterWords:lo(so["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:lo(so["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:lo(so["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var uo=so;const co="Adjective",ho="Infinitive",po="PresentTense",mo="Singular",go="PastTense",fo="Adverb",vo="Plural",bo="Verb",yo="LastName",wo="Participle";var ko=[null,null,{ea:mo,ia:"Noun",ic:co,ly:fo,"'n":bo,"'t":bo},{oed:go,ued:go,xed:go," so":fo,"'ll":"Modal","'re":"Copula",azy:co,eer:"Noun",end:bo,ped:go,ffy:co,ify:ho,ing:"Gerund",ize:ho,ibe:ho,lar:co,mum:co,nes:po,nny:co,ous:co,que:co,rol:mo,sis:mo,ogy:mo,oid:mo,ian:mo,zes:po,eld:go,ken:wo,ven:wo,ten:wo,ect:ho,ict:ho,ign:ho,ful:co,bal:co},{amed:go,aped:go,ched:go,lked:go,rked:go,reed:go,nded:go,mned:co,cted:go,dged:go,ield:mo,akis:yo,cede:ho,chuk:yo,czyk:yo,ects:po,ends:bo,enko:yo,ette:mo,wner:mo,fies:po,fore:fo,gate:ho,gone:co,ices:vo,ints:vo,ruct:ho,ines:vo,ions:vo,less:co,llen:co,made:co,nsen:yo,oses:po,ould:"Modal",some:co,sson:yo,tion:mo,tage:"Noun",ique:mo,tive:co,tors:"Noun",vice:mo,lier:mo,fier:mo,wned:go,gent:mo,tist:mo,pist:mo,rist:mo,mist:mo,yist:mo,vist:mo,lite:mo,site:mo,rite:mo,mite:mo,bite:mo,mate:mo,date:mo,ndal:mo,vent:mo,uist:mo,gist:mo,note:mo,cide:mo,wide:co,vide:ho,ract:ho,duce:ho,pose:ho,eive:ho,lyze:ho,lyse:ho,iant:co,nary:co},{elist:mo,holic:mo,phite:mo,tized:go,urned:go,eased:go,ances:vo,bound:co,ettes:vo,fully:fo,ishes:po,ities:vo,marek:yo,nssen:yo,ology:"Noun",osome:mo,tment:mo,ports:vo,rough:co,tches:po,tieth:"Ordinal",tures:vo,wards:fo,where:fo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:mo,scent:mo,onist:mo,anist:mo,alist:mo,olist:mo,icist:mo,ounce:ho,iable:co,borne:co,gnant:co,inant:co,igent:co,atory:co,rient:mo,dient:mo},{auskas:yo,parent:mo,cedent:mo,ionary:mo,cklist:mo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:yo,borough:"Place",sdottir:yo}];const Po="Adjective";var Ao=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Po,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Po,tele:"Noun","pro-":Po,"mis-":"Verb","dis-":"Verb","pre-":Po},{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:Po,radio:"Noun",tetra:"Noun","omni-":Po,"post-":Po},{pseudo:Po,"extra-":Po,"hyper-":Po,"inter-":Po,"intra-":Po,"deca-":Po},{electro:"Noun"}];const jo="Adjective",No="Infinitive",Eo="PresentTense",xo="Singular",Io="PastTense",Go="Expression",To="LastName";var Co={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,To],[/.[^aeiou]ica$/,xo,"harmonica"],[/^([hyj]a+)+$/,Go,"haha"]],c:[[/.[^aeiou]ic$/,jo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Io,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Io,"rammed"],[/.[aeiou][sg]hed$/,Io,"gushed"],[/.[aeiou]red$/,Io,"hired"],[/.[aeiou]r?ried$/,Io,"hurried"],[/[^aeiou]ard$/,xo,"steward"],[/[aeiou][^aeiou]id$/,jo,""],[/.[vrl]id$/,jo,"livid"],[/..led$/,Io,"hurled"],[/.[iao]sed$/,Io,""],[/[aeiou]n?[cs]ed$/,Io,""],[/[aeiou][rl]?[mnf]ed$/,Io,""],[/[aeiou][ns]?c?ked$/,Io,"bunked"],[/[aeiou]gned$/,Io],[/[aeiou][nl]?ged$/,Io],[/.[tdbwxyz]ed$/,Io],[/[^aeiou][aeiou][tvx]ed$/,Io],[/.[cdflmnprstv]ied$/,Io,"emptied"]],e:[[/.[lnr]ize$/,No,"antagonize"],[/.[^aeiou]ise$/,No,"antagonise"],[/.[aeiou]te$/,No,"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$/,To,"..ovich"],[/^ug?h+$/,Go,"ughh"],[/^uh[ -]?oh$/,Go,"uhoh"],[/[a-z]-ish$/,jo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,To,"polish-male"]],k:[[/^(k){2}$/,Go,"kkkk"]],l:[[/.[gl]ial$/,jo,"familial"],[/.[^aeiou]ful$/,jo,"fitful"],[/.[nrtumcd]al$/,jo,"natal"],[/.[^aeiou][ei]al$/,jo,"familial"]],m:[[/.[^aeiou]ium$/,xo,"magnesium"],[/[^aeiou]ism$/,xo,"schism"],[/^[hu]m+$/,Go,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,jo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Go,"noooo"],[/^(yo)+$/,Go,"yoo"],[/^wo{2,}[pt]?$/,Go,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,xo],[/[^i]fer$/,No],[/.[^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$/,Eo],[/.[rln]ates$/,Eo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,xo],[/.[aeiou]sks$/,Eo],[/.[aeiou]kes$/,Eo],[/[aeiou][^aeiou]is$/,xo],[/[a-z]'s$/,"Noun"],[/^yes+$/,Go]],v:[[/.[^aeiou][ai][kln]ov$/,To]],y:[[/.[cts]hy$/,jo],[/.[st]ty$/,jo],[/.[tnl]ary$/,jo],[/.[oe]ry$/,xo],[/[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$/,xo]]};const Do="Verb",Oo="Noun";var Bo={leftTags:[["Adjective",Oo],["Possessive",Oo],["Determiner",Oo],["Adverb",Do],["Pronoun",Do],["Value",Oo],["Ordinal",Oo],["Modal",Do],["Superlative",Oo],["Demonym",Oo],["Honorific","Person"]],leftWords:[["i",Do],["first",Oo],["it",Do],["there",Do],["not",Do],["because",Oo],["if",Oo],["but",Oo],["who",Do],["this",Oo],["his",Oo],["when",Oo],["you",Do],["very","Adjective"],["old",Oo],["never",Do],["before",Oo],["a","Singular"],["the",Oo],["been",Do]],rightTags:[["Copula",Oo],["PastTense",Oo],["Conjunction",Oo],["Modal",Oo]],rightWords:[["there",Do],["me",Do],["man","Adjective"],["only",Do],["him",Do],["it",Do],["were",Oo],["took",Oo],["himself",Do],["went",Oo],["who",Oo],["jr","Person"]]},Vo={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"},Fo={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"},So={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 Ho=/^.([0-9]+)/;var Mo=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(Ho);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Ho,"")}(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},Lo=/^([0-9]+)/,Wo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Lo);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Lo,"")]}(n[0],n[1])})};var qo=function(e={}){return(e=Object.assign({},e)).rules=Wo(e.rules),e.rules=Jo(e.rules),e.rev&&(e.rev=Wo(e.rev),e.rev=Jo(e.rev)),e.exceptions=Wo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Ko=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 Ro=qo({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"}),Uo=qo(Fo),Qo=qo(zo),Zo=qo($o),_o=Ko(Ro),Yo=Ko(Uo),Xo=Ko(Qo),ei=Ko(Zo),ti=qo(Vo),ni=qo(So);var ri={fromPast:Ro,fromPresent:Uo,fromGerund:Qo,fromParticiple:Zo,toPast:_o,toPresent:Yo,toGerund:Xo,toParticiple:ei,toComparative:ti,toSuperlative:ni,fromComparative:Ko(ti),fromSuperlative:Ko(ni)},ai=["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),{}),oi=[[/([^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 ii=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(si[t].forEach(n=>e[n]=t),e),{});var li=si;var ui=function(e){let t=e.substring(e.length-3);if(!0===li.hasOwnProperty(t))return li[t];let n=e.substring(e.length-2);return!0===li.hasOwnProperty(n)?li[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ci={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=ui(e)),ci.hasOwnProperty(e))c=ci[e];else if("Participle"===n)c=Mo(l,i);else if("PastTense"===n)c=Mo(l,r);else if("PresentTense"===n)c=Mo(l,a);else{if("Gerund"!==n)return e;c=Mo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var di=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:Mo(i,n),PresentTense:Mo(i,r),Gerund:Mo(i,a),FutureTense:"will "+e},u=Mo(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 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 mi="ically",gi=new Set(["analyt"+mi,"chem"+mi,"class"+mi,"clin"+mi,"crit"+mi,"ecolog"+mi,"electr"+mi,"empir"+mi,"frant"+mi,"grammat"+mi,"ident"+mi,"ideolog"+mi,"log"+mi,"mag"+mi,"mathemat"+mi,"mechan"+mi,"med"+mi,"method"+mi,"method"+mi,"mus"+mi,"phys"+mi,"phys"+mi,"polit"+mi,"pract"+mi,"rad"+mi,"satir"+mi,"statist"+mi,"techn"+mi,"technolog"+mi,"theoret"+mi,"typ"+mi,"vert"+mi,"whims"+mi]),fi=[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"}],vi=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"]),bi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var yi=function(e){return e.endsWith("ly")?gi.has(e)?e.replace(/ically/,"ical"):vi.has(e)?null:bi.hasOwnProperty(e)?bi[e]:pi(e,fi)||e:null};const wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ki={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Pi=function(e){if(ki.hasOwnProperty(e))return ki[e];let t=pi(e,wi);return t||e+"ly"};const Ai=[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"},Ni=new Set(["terrible","annoying"]);const Ei=function(e,t){const n=t.two.models.toSuperlative;return Mo(e,n)},xi=function(e,t){const n=t.two.models.toComparative;return Mo(e,n)};var Ii={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 Gi={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===Ii.hasOwnProperty(i)&&Ii[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Aa,nounToSingular:ii,verbToInfinitive:hi,getTense:ui,verbConjugate:di,adjToSuperlative:Ei,adjToComparative:xi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Mo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Mo(e,n)},advToAdjective:yi,adjToAdverb:Pi,adjToNoun:function(e){if(ji.hasOwnProperty(e))return ji[e];if(Ni.has(e))return null;let t=pi(e,Ai);return t||e+"ness"}}}};var Ti=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 Ci=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Di=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=Ci(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ci(r,"Infinitive","Verb"),Object.assign(s,l),l=Ci(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ci(o,"Adjective","Superlative"),Object.assign(s,l),l=Ci(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Oi={two:{models:ri}};const Bi={"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"},Vi=function(e,t){const n={model:t,methods:Gi};let{lex:r,_multi:a}=Gi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},zi=function(e,t,n){let r=di(e,Oi);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]=Bi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||zi(a,r,!1),"Adj|Present"===o&&(zi(a,r,!0),function(e,t,n){let r=Ei(e,n);t[r]=t[r]||"Superlative";let a=xi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=hi(a,Oi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=hi(a,Oi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Vi(n,t)};let Fi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:da,models:ri,suffixPatterns:ko,prefixPatterns:Ao,endsWith:Co,neighbours:Bo,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:Ea,clues:uo,uncountable:{},orgWords:ai}};Fi=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=Vi(e.one.lexicon,e)).one.lexicon,e),e=$i(e.two.switches,e),e=Di(e),e=Ti(e)}(Fi);var Si=Fi;const Hi=/^(under|over|mis|re|un|dis|semi)-?/;var Mi=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(Hi.test(a.normal)){let e=a.normal.replace(Hi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Ji=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 Li={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Wi=new Set(["formulas","koalas","israelis","menus"]),qi=["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 Ki=function(e){if(!e||e.length<=3)return!1;if(Wi.has(e))return!0;let t=e[e.length-1];return Li.hasOwnProperty(t)?Li[t].find(t=>e.endsWith(t)):"s"===t&&!qi.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Ui=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Ki(e.normal)?Ji(e,"Plural","3-plural-guess"):Ji(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ui(e.normal);t&&Ji(e,t,"3-verb-tense-guess")}}(r)};const Qi=/^\p{Lu}[\p{Ll}'’]/u,Zi=/[0-9]/,_i=["Date","Month","WeekDay","Unit"],Yi=/^[IVXLCDM]{2,}$/,Xi=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,es={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===Qi.test(o)&&!1===Zi.test(o)?_i.find(e=>r.tags.has(e))?null:(Ui(e,t,n),r.tags.has("Noun")||r.tags.clear(),Ji(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Yi.test(o)&&Xi.test(o)&&!es[r.normal]?(Ji(r,"RomanNumeral","2-xvii"),!0):null};const ns=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 rs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ns(r.normal,n.two.suffixPatterns);if(null!==e)return Ji(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ns(r.implicit,n.two.suffixPatterns),null!==e))return Ji(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const as=/['‘’‛‵′`´]/,os=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 Ji(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ls=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"]),us=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ls.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},cs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},hs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ds=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(us(a)||us(o))return Ji(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(cs(a)||cs(o))return Ji(n,"Year","2-tagYear-close");if(hs(e[t-2])||hs(e[t+2]))return Ji(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 Ji(n,"Year","2-tagYear-noun")}}}return null};const ps=/^[A-Z]('s|,)?$/,ms=/^[A-Z-]+$/,gs=/([A-Z]\.)+[A-Z]?,?$/,fs=/[A-Z]{2,}('s|,)?$/,vs=/([a-z]\.)+[a-z]\.?$/,bs={I:!0,A:!0};var ys=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===ms.test(n)||n.length>5||bs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==gs.test(n)&&!0!==vs.test(n)&&!0!==ps.test(n)&&!0!==fs.test(n))}(r,n)?(r.tags.clear(),Ji(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!bs.hasOwnProperty(r.text)&&ps.test(r.text)?(r.tags.clear(),Ji(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Ji(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&ms.test(r.text)&&r.text.length<=6?(Ji(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},ks=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ps=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||ks(e[t-1],r),l=l||ks(e[t+1],i),l)return Ji(s,l,"3-[neighbour]"),Ui(e,t,n),e[t].confidence=.2,!0}return null};const As=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]&&As(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&As(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Ns=function(e,t,n){0===e[t].tags.size&&(Ji(e[t],"Noun","3-[fallback]"),Ui(e,t,n),e[t].confidence=.1)};const Es=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,xs=(e,t,n)=>0!==t||e[1]?null:n;var Is={"Adj|Gerund":(e,t)=>Es(e,t),"Adj|Noun":(e,t)=>Es(e,t),"Adj|Past":(e,t)=>Es(e,t),"Adj|Present":(e,t)=>Es(e,t),"Noun|Gerund":(e,t)=>Es(e,t),"Noun|Verb":(e,t)=>Es(e,t)||xs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Es(e,t)||xs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Es(e,t),"Person|Verb":(e,t)=>0!==t&&Es(e,t)};const Gs="undefined"!=typeof process&&process.env?process.env:self.env||{},Ts=/^(under|over|mis|re|un|dis|semi)-?/,Cs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Gs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ds=(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&&Gs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Os={tagSwitch:Mi,checkSuffix:rs,checkRegex:is,checkCase:ts,checkPrefix:ss,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")&&(Ji(o,"Verb","3-[prefix]"),Ji(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Ji(o,"Adjective","3-[prefix]"),Ji(o,"Prefix","3-[prefix]")))},checkYear:ds},Bs={checkAcronym:ys,neighbours:Ps,orgWords:js,nounFallback:Ns,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(Ts.test(l)&&!o[l]&&(l=l.replace(Ts,"")),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=Cs(e[t+1],n.afterWords);return o=o||Cs(e[t-1],n.beforeWords),o=o||Ds(e[t-1],n.beforeTags,a),o=o||Ds(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Is[o]&&(u=Is[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Gs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Vs=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 Fs={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 Ss={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 Zs=/'/;var _s=function(e,t){let n=e[t].normal.split(Zs)[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 Ys=/'/;var Xs=function(e,t){let n=e[t].normal.split(Ys)[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 el=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 tl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},nl={in:!0,by:!0,for:!0};var rl=(e,t)=>{let n=e[t];if(tl.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===nl[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 al=/'/,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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},il={d:(e,t)=>Xs(e,t),t:(e,t)=>el(e,t),s:(e,t,n)=>rl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):_s(e,t)},sl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ll={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===al.test(r[o].normal)&&([,i]=r[o].normal.split(al));let s=null;il.hasOwnProperty(i)&&(s=il[i](r,o,t)),s&&(s=sl(s,e),Qs(n,[a,o],s),ol(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=Us.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=Rs},hooks:["contractionTwo"]};const ul="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const cl=["i","we","they"];let hl=[].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:"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:ul+" #Person",tag:"Person",reason:"randy-smith"},{match:ul+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${ul}]`,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:"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:cl,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:cl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:cl,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 dl=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(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;dl=dl||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(dl),e.uncache(),e}},model:{two:{matches:hl}},hooks:["postTagger"]};var ml=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")?ml(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=gl}};m.plugin(Ws),m.plugin(ll),m.plugin(pl),m.plugin(fl);var vl=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 bl=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 yl={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 Il={compute:{chunks:function(e){const{document:t,world:n}=e;wl(t),kl(t),jl(e,t,n),El(t),xl(t)}},api:function(e){e.prototype.chunks=bl,e.prototype.clauses=vl},hooks:["chunks"]};const Gl=/'s$/;var Tl=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(Gl,""),e.normal=e.normal.replace(Gl,"")})}),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 Cl=/\(/,Dl=/\)/,Ol=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Cl,"");let t=e[e.length-1];t.post=t.post.replace(Dl,"")}),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 Vl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},zl=RegExp("("+Object.keys(Vl).join("|")+")"),$l=RegExp("("+Object.values(Vl).join("|")+")"),Fl=function(e,t){const n=e[t].pre.match(zl)[0]||"";if(!n||!Vl[n])return null;const r=Vl[n];for(;t{e[0].pre=e[0].pre.replace(zl,"");let t=e[e.length-1];t.post=t.post.replace($l,"")})}(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 Hl=/\./g;var Ml=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(Hl,""),e.normal=e.normal.replace(Hl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Hl,""),e.normal=e.normal.replace(Hl,""),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 Jl=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 Ll=(e,t)=>"number"==typeof t?e.eq(t):e,Wl=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 ql=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=Wl(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 Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Ll(this,e).map(e=>{let n=Wl(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Ll(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Ll(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Ll(t,e),new Adjectives(t.document,t.pointer)}};const Kl=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},Rl=[["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 Ul=[["emojis","emoji"],["atmentions","atMentions"]];var Ql=function(e){Rl.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=Kl,Ul.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},Zl={api:function(e){Ql(e),Tl(e),Bl(e),Sl(e),ql(e),Jl(e),Ml(e)}};const _l=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var Yl={case:e=>{_l(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;_l(e,e=>e.text=n(e.text,t))},whitespace:e=>{_l(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=>{_l(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 Xl=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),eu="unicode|punctuation|whitespace|acronyms",tu="|case|contractions|parentheses|quotations|emoji|honorifics",nu={light:Xl(eu),medium:Xl(eu+tu),heavy:Xl(eu+tu+"|possessives|adverbs|nouns|verbs")};var ru={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=nu[e]),Object.keys(e).forEach(t=>{Yl.hasOwnProperty(t)&&Yl[t](this,e[t])}),this}}};var au=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 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 lu=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:su(e,t),isSubordinate:iu(e),root:t}};const uu=e=>e.text(),cu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),hu=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var du=function(e){let t=lu(e);return{root:uu(t.root),number:hu(t.number),determiner:uu(t.determiner),adjectives:cu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const pu={tags:!0};var mu=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,pu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",pu),e};const gu={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,gu).tag("Singular","toPlural"),e};const vu=(e,t)=>"number"==typeof t?e.eq(t):e;var bu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return vu(this,e).map(lu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=du(t)),n},[])}isPlural(e){let t=this.filter(e=>lu(e).isPlural);return vu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=lu(e).adjectives;n.found&&(t=t.concat(n))}),vu(t,e)}toPlural(e){return vu(this,e).map(e=>mu(e,lu(e)))}toSingular(e){return vu(this,e).map(e=>{let t=lu(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=au(this);return t=vu(t,e),new Nouns(this.document,t.pointer)}}};var yu=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(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};var Au=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 Nu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Eu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},xu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Iu=function(e){if(!0===Eu.hasOwnProperty(e))return Eu[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=Tu(n),r=Tu(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:Tu(n);let a=r.text("reduced");return Gu.test(a)&&(a=a.replace(Gu,""),r=r.replaceWith(a)),r=Cu.hasOwnProperty(a)?Cu[a]:Tu(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:Tu(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 Ou=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 Bu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Vu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],zu=[[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"]],$u=function(e){let t=[];if(e>100)return t;for(let n=0;n=Bu[n][1]&&(e-=Bu[n][1],t.push(Bu[n][0]));return Vu[e]&&t.push(Vu[e]),t};var Fu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ou(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return zu.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($u(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=Ou(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 Su=function(e){if(!e.numerator||!e.denominator)return"";return`${Fu({num:e.numerator})} out of ${Fu({num:e.denominator})}`};const Hu={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 Mu=e=>{let t=Fu(e).split(" "),n=t[t.length-1];return Hu.hasOwnProperty(n)?t[t.length-1]=Hu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Ju=function(e){if(!e.numerator||!e.denominator)return"";let t=Fu({num:e.numerator}),n=Mu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Lu=(e,t)=>"number"==typeof t?e.eq(t):e;var Wu=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Lu(this,e).map(Du)}get(e){return Lu(this,e).map(Du)}json(e){return Lu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Du(t);return n.fraction=r,n},[])}toDecimal(e){return Lu(this,e).forEach(e=>{let{decimal:t}=Du(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Lu(this,e).forEach(e=>{let t=Du(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 Lu(this,e).forEach(e=>{let t=Du(e),n=Ju(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Lu(this,e).forEach(e=>{let t=Du(e),n=Su(t);e.replaceWith(n)}),this}toPercentage(e){return Lu(this,e).forEach(e=>{let{decimal:t}=Du(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=yu(this);return t=Lu(t,e),new Fractions(this.document,t.pointer)}};const qu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Ku=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("("+qu+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+qu+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+qu+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+qu+")"));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) (${qu})`),r=e.has("("+qu+") #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("("+qu+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+qu+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Ru=function(e){if("string"==typeof e)return{num:Iu(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=Du(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Iu(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 Uu=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=Ou(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Qu={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Zu={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var _u=function(e){let t={suffix:"",prefix:e.prefix};return Qu.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Qu[e.prefix],t.prefix=""),Zu.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Zu[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Yu=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=_u(e);return t+Mu(e)+n}if("Ordinal"===t)return e.prefix+Uu(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=_u(e);return t+Fu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Xu=(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 Xu(this,e).map(Ru)}get(e){return Xu(this,e).map(Ru).map(e=>e.num)}json(e){return Xu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ru(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=Ru(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Yu(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=Ru(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Yu(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=>Ru(t).num===e)}greaterThan(e){return this.filter(t=>Ru(t).num>e)}lessThan(e){return this.filter(t=>Ru(t).num{let r=Ru(n).num;return r>e&&r{let n=Ru(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=Yu(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=Ru(e).num);let t=this.map(t=>{let n=Ru(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=Yu(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=Ku(this);return t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Ku(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Ku(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var tc={api:function(e){Wu(e),ec(e)}};const nc={people:!0,emails:!0,phoneNumbers:!0,places:!0},rc=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 ac={api:function(e){e.prototype.redact=rc}};var 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))})};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 sc=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 lc=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 uc=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 hc=function(e){return e.verbs().toInfinitive(),e};const dc=(e,t)=>"number"==typeof t?e.eq(t):e;var pc={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}=sc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return dc(this,e).map(e=>(sc(e),lc(e)))}toPresentTense(e){return dc(this,e).map(e=>(sc(e),uc(e)))}toFutureTense(e){return dc(this,e).map(e=>(sc(e),e=cc(e)))}toInfinitive(e){return dc(this,e).map(e=>(sc(e),hc(e)))}toNegative(e){return dc(this,e).map(e=>(sc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return dc(this,e).map(e=>(sc(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 dc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return dc(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=dc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=oc(this);return dc(t,e)}};Object.assign(e.prototype,t)}};var mc=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 fc="male",vc="female",bc={mr:fc,mrs:vc,miss:vc,madam:vc,king:fc,queen:vc,duke:fc,duchess:vc,baron:fc,baroness:vc,count:fc,countess:vc,prince:fc,princess:vc,sire:fc,dame:vc,lady:vc,ayatullah:fc,congressman:fc,congresswoman:vc,"first lady":vc,mx:null};var yc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return vc;if(n.has("#MaleName"))return fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),bc.hasOwnProperty(e))return bc[e];if(/^her /.test(e))return vc;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 vc}return null};const wc=(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 wc(this,e).map(gc)}json(e){return wc(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:yc(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=mc(this);return t=wc(t,e),new People(this.document,t.pointer)}};var Pc=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 Ac=function(e){e.prototype.places=function(t){let n=Pc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var jc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Nc=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 Ec=function(e){e.prototype.topics=Nc};var xc={api:function(e){kc(e),Ac(e),jc(e),Ec(e)}};var Ic=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 Gc=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 Tc=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 Cc=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},Dc=function(e){return e.match("#Negative")},Oc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Bc=function(e){let t=e.clone();t.contractions().expand();const n=Gc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Tc(t,n),auxiliary:Cc(t,n),negative:Dc(t),phrasal:Oc(n)}};const Vc={tense:"PresentTense"},zc={conditional:!0},$c={tense:"FutureTense"},Fc={progressive:!0},Sc={tense:"PastTense"},Hc={complete:!0,progressive:!1},Mc={passive:!0},Jc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Lc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Vc]],["^wanted to #Infinitive$",[Sc]],["^will want to #Infinitive$",[$c]]],"gerund-phrase":[["^#PastTense #Gerund$",[Sc]],["^#PresentTense #Gerund$",[Vc]],["^#Infinitive #Gerund$",[Vc]],["^will #Infinitive #Gerund$",[$c]],["^have #PastTense #Gerund$",[Sc]],["^will have #PastTense #Gerund$",[Sc]]],"simple-present":[["^#PresentTense$",[Vc]],["^#Infinitive$",[Vc]]],"simple-past":[["^#PastTense$",[Sc]]],"simple-future":[["^will #Adverb? #Infinitive",[$c]]],"present-progressive":[["^(is|are|am) #Gerund$",[Vc,Fc]]],"past-progressive":[["^(was|were) #Gerund$",[Sc,Fc]]],"future-progressive":[["^will be #Gerund$",[$c,Fc]]],"present-perfect":[["^(has|have) #PastTense$",[Sc,Hc]]],"past-perfect":[["^had #PastTense$",[Sc,Hc]],["^had #PastTense to #Infinitive",[Sc,Hc]]],"future-perfect":[["^will have #PastTense$",[$c,Hc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Sc,Fc]]],"past-perfect-progressive":[["^had been #Gerund$",[Sc,Fc]]],"future-perfect-progressive":[["^will have been #Gerund$",[$c,Fc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Sc,Mc]],["^(was|were) being (#PastTense|#Participle)",[Sc,Mc]],["^(had|have) been (#PastTense|#Participle)",[Sc,Mc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Vc,Mc]],["^(is|are|am) being (#PastTense|#Participle)",[Vc,Mc]],["^has been (#PastTense|#Participle)",[Vc,Mc]]],"passive-future":[["will have been (#PastTense|#Participle)",[$c,Mc,zc]],["will be being? (#PastTense|#Participle)",[$c,Mc,zc]]],"present-conditional":[["would be #PastTense",[Vc,zc]]],"past-conditional":[["would have been #PastTense",[Sc,zc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[$c]]],"auxiliary-past":[["^did #Infinitive$",[Sc,{plural:!1}]],["^used to #Infinitive$",[Sc,Hc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Vc,Hc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Sc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Wc=[];Object.keys(Lc).map(e=>{Lc[e].forEach(t=>{Wc.push({name:e,match:t[0],data:Jc(t[1])})})});var qc=Wc;var Kc=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(),Rc(r)&&(n.remove(r),r=n.last()),Rc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Uc(t,e)}};const Zc=e=>e,_c=(e,t)=>{let n=Qc(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Yc=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Qc(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Xc=function(e,t){let n=Qc(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},th=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"),rh=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},ah=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,eh(e))};var ih=function(e){let t=Bc(e);e=e.clone().toView();const n=Kc(e,t);return{root:t.root.text(),preAdverbs:rh(t.adverbs.pre),postAdverbs:rh(t.adverbs.post),auxiliary:ah(t.auxiliary),negative:t.negative.found,prefix:ah(t.prefix),infinitive:oh(t.root),grammar:n}};const sh={tags:!0};var lh=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,sh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Xc(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const uh={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,eh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Qc(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,uh),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",uh),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}},hh={infinitive:ch.simple,"simple-present":ch.simple,"simple-past":Zc,"simple-future":ch.both,"present-progressive":e=>(e.replace("are","were",uh),e.replace("(is|are|am)","was",uh),e),"past-progressive":Zc,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":ch.hasHad,"past-perfect":Zc,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=nh(e)),e.remove("have"),e),"present-perfect-progressive":ch.hasHad,"past-perfect-progressive":Zc,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",uh),e),"passive-past":e=>(e.replace("have","had",uh),e),"passive-present":e=>(e.replace("(is|are)","was",uh),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",uh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Zc,"auxiliary-future":e=>(e.replace("(is|are|am)","was",uh),e),"auxiliary-past":Zc,"auxiliary-present":e=>(e.replace("(do|does)","did",uh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",uh):(ch.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Zc,"want-infinitive":e=>(e.replace("(want|wants)","wanted",uh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ch.simple(e,t),nh(e),e)};var dh=function(e,t,n){return hh.hasOwnProperty(n)?((e=hh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const ph={tags:!0},mh=(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===_c(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Yc(e)),o&&(e=e.replace(a,o,ph)).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,eh(a)),!1===_c(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,ph)).not("#Particle").tag("Gerund"),e},fh={infinitive:mh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return mh(e,t);{let t=Qc(e).subject;if(_c(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,ph)}return e},"simple-past":mh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Yc(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else mh(e,t),e=e.remove("will");return e},"present-progressive":Zc,"past-progressive":(e,t)=>{let n=Yc(e);return e.replace("(were|was)",n,ph)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(mh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Qc(e).subject;return _c(e)||n.has("i")?((e=th(e,t)).remove("had"),e):(e.replace("had","has",ph),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Zc,"past-perfect-progressive":e=>e.replace("had","has",ph),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Yc(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,ph),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Zc,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Zc,"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=Xc(e);return e.replace(t.auxiliary,n),e}return gh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Zc,"modal-infinitive":Zc,"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,ph))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),mh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return _c(e)&&(n="want"),e.replace("(want|wanted|wants)",n,ph),e.remove("will"),e}};var vh=function(e,t,n){return fh.hasOwnProperty(n)?((e=fh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const bh={tags:!0},yh=(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,bh)).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,eh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,bh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},kh={infinitive:yh,"simple-present":yh,"simple-past":yh,"simple-future":Zc,"present-progressive":wh,"past-progressive":wh,"future-progressive":Zc,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Zc,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Zc,"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":Zc,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Zc,"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":Zc,"modal-past":Zc,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),yh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Ph=function(e,t,n){return e.has("will")||e.has("going to")?e:kh.hasOwnProperty(n)?((e=kh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Ah={tags:!0};var jh=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=`${Yc(e)} ${s}`,e.replace(a,s,Ah)),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 Nh={tags:!0},Eh=function(e,t){let n=Xc(e);return e.prepend(n+" not"),e},xh=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)},Ih=e=>e.has("(is|was|am|are|will|were|be)"),Gh={"simple-present":(e,t)=>!0===Ih(e)?xh(e):(e=th(e,t),e=Eh(e)),"simple-past":(e,t)=>!0===Ih(e)?xh(e):((e=th(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Ih(e)?xh(e):Eh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Nh),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=Eh(e)).replace("wants","want",Nh)};var Th=function(e,t,n){if(e.has("#Negative"))return e;if(Gh.hasOwnProperty(n))return e=Gh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Ih(e)?xh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Ch=(e,t)=>"number"==typeof t?e.eq(t):e;var Dh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Ch(this,e).map(Bc)}json(e,t){return Ch(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=ih(t),n},[])}subjects(e){return Ch(this,e).map(e=>(Bc(e),Qc(e).subject))}adverbs(e){return Ch(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Ch(this,e).filter(e=>!0!==Qc(e).plural)}isPlural(e){return Ch(this,e).filter(e=>!0===Qc(e).plural)}isImperative(e){return Ch(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return lh(e,t,n.form)})}toPresentTense(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return vh(e,t,n.form)})}toPastTense(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return dh(e,t,n.form)})}toFutureTense(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return Ph(e,t,n.form)})}toGerund(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return jh(e,t,n.form)})}conjugate(e){return Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:lh(e.clone(),t,n.form).text("normal"),PastTense:dh(e.clone(),t,n.form).text("normal"),PresentTense:vh(e.clone(),t,n.form).text("normal"),FutureTense:Ph(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 Ch(this,e).map(e=>{let t=Bc(e),n=Kc(e,t);return Th(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=Ic(this);return t=Ch(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Il),m.plugin(Zl),m.plugin(ru),m.plugin(bu),m.plugin(tc),m.plugin(ac),m.plugin(pc),m.plugin(xc),m.plugin(Dh);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]);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.0";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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&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},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var bn=function(e,t){let n=vn(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 yn={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:vn,splitAll:bn}}};var wn=function(e,t){let n=e.concat(t),r=vn(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=>fn(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 Pn=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},jn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Nn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=jn(e,this.document),this.update(e)};var En={methods:yn,api:function(e){Object.assign(e.prototype,Nn)}};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 In=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: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=xn(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 Tn=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 Gn=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 Dn=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 Cn=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=In(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=Tn(a,t.hooks);return o=Gn(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),Dn(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===Cn(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 Vn=/ /,Bn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},zn=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(),Vn.test(t))!function(e,t,n,r){let a=t.split(Vn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),zn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,r))};var Fn=$n;var Sn=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=>Hn({id:e})),t}return[Hn({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},Jn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Kn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Ln(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Wn(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Wn(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},Un=function(e){let t=Wn(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},Qn={text:Rn,txt:Rn,array:Un,flat:Un},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},Zn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Jn(e))return e.forEach(e=>this.add(qn(e),t)),this;e=qn(e);let n=Hn({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 Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 Jn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Zn(this.json);let e=Wn(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 Zn(this.json),_n(this.json,e)}debug(){return Zn(this.json),_n(this.json,"debug"),this}}const Xn=function(e){let t=Kn(e);return new g$1(t)};Xn.prototype.plugin=function(e){e(this)};var er={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const tr=function(e){if(er.hasOwnProperty(e.id))return er[e.id];if(er.hasOwnProperty(e.is))return er[e.is];let t=e._cache.parents.find(e=>er[e]);return er[t]};var nr=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:tr(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 rr=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=rr(e[t].children),e[t].not=rr(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 or={one:{setTag:Fn,unTag:Sn,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 Xn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return nr(n)}}};const ir=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sr={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||""),ir(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 ir(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 lr=function(e){Object.assign(e.prototype,sr)};var ur={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 cr=new Set(["Auxiliary","Possessive"]);var hr={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(cr.has(e)||!t.hasOwnProperty(n))return 1;if(cr.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:or,api:lr,lib:ur};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,pr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var mr=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 Cr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Or=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Vr=/['’]/,Br=/^[a-z]\.([a-z]\.)+/i,zr=/^[-+.][0-9]/,$r=/^'[0-9]{2}/;var Fr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Cr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!zr.test(e)?"'"===n&&$r.test(e)?(n="",t):"":(n="",t)))).replace(Or,a=>(r=a,Vr.test(a)&&/[sn]['’]$/.test(t)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===Br.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Sr=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 Hr=/([A-Z]\.)+[A-Z]?,?$/,Mr=/^[A-Z]\.,?$/,Lr=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var Jr=function(e){return function(e){return!0===Hr.test(e)||!0===Wr.test(e)||!0===Mr.test(e)||!0===Lr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var qr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Sr(r),r=n(r,t),r=Jr(r),e.normal=r};var Kr={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:Pr,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(Gr);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=xr(n),n=Nr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Fr(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})}}}};var Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ur={},Qr={};[[["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=>{Ur[t]=!0,Qr[t]="Abbreviation",void 0!==e[1]&&(Qr[t]=[Qr[t],e[1]])})});var _r=["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 Zr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(Zr).forEach((function(e){Zr[e].split("").forEach((function(t){Yr[t]=e}))}));const Xr=/\//,ea=/[a-z]\.[a-z]/i,ta=/[0-9]/;var na=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])),Xr.test(n)&&!ea.test(n)&&!ta.test(n)){let t=n.split(Xr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ra=/^\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"),ra.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var oa=function(e){let t=0,n=0,r=e.document;for(let e=0;eia(e,na),machine:e=>ia(e,aa),normal:e=>ia(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 ca={safe:!0,min:3};var ha={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=la},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ca,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ua(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(gn),m.extend(St),m.extend(En),m.extend(hr),m.plugin(ve),m.extend(sa),m.plugin(f),m.extend(Te),m.extend(ha),m.extend(Pe),m.extend(On);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"},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",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 ma="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ga=ma.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var fa=function(e){if(void 0!==ga[e])return ga[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 va=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=ya(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=wa(pa[e]);ja.test(e)?Object.keys(t).forEach(t=>{if(Ea[t]=e,"Noun|Verb"===e){let e=Aa(t,xa);Ea[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ia="Adjective";var Ta={beforeTags:{Determiner:Ia,Possessive:Ia},afterTags:{Adjective:Ia},beforeWords:{seem:Ia,seemed:Ia,seems:Ia,feel:Ia,feels:Ia,felt:Ia,appear:Ia,appears:Ia,appeared:Ia,also:Ia,over:Ia,under:Ia,too:Ia,it:Ia,but:Ia,still:Ia,really:Ia,quite:Ia,well:Ia,very:Ia,deeply:Ia,profoundly:Ia,extremely:Ia,so:Ia,badly:Ia,mostly:Ia,totally:Ia,awfully:Ia,rather:Ia,nothing:Ia,something:Ia,anything:Ia},afterWords:{too:Ia,also:Ia,or:Ia}};const Ga="Gerund";var Da={beforeTags:{Adverb:Ga,Preposition:Ga,Conjunction:Ga},afterTags:{Adverb:Ga,Possessive:Ga,Person:Ga,Pronoun:Ga,Determiner:Ga,Copula:Ga,Preposition:Ga,Conjunction:Ga,Comparative:Ga},beforeWords:{been:Ga,keep:Ga,continue:Ga,stop:Ga,am:Ga,be:Ga,me:Ga,began:Ga,start:Ga,starts:Ga,started:Ga,stops:Ga,stopped:Ga,help:Ga,helps:Ga,avoid:Ga,avoids:Ga,love:Ga,loves:Ga,loved:Ga,hate:Ga,hates:Ga,hated:Ga},afterWords:{you:Ga,me:Ga,her:Ga,him:Ga,them:Ga,their:Ga,it:Ga,this:Ga,there:Ga,on:Ga,about:Ga,for:Ga}};var Ca={beforeTags:Object.assign({},Ta.beforeTags,Da.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ta.afterTags,Da.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ta.beforeWords,Da.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ta.afterWords,Da.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Oa="Singular";var Va={beforeTags:{Determiner:Oa,Possessive:Oa,Acronym:Oa,Noun:Oa,Adjective:Oa,PresentTense:Oa,Gerund:Oa,PastTense:Oa,Infinitive:Oa,Date:Oa},afterTags:{Value:Oa,Modal:Oa,Copula:Oa,PresentTense:Oa,PastTense:Oa,Demonym:Oa},beforeWords:{the:Oa,with:Oa,without:Oa,of:Oa,for:Oa,any:Oa,all:Oa,on:Oa,cut:Oa,cuts:Oa,save:Oa,saved:Oa,saves:Oa,make:Oa,makes:Oa,made:Oa,minus:Oa,plus:Oa,than:Oa,another:Oa,versus:Oa,neither:Oa,favorite:Oa,best:Oa,daily:Oa,weekly:Oa,linear:Oa,binary:Oa,mobile:Oa,lexical:Oa,technical:Oa,computer:Oa,scientific:Oa,formal:Oa},afterWords:{of:Oa,system:Oa,aid:Oa,method:Oa,utility:Oa,tool:Oa,reform:Oa,therapy:Oa,philosophy:Oa,room:Oa,authority:Oa,says:Oa,said:Oa,wants:Oa,wanted:Oa}};const Ba={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var za={beforeTags:Object.assign({},Ta.beforeTags,Va.beforeTags,Ba.beforeTags),afterTags:Object.assign({},Ta.afterTags,Va.afterTags),beforeWords:Object.assign({},Ta.beforeWords,Va.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ta.afterWords,Va.afterWords)};const $a={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Fa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Sa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ha={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ma={beforeTags:Object.assign({},Ta.beforeTags,$a),afterTags:Object.assign({},Ta.afterTags,Fa),beforeWords:Object.assign({},Ta.beforeWords,Sa),afterWords:Object.assign({},Ta.afterWords,Ha)};const La="Infinitive";var Wa={beforeTags:{Modal:La,Adverb:La,Negative:La,Plural:La},afterTags:{Determiner:La,Adverb:La,Possessive:La,Preposition:La},beforeWords:{i:La,we:La,you:La,they:La,to:La,please:La,will:La,have:La,had:La,would:La,could:La,should:La,do:La,did:La,does:La,can:La,must:La,us:La,me:La,he:La,she:La,it:La,being:La},afterWords:{the:La,me:La,you:La,him:La,her:La,them:La,it:La,a:La,an:La,up:La,down:La,by:La,out:La,off:La,under:La,when:La,all:La,to:La,because:La,although:La,before:La,how:La,otherwise:La,together:La,though:La,yet:La}};const Ja={afterTags:{Noun:"Adjective",Conjunction:void 0}};var qa={beforeTags:Object.assign({},Ta.beforeTags,Wa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ta.afterTags,Wa.afterTags,Ja.afterTags),beforeWords:Object.assign({},Ta.beforeWords,Wa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ta.afterWords,Wa.afterWords,{to:void 0})};const Ka={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Ra={},Ua={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Qa={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var _a={beforeTags:Object.assign({},Da.beforeTags,Va.beforeTags,Ka),afterTags:Object.assign({},Da.afterTags,Va.afterTags,Ra),beforeWords:Object.assign({},Da.beforeWords,Va.beforeWords,Ua),afterWords:Object.assign({},Da.afterWords,Va.afterWords,Qa)};var Za={beforeTags:Object.assign({},Wa.beforeTags,Va.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Wa.afterTags,Va.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Wa.beforeWords,Va.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Wa.afterWords,Va.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Ya="Person";var Xa={beforeTags:{Honorific:Ya,Person:Ya,Preposition:Ya},afterTags:{Person:Ya,ProperNoun:Ya,Verb:Ya},ownTags:{ProperNoun:Ya},beforeWords:{hi:Ya,hey:Ya,yo:Ya,dear:Ya,hello:Ya},afterWords:{said:Ya,says:Ya,told:Ya,tells:Ya,feels:Ya,felt:Ya,seems:Ya,thinks:Ya,thought:Ya,spends:Ya,spendt:Ya,plays:Ya,played:Ya,sing:Ya,sang:Ya,learn:Ya,learned:Ya,wants:Ya,wanted:Ya}};const eo="Month",to={beforeTags:{Date:eo,Value:eo},afterTags:{Date:eo,Value:eo},beforeWords:{by:eo,in:eo,on:eo,during:eo,after:eo,before:eo,between:eo,until:eo,til:eo,sometime:eo,of:eo,this:eo,next:eo,last:eo,previous:eo,following:eo},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Xa.beforeTags,to.beforeTags),afterTags:Object.assign({},Xa.afterTags,to.afterTags),beforeWords:Object.assign({},Xa.beforeWords,to.beforeWords),afterWords:Object.assign({},Xa.afterWords,to.afterWords)};const ro={Place:"Place"},ao={Place:"Place",Abbreviation:"Place"},oo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const so={"Adj|Gerund":Ca,"Adj|Noun":za,"Adj|Past":Ma,"Adj|Present":qa,"Noun|Verb":Za,"Noun|Gerund":_a,"Person|Noun":{beforeTags:Object.assign({},Va.beforeTags,Xa.beforeTags),afterTags:Object.assign({},Va.afterTags,Xa.afterTags),beforeWords:Object.assign({},Va.beforeWords,Xa.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Va.afterWords,Xa.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Xa.beforeTags,Wa.beforeTags),afterTags:Object.assign({},Xa.afterTags,Wa.afterTags),beforeWords:Object.assign({},Xa.beforeWords,Wa.beforeWords),afterWords:Object.assign({},Xa.afterWords,Wa.afterWords)},"Person|Place":{beforeTags:Object.assign({},ro,Xa.beforeTags),afterTags:Object.assign({},ao,Xa.afterTags),beforeWords:Object.assign({},oo,Xa.beforeWords),afterWords:Object.assign({},io,Xa.afterWords)}},lo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};so["Plural|Verb"]={beforeWords:lo(so["Noun|Verb"].beforeWords,{}),afterWords:lo(so["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:lo(so["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:lo(so["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var uo=so;const co="Adjective",ho="Infinitive",po="PresentTense",mo="Singular",go="PastTense",fo="Adverb",vo="Plural",bo="Verb",yo="LastName",wo="Participle";var ko=[null,null,{ea:mo,ia:"Noun",ic:co,ly:fo,"'n":bo,"'t":bo},{oed:go,ued:go,xed:go," so":fo,"'ll":"Modal","'re":"Copula",azy:co,eer:"Noun",end:bo,ped:go,ffy:co,ify:ho,ing:"Gerund",ize:ho,ibe:ho,lar:co,mum:co,nes:po,nny:co,ous:co,que:co,rol:mo,sis:mo,ogy:mo,oid:mo,ian:mo,zes:po,eld:go,ken:wo,ven:wo,ten:wo,ect:ho,ict:ho,ign:ho,ful:co,bal:co},{amed:go,aped:go,ched:go,lked:go,rked:go,reed:go,nded:go,mned:co,cted:go,dged:go,ield:mo,akis:yo,cede:ho,chuk:yo,czyk:yo,ects:po,ends:bo,enko:yo,ette:mo,wner:mo,fies:po,fore:fo,gate:ho,gone:co,ices:vo,ints:vo,ruct:ho,ines:vo,ions:vo,less:co,llen:co,made:co,nsen:yo,oses:po,ould:"Modal",some:co,sson:yo,tion:mo,tage:"Noun",ique:mo,tive:co,tors:"Noun",vice:mo,lier:mo,fier:mo,wned:go,gent:mo,tist:mo,pist:mo,rist:mo,mist:mo,yist:mo,vist:mo,lite:mo,site:mo,rite:mo,mite:mo,bite:mo,mate:mo,date:mo,ndal:mo,vent:mo,uist:mo,gist:mo,note:mo,cide:mo,wide:co,vide:ho,ract:ho,duce:ho,pose:ho,eive:ho,lyze:ho,lyse:ho,iant:co,nary:co},{elist:mo,holic:mo,phite:mo,tized:go,urned:go,eased:go,ances:vo,bound:co,ettes:vo,fully:fo,ishes:po,ities:vo,marek:yo,nssen:yo,ology:"Noun",osome:mo,tment:mo,ports:vo,rough:co,tches:po,tieth:"Ordinal",tures:vo,wards:fo,where:fo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:mo,scent:mo,onist:mo,anist:mo,alist:mo,olist:mo,icist:mo,ounce:ho,iable:co,borne:co,gnant:co,inant:co,igent:co,atory:co,rient:mo,dient:mo},{auskas:yo,parent:mo,cedent:mo,ionary:mo,cklist:mo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:yo,borough:"Place",sdottir:yo}];const Po="Adjective";var Ao=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Po,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Po,tele:"Noun","pro-":Po,"mis-":"Verb","dis-":"Verb","pre-":Po},{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:Po,radio:"Noun",tetra:"Noun","omni-":Po,"post-":Po},{pseudo:Po,"extra-":Po,"hyper-":Po,"inter-":Po,"intra-":Po,"deca-":Po},{electro:"Noun"}];const jo="Adjective",No="Infinitive",Eo="PresentTense",xo="Singular",Io="PastTense",To="Expression",Go="LastName";var Do={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Go],[/.[^aeiou]ica$/,xo,"harmonica"],[/^([hyj]a+)+$/,To,"haha"]],c:[[/.[^aeiou]ic$/,jo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Io,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Io,"rammed"],[/.[aeiou][sg]hed$/,Io,"gushed"],[/.[aeiou]red$/,Io,"hired"],[/.[aeiou]r?ried$/,Io,"hurried"],[/[^aeiou]ard$/,xo,"steward"],[/[aeiou][^aeiou]id$/,jo,""],[/.[vrl]id$/,jo,"livid"],[/..led$/,Io,"hurled"],[/.[iao]sed$/,Io,""],[/[aeiou]n?[cs]ed$/,Io,""],[/[aeiou][rl]?[mnf]ed$/,Io,""],[/[aeiou][ns]?c?ked$/,Io,"bunked"],[/[aeiou]gned$/,Io],[/[aeiou][nl]?ged$/,Io],[/.[tdbwxyz]ed$/,Io],[/[^aeiou][aeiou][tvx]ed$/,Io],[/.[cdflmnprstv]ied$/,Io,"emptied"]],e:[[/.[lnr]ize$/,No,"antagonize"],[/.[^aeiou]ise$/,No,"antagonise"],[/.[aeiou]te$/,No,"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$/,Go,"..ovich"],[/^ug?h+$/,To,"ughh"],[/^uh[ -]?oh$/,To,"uhoh"],[/[a-z]-ish$/,jo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Go,"polish-male"]],k:[[/^(k){2}$/,To,"kkkk"]],l:[[/.[gl]ial$/,jo,"familial"],[/.[^aeiou]ful$/,jo,"fitful"],[/.[nrtumcd]al$/,jo,"natal"],[/.[^aeiou][ei]al$/,jo,"familial"]],m:[[/.[^aeiou]ium$/,xo,"magnesium"],[/[^aeiou]ism$/,xo,"schism"],[/^[hu]m+$/,To,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,jo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,To,"noooo"],[/^(yo)+$/,To,"yoo"],[/^wo{2,}[pt]?$/,To,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,xo],[/[^i]fer$/,No],[/.[^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$/,Eo],[/.[rln]ates$/,Eo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,xo],[/.[aeiou]sks$/,Eo],[/.[aeiou]kes$/,Eo],[/[aeiou][^aeiou]is$/,xo],[/[a-z]'s$/,"Noun"],[/^yes+$/,To]],v:[[/.[^aeiou][ai][kln]ov$/,Go]],y:[[/.[cts]hy$/,jo],[/.[st]ty$/,jo],[/.[tnl]ary$/,jo],[/.[oe]ry$/,xo],[/[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$/,xo]]};const Co="Verb",Oo="Noun";var Vo={leftTags:[["Adjective",Oo],["Possessive",Oo],["Determiner",Oo],["Adverb",Co],["Pronoun",Co],["Value",Oo],["Ordinal",Oo],["Modal",Co],["Superlative",Oo],["Demonym",Oo],["Honorific","Person"]],leftWords:[["i",Co],["first",Oo],["it",Co],["there",Co],["not",Co],["because",Oo],["if",Oo],["but",Oo],["who",Co],["this",Oo],["his",Oo],["when",Oo],["you",Co],["very","Adjective"],["old",Oo],["never",Co],["before",Oo],["a","Singular"],["the",Oo],["been",Co]],rightTags:[["Copula",Oo],["PastTense",Oo],["Conjunction",Oo],["Modal",Oo]],rightWords:[["there",Co],["me",Co],["man","Adjective"],["only",Co],["him",Co],["it",Co],["were",Oo],["took",Oo],["himself",Co],["went",Oo],["who",Oo],["jr","Person"]]},Bo={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"},Fo={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"},So={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 Ho=/^.([0-9]+)/;var Mo=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(Ho);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Ho,"")}(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},Wo=/^([0-9]+)/,Jo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Wo);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Wo,"")]}(n[0],n[1])})};var qo=function(e={}){return(e=Object.assign({},e)).rules=Jo(e.rules),e.rules=Lo(e.rules),e.rev&&(e.rev=Jo(e.rev),e.rev=Lo(e.rev)),e.exceptions=Jo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Ko=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 Ro=qo({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"}),Uo=qo(Fo),Qo=qo(zo),_o=qo($o),Zo=Ko(Ro),Yo=Ko(Uo),Xo=Ko(Qo),ei=Ko(_o),ti=qo(Bo),ni=qo(So);var ri={fromPast:Ro,fromPresent:Uo,fromGerund:Qo,fromParticiple:_o,toPast:Zo,toPresent:Yo,toGerund:Xo,toParticiple:ei,toComparative:ti,toSuperlative:ni,fromComparative:Ko(ti),fromSuperlative:Ko(ni)},ai=["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),{}),oi=[[/([^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 ii=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(si[t].forEach(n=>e[n]=t),e),{});var li=si;var ui=function(e){let t=e.substring(e.length-3);if(!0===li.hasOwnProperty(t))return li[t];let n=e.substring(e.length-2);return!0===li.hasOwnProperty(n)?li[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ci={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=ui(e)),ci.hasOwnProperty(e))c=ci[e];else if("Participle"===n)c=Mo(l,i);else if("PastTense"===n)c=Mo(l,r);else if("PresentTense"===n)c=Mo(l,a);else{if("Gerund"!==n)return e;c=Mo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var di=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:Mo(i,n),PresentTense:Mo(i,r),Gerund:Mo(i,a),FutureTense:"will "+e},u=Mo(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 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 mi="ically",gi=new Set(["analyt"+mi,"chem"+mi,"class"+mi,"clin"+mi,"crit"+mi,"ecolog"+mi,"electr"+mi,"empir"+mi,"frant"+mi,"grammat"+mi,"ident"+mi,"ideolog"+mi,"log"+mi,"mag"+mi,"mathemat"+mi,"mechan"+mi,"med"+mi,"method"+mi,"method"+mi,"mus"+mi,"phys"+mi,"phys"+mi,"polit"+mi,"pract"+mi,"rad"+mi,"satir"+mi,"statist"+mi,"techn"+mi,"technolog"+mi,"theoret"+mi,"typ"+mi,"vert"+mi,"whims"+mi]),fi=[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"}],vi=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"]),bi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var yi=function(e){return e.endsWith("ly")?gi.has(e)?e.replace(/ically/,"ical"):vi.has(e)?null:bi.hasOwnProperty(e)?bi[e]:pi(e,fi)||e:null};const wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ki={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Pi=function(e){if(ki.hasOwnProperty(e))return ki[e];let t=pi(e,wi);return t||e+"ly"};const Ai=[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"},Ni=new Set(["terrible","annoying"]);const Ei=function(e,t){const n=t.two.models.toSuperlative;return Mo(e,n)},xi=function(e,t){const n=t.two.models.toComparative;return Mo(e,n)};var Ii={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 Ti={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===Ii.hasOwnProperty(i)&&Ii[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Aa,nounToSingular:ii,verbToInfinitive:hi,getTense:ui,verbConjugate:di,adjToSuperlative:Ei,adjToComparative:xi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Mo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Mo(e,n)},advToAdjective:yi,adjToAdverb:Pi,adjToNoun:function(e){if(ji.hasOwnProperty(e))return ji[e];if(Ni.has(e))return null;let t=pi(e,Ai);return t||e+"ness"}}}};var Gi=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 Di=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Ci=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=Di(n,"Infinitive","PastTense"),Object.assign(s,l),l=Di(r,"Infinitive","Verb"),Object.assign(s,l),l=Di(a,"Infinitive","Gerund"),Object.assign(s,l),l=Di(o,"Adjective","Superlative"),Object.assign(s,l),l=Di(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Oi={two:{models:ri}};const Vi={"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"},Bi=function(e,t){const n={model:t,methods:Ti};let{lex:r,_multi:a}=Ti.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},zi=function(e,t,n){let r=di(e,Oi);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]=Vi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||zi(a,r,!1),"Adj|Present"===o&&(zi(a,r,!0),function(e,t,n){let r=Ei(e,n);t[r]=t[r]||"Superlative";let a=xi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=hi(a,Oi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=hi(a,Oi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Bi(n,t)};let Fi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:da,models:ri,suffixPatterns:ko,prefixPatterns:Ao,endsWith:Do,neighbours:Vo,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:Ea,clues:uo,uncountable:{},orgWords:ai}};Fi=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=Bi(e.one.lexicon,e)).one.lexicon,e),e=$i(e.two.switches,e),e=Ci(e),e=Gi(e)}(Fi);var Si=Fi;const Hi=/^(under|over|mis|re|un|dis|semi)-?/;var Mi=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(Hi.test(a.normal)){let e=a.normal.replace(Hi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Li=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 Wi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Ji=new Set(["formulas","koalas","israelis","menus"]),qi=["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 Ki=function(e){if(!e||e.length<=3)return!1;if(Ji.has(e))return!0;let t=e[e.length-1];return Wi.hasOwnProperty(t)?Wi[t].find(t=>e.endsWith(t)):"s"===t&&!qi.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Ui=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Ki(e.normal)?Li(e,"Plural","3-plural-guess"):Li(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ui(e.normal);t&&Li(e,t,"3-verb-tense-guess")}}(r)};const Qi=/^\p{Lu}[\p{Ll}'’]/u,_i=/[0-9]/,Zi=["Date","Month","WeekDay","Unit"],Yi=/^[IVXLCDM]{2,}$/,Xi=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,es={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===Qi.test(o)&&!1===_i.test(o)?Zi.find(e=>r.tags.has(e))?null:(Ui(e,t,n),r.tags.has("Noun")||r.tags.clear(),Li(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Yi.test(o)&&Xi.test(o)&&!es[r.normal]?(Li(r,"RomanNumeral","2-xvii"),!0):null};const ns=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 rs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ns(r.normal,n.two.suffixPatterns);if(null!==e)return Li(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ns(r.implicit,n.two.suffixPatterns),null!==e))return Li(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const as=/['‘’‛‵′`´]/,os=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 Li(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ls=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"]),us=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ls.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},cs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},hs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ds=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(us(a)||us(o))return Li(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(cs(a)||cs(o))return Li(n,"Year","2-tagYear-close");if(hs(e[t-2])||hs(e[t+2]))return Li(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 Li(n,"Year","2-tagYear-noun")}}}return null};const ps=/^[A-Z]('s|,)?$/,ms=/^[A-Z-]+$/,gs=/([A-Z]\.)+[A-Z]?,?$/,fs=/[A-Z]{2,}('s|,)?$/,vs=/([a-z]\.)+[a-z]\.?$/,bs={I:!0,A:!0};var ys=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===ms.test(n)||n.length>5||bs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==gs.test(n)&&!0!==vs.test(n)&&!0!==ps.test(n)&&!0!==fs.test(n))}(r,n)?(r.tags.clear(),Li(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!bs.hasOwnProperty(r.text)&&ps.test(r.text)?(r.tags.clear(),Li(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Li(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&ms.test(r.text)&&r.text.length<=6?(Li(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},ks=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ps=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||ks(e[t-1],r),l=l||ks(e[t+1],i),l)return Li(s,l,"3-[neighbour]"),Ui(e,t,n),e[t].confidence=.2,!0}return null};const As=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]&&As(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&As(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Ns=function(e,t,n){0===e[t].tags.size&&(Li(e[t],"Noun","3-[fallback]"),Ui(e,t,n),e[t].confidence=.1)};const Es=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,xs=(e,t,n)=>0!==t||e[1]?null:n;var Is={"Adj|Gerund":(e,t)=>Es(e,t),"Adj|Noun":(e,t)=>Es(e,t),"Adj|Past":(e,t)=>Es(e,t),"Adj|Present":(e,t)=>Es(e,t),"Noun|Gerund":(e,t)=>Es(e,t),"Noun|Verb":(e,t)=>Es(e,t)||xs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Es(e,t)||xs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Es(e,t),"Person|Verb":(e,t)=>0!==t&&Es(e,t)};const Ts="undefined"!=typeof process&&process.env?process.env:self.env||{},Gs=/^(under|over|mis|re|un|dis|semi)-?/,Ds=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ts.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Cs=(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&&Ts.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Os={tagSwitch:Mi,checkSuffix:rs,checkRegex:is,checkCase:ts,checkPrefix:ss,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")&&(Li(o,"Verb","3-[prefix]"),Li(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Li(o,"Adjective","3-[prefix]"),Li(o,"Prefix","3-[prefix]")))},checkYear:ds},Vs={checkAcronym:ys,neighbours:Ps,orgWords:js,nounFallback:Ns,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(Gs.test(l)&&!o[l]&&(l=l.replace(Gs,"")),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=Ds(e[t+1],n.afterWords);return o=o||Ds(e[t-1],n.beforeWords),o=o||Cs(e[t-1],n.beforeTags,a),o=o||Cs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Is[o]&&(u=Is[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ts.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Bs=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 Fs={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 Ss={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 _s=/'/;var Zs=function(e,t){let n=e[t].normal.split(_s)[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 Ys=/'/;var Xs=function(e,t){let n=e[t].normal.split(Ys)[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 el=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 tl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},nl={in:!0,by:!0,for:!0};var rl=(e,t)=>{let n=e[t];if(tl.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===nl[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 al=/'/,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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},il={d:(e,t)=>Xs(e,t),t:(e,t)=>el(e,t),s:(e,t,n)=>rl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Zs(e,t)},sl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ll={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===al.test(r[o].normal)&&([,i]=r[o].normal.split(al));let s=null;il.hasOwnProperty(i)&&(s=il[i](r,o,t)),s&&(s=sl(s,e),Qs(n,[a,o],s),ol(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=Us.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=Rs},hooks:["contractionTwo"]};const ul="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const cl=["i","we","they"];let hl=[].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:ul+" #Person",tag:"Person",reason:"randy-smith"},{match:ul+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${ul}]`,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:cl,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:cl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:cl,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 dl=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(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;dl=dl||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(dl),e.uncache(),e}},model:{two:{matches:hl}},hooks:["postTagger"]};var ml=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")?ml(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=gl}};m.plugin(Js),m.plugin(ll),m.plugin(pl),m.plugin(fl);var vl=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 bl=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 yl={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 Il={compute:{chunks:function(e){const{document:t,world:n}=e;wl(t),kl(t),jl(e,t,n),El(t),xl(t)}},api:function(e){e.prototype.chunks=bl,e.prototype.clauses=vl},hooks:["chunks"]};const Tl=/'s$/;var Gl=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(Tl,""),e.normal=e.normal.replace(Tl,"")})}),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 Dl=/\(/,Cl=/\)/,Ol=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Dl,"");let t=e[e.length-1];t.post=t.post.replace(Cl,"")}),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 Bl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},zl=RegExp("("+Object.keys(Bl).join("|")+")"),$l=RegExp("("+Object.values(Bl).join("|")+")"),Fl=function(e,t){const n=e[t].pre.match(zl)[0]||"";if(!n||!Bl[n])return null;const r=Bl[n];for(;t{e[0].pre=e[0].pre.replace(zl,"");let t=e[e.length-1];t.post=t.post.replace($l,"")})}(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 Hl=/\./g;var Ml=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(Hl,""),e.normal=e.normal.replace(Hl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Hl,""),e.normal=e.normal.replace(Hl,""),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 Ll=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 Wl=(e,t)=>"number"==typeof t?e.eq(t):e,Jl=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 ql=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=Jl(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 Wl(this,e).map(e=>{let n=Jl(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=Jl(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=Jl(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=Jl(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Wl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Wl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Wl(t,e),new Adjectives(t.document,t.pointer)}};const Kl=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},Rl=[["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 Ul=[["emojis","emoji"],["atmentions","atMentions"]];var Ql=function(e){Rl.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=Kl,Ul.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},_l={api:function(e){Ql(e),Gl(e),Vl(e),Sl(e),ql(e),Ll(e),Ml(e)}};const Zl=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var Yl={case:e=>{Zl(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Zl(e,e=>e.text=n(e.text,t))},whitespace:e=>{Zl(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=>{Zl(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 Xl=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),eu="unicode|punctuation|whitespace|acronyms",tu="|case|contractions|parentheses|quotations|emoji|honorifics",nu={light:Xl(eu),medium:Xl(eu+tu),heavy:Xl(eu+tu+"|possessives|adverbs|nouns|verbs")};var ru={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=nu[e]),Object.keys(e).forEach(t=>{Yl.hasOwnProperty(t)&&Yl[t](this,e[t])}),this}}};var au=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 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 lu=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:su(e,t),isSubordinate:iu(e),root:t}};const uu=e=>e.text(),cu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),hu=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var du=function(e){let t=lu(e);return{root:uu(t.root),number:hu(t.number),determiner:uu(t.determiner),adjectives:cu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const pu={tags:!0};var mu=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,pu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",pu),e};const gu={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,gu).tag("Singular","toPlural"),e};const vu=(e,t)=>"number"==typeof t?e.eq(t):e;var bu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return vu(this,e).map(lu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=du(t)),n},[])}isPlural(e){let t=this.filter(e=>lu(e).isPlural);return vu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=lu(e).adjectives;n.found&&(t=t.concat(n))}),vu(t,e)}toPlural(e){return vu(this,e).map(e=>mu(e,lu(e)))}toSingular(e){return vu(this,e).map(e=>{let t=lu(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=au(this);return t=vu(t,e),new Nouns(this.document,t.pointer)}}};var yu=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(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};var Au=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 Nu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Eu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},xu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Iu=function(e){if(!0===Eu.hasOwnProperty(e))return Eu[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=Gu(n),r=Gu(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:Gu(n);let a=r.text("reduced");return Tu.test(a)&&(a=a.replace(Tu,""),r=r.replaceWith(a)),r=Du.hasOwnProperty(a)?Du[a]:Gu(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:Gu(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 Ou=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 Vu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Bu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],zu=[[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"]],$u=function(e){let t=[];if(e>100)return t;for(let n=0;n=Vu[n][1]&&(e-=Vu[n][1],t.push(Vu[n][0]));return Bu[e]&&t.push(Bu[e]),t};var Fu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ou(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return zu.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($u(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=Ou(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 Su=function(e){if(!e.numerator||!e.denominator)return"";return`${Fu({num:e.numerator})} out of ${Fu({num:e.denominator})}`};const Hu={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 Mu=e=>{let t=Fu(e).split(" "),n=t[t.length-1];return Hu.hasOwnProperty(n)?t[t.length-1]=Hu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Lu=function(e){if(!e.numerator||!e.denominator)return"";let t=Fu({num:e.numerator}),n=Mu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Wu=(e,t)=>"number"==typeof t?e.eq(t):e;var Ju=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Wu(this,e).map(Cu)}get(e){return Wu(this,e).map(Cu)}json(e){return Wu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Cu(t);return n.fraction=r,n},[])}toDecimal(e){return Wu(this,e).forEach(e=>{let{decimal:t}=Cu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Wu(this,e).forEach(e=>{let t=Cu(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 Wu(this,e).forEach(e=>{let t=Cu(e),n=Lu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Wu(this,e).forEach(e=>{let t=Cu(e),n=Su(t);e.replaceWith(n)}),this}toPercentage(e){return Wu(this,e).forEach(e=>{let{decimal:t}=Cu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=yu(this);return t=Wu(t,e),new Fractions(this.document,t.pointer)}};const qu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Ku=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("("+qu+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+qu+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+qu+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+qu+")"));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) (${qu})`),r=e.has("("+qu+") #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("("+qu+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+qu+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Ru=function(e){if("string"==typeof e)return{num:Iu(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=Cu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Iu(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 Uu=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=Ou(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Qu={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},_u={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var Zu=function(e){let t={suffix:"",prefix:e.prefix};return Qu.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Qu[e.prefix],t.prefix=""),_u.hasOwnProperty(e.suffix)&&(t.suffix+=" "+_u[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Yu=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Zu(e);return t+Mu(e)+n}if("Ordinal"===t)return e.prefix+Uu(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Zu(e);return t+Fu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Xu=(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 Xu(this,e).map(Ru)}get(e){return Xu(this,e).map(Ru).map(e=>e.num)}json(e){return Xu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ru(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=Ru(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Yu(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=Ru(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Yu(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=>Ru(t).num===e)}greaterThan(e){return this.filter(t=>Ru(t).num>e)}lessThan(e){return this.filter(t=>Ru(t).num{let r=Ru(n).num;return r>e&&r{let n=Ru(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=Yu(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=Ru(e).num);let t=this.map(t=>{let n=Ru(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=Yu(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=Ku(this);return t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Ku(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Ku(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var tc={api:function(e){Ju(e),ec(e)}};const nc={people:!0,emails:!0,phoneNumbers:!0,places:!0},rc=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 ac={api:function(e){e.prototype.redact=rc}};var 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))})};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 sc=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 lc=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 uc=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 hc=function(e){return e.verbs().toInfinitive(),e};const dc=(e,t)=>"number"==typeof t?e.eq(t):e;var pc={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}=sc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return dc(this,e).map(e=>(sc(e),lc(e)))}toPresentTense(e){return dc(this,e).map(e=>(sc(e),uc(e)))}toFutureTense(e){return dc(this,e).map(e=>(sc(e),e=cc(e)))}toInfinitive(e){return dc(this,e).map(e=>(sc(e),hc(e)))}toNegative(e){return dc(this,e).map(e=>(sc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return dc(this,e).map(e=>(sc(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 dc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return dc(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=dc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=oc(this);return dc(t,e)}};Object.assign(e.prototype,t)}};var mc=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 fc="male",vc="female",bc={mr:fc,mrs:vc,miss:vc,madam:vc,king:fc,queen:vc,duke:fc,duchess:vc,baron:fc,baroness:vc,count:fc,countess:vc,prince:fc,princess:vc,sire:fc,dame:vc,lady:vc,ayatullah:fc,congressman:fc,congresswoman:vc,"first lady":vc,mx:null};var yc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return vc;if(n.has("#MaleName"))return fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),bc.hasOwnProperty(e))return bc[e];if(/^her /.test(e))return vc;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 vc}return null};const wc=(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 wc(this,e).map(gc)}json(e){return wc(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:yc(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=mc(this);return t=wc(t,e),new People(this.document,t.pointer)}};var Pc=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 Ac=function(e){e.prototype.places=function(t){let n=Pc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var jc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Nc=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 Ec=function(e){e.prototype.topics=Nc};var xc={api:function(e){kc(e),Ac(e),jc(e),Ec(e)}};var Ic=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 Tc=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 Gc=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 Dc=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},Cc=function(e){return e.match("#Negative")},Oc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Vc=function(e){let t=e.clone();t.contractions().expand();const n=Tc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Gc(t,n),auxiliary:Dc(t,n),negative:Cc(t),phrasal:Oc(n)}};const Bc={tense:"PresentTense"},zc={conditional:!0},$c={tense:"FutureTense"},Fc={progressive:!0},Sc={tense:"PastTense"},Hc={complete:!0,progressive:!1},Mc={passive:!0},Lc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Wc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Bc]],["^wanted to #Infinitive$",[Sc]],["^will want to #Infinitive$",[$c]]],"gerund-phrase":[["^#PastTense #Gerund$",[Sc]],["^#PresentTense #Gerund$",[Bc]],["^#Infinitive #Gerund$",[Bc]],["^will #Infinitive #Gerund$",[$c]],["^have #PastTense #Gerund$",[Sc]],["^will have #PastTense #Gerund$",[Sc]]],"simple-present":[["^#PresentTense$",[Bc]],["^#Infinitive$",[Bc]]],"simple-past":[["^#PastTense$",[Sc]]],"simple-future":[["^will #Adverb? #Infinitive",[$c]]],"present-progressive":[["^(is|are|am) #Gerund$",[Bc,Fc]]],"past-progressive":[["^(was|were) #Gerund$",[Sc,Fc]]],"future-progressive":[["^will be #Gerund$",[$c,Fc]]],"present-perfect":[["^(has|have) #PastTense$",[Sc,Hc]]],"past-perfect":[["^had #PastTense$",[Sc,Hc]],["^had #PastTense to #Infinitive",[Sc,Hc]]],"future-perfect":[["^will have #PastTense$",[$c,Hc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Sc,Fc]]],"past-perfect-progressive":[["^had been #Gerund$",[Sc,Fc]]],"future-perfect-progressive":[["^will have been #Gerund$",[$c,Fc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Sc,Mc]],["^(was|were) being (#PastTense|#Participle)",[Sc,Mc]],["^(had|have) been (#PastTense|#Participle)",[Sc,Mc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Bc,Mc]],["^(is|are|am) being (#PastTense|#Participle)",[Bc,Mc]],["^has been (#PastTense|#Participle)",[Bc,Mc]]],"passive-future":[["will have been (#PastTense|#Participle)",[$c,Mc,zc]],["will be being? (#PastTense|#Participle)",[$c,Mc,zc]]],"present-conditional":[["would be #PastTense",[Bc,zc]]],"past-conditional":[["would have been #PastTense",[Sc,zc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[$c]]],"auxiliary-past":[["^did #Infinitive$",[Sc,{plural:!1}]],["^used to #Infinitive$",[Sc,Hc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Bc,Hc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Sc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Jc=[];Object.keys(Wc).map(e=>{Wc[e].forEach(t=>{Jc.push({name:e,match:t[0],data:Lc(t[1])})})});var qc=Jc;var Kc=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(),Rc(r)&&(n.remove(r),r=n.last()),Rc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Uc(t,e)}};const _c=e=>e,Zc=(e,t)=>{let n=Qc(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Yc=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Qc(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Xc=function(e,t){let n=Qc(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},th=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"),rh=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},ah=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,eh(e))};var ih=function(e){let t=Vc(e);e=e.clone().toView();const n=Kc(e,t);return{root:t.root.text(),preAdverbs:rh(t.adverbs.pre),postAdverbs:rh(t.adverbs.post),auxiliary:ah(t.auxiliary),negative:t.negative.found,prefix:ah(t.prefix),infinitive:oh(t.root),grammar:n}};const sh={tags:!0};var lh=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,sh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Xc(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const uh={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,eh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Qc(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,uh),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",uh),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}},hh={infinitive:ch.simple,"simple-present":ch.simple,"simple-past":_c,"simple-future":ch.both,"present-progressive":e=>(e.replace("are","were",uh),e.replace("(is|are|am)","was",uh),e),"past-progressive":_c,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":ch.hasHad,"past-perfect":_c,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=nh(e)),e.remove("have"),e),"present-perfect-progressive":ch.hasHad,"past-perfect-progressive":_c,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",uh),e),"passive-past":e=>(e.replace("have","had",uh),e),"passive-present":e=>(e.replace("(is|are)","was",uh),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",uh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":_c,"auxiliary-future":e=>(e.replace("(is|are|am)","was",uh),e),"auxiliary-past":_c,"auxiliary-present":e=>(e.replace("(do|does)","did",uh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",uh):(ch.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":_c,"want-infinitive":e=>(e.replace("(want|wants)","wanted",uh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ch.simple(e,t),nh(e),e)};var dh=function(e,t,n){return hh.hasOwnProperty(n)?((e=hh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const ph={tags:!0},mh=(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===Zc(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Yc(e)),o&&(e=e.replace(a,o,ph)).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,eh(a)),!1===Zc(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,ph)).not("#Particle").tag("Gerund"),e},fh={infinitive:mh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return mh(e,t);{let t=Qc(e).subject;if(Zc(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,ph)}return e},"simple-past":mh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Yc(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else mh(e,t),e=e.remove("will");return e},"present-progressive":_c,"past-progressive":(e,t)=>{let n=Yc(e);return e.replace("(were|was)",n,ph)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(mh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Qc(e).subject;return Zc(e)||n.has("i")?((e=th(e,t)).remove("had"),e):(e.replace("had","has",ph),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":_c,"past-perfect-progressive":e=>e.replace("had","has",ph),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Yc(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,ph),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":_c,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":_c,"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=Xc(e);return e.replace(t.auxiliary,n),e}return gh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":_c,"modal-infinitive":_c,"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,ph))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),mh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Zc(e)&&(n="want"),e.replace("(want|wanted|wants)",n,ph),e.remove("will"),e}};var vh=function(e,t,n){return fh.hasOwnProperty(n)?((e=fh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const bh={tags:!0},yh=(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,bh)).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,eh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,bh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},kh={infinitive:yh,"simple-present":yh,"simple-past":yh,"simple-future":_c,"present-progressive":wh,"past-progressive":wh,"future-progressive":_c,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":_c,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":_c,"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":_c,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":_c,"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":_c,"modal-past":_c,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),yh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Ph=function(e,t,n){return e.has("will")||e.has("going to")?e:kh.hasOwnProperty(n)?((e=kh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Ah={tags:!0};var jh=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=`${Yc(e)} ${s}`,e.replace(a,s,Ah)),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 Nh={tags:!0},Eh=function(e,t){let n=Xc(e);return e.prepend(n+" not"),e},xh=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)},Ih=e=>e.has("(is|was|am|are|will|were|be)"),Th={"simple-present":(e,t)=>!0===Ih(e)?xh(e):(e=th(e,t),e=Eh(e)),"simple-past":(e,t)=>!0===Ih(e)?xh(e):((e=th(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Ih(e)?xh(e):Eh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Nh),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=Eh(e)).replace("wants","want",Nh)};var Gh=function(e,t,n){if(e.has("#Negative"))return e;if(Th.hasOwnProperty(n))return e=Th[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Ih(e)?xh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Dh=(e,t)=>"number"==typeof t?e.eq(t):e;var Ch={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Dh(this,e).map(Vc)}json(e,t){return Dh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=ih(t),n},[])}subjects(e){return Dh(this,e).map(e=>(Vc(e),Qc(e).subject))}adverbs(e){return Dh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Dh(this,e).filter(e=>!0!==Qc(e).plural)}isPlural(e){return Dh(this,e).filter(e=>!0===Qc(e).plural)}isImperative(e){return Dh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return lh(e,t,n.form)})}toPresentTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return vh(e,t,n.form)})}toPastTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return dh(e,t,n.form)})}toFutureTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return Ph(e,t,n.form)})}toGerund(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return jh(e,t,n.form)})}conjugate(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:lh(e.clone(),t,n.form).text("normal"),PastTense:dh(e.clone(),t,n.form).text("normal"),PresentTense:vh(e.clone(),t,n.form).text("normal"),FutureTense:Ph(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 Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return Gh(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=Ic(this);return t=Dh(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Il),m.plugin(_l),m.plugin(ru),m.plugin(bu),m.plugin(tc),m.plugin(ac),m.plugin(pc),m.plugin(xc),m.plugin(Ch);export{m as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index 563f01a21..ef39f3704 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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;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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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 T=C,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;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 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,T,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 Q=/'/,_=new Set(["what","how","when","where","why"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e))return e.fullPointer.length>0;if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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 Ze=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 Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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&&(jt(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&&(jt(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},Ct=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)}},Tt=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},Bt=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)}},Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Tt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else if(!Ot(r))return null}else if(!Ot(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!It(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},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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},yn=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=yn(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},wn={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:yn,splitAll:vn}}},kn=function(e,t){let n=e.concat(t),a=yn(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=>bn(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},An=function(e,t){let n=yn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},jn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},In={union:function(e){e=En(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=jn(e,this.document),this.update(e)};var Gn={methods:wn,api:function(e){Object.assign(e.prototype,In)}};const Nn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(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=Nn(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},xn=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})},Cn=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)})},Tn=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},Bn=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=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 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=xn(r,t.hooks);return o=Cn(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),Tn(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===Bn(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 zn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(),zn.test(t))!function(e,t,n,a){let r=t.split(zn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Fn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,a))};var Sn=$n,Hn=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=>Jn({id:e})),t}return[Jn({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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Ln(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=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):(Wn(t=e).forEach(Jn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Wn(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},Zn=function(e){let t=Wn(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},Qn={text:Un,txt:Un,array:Zn,flat:Zn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},Xn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Jn({});return new g$1(t)}add(e,t={}){if(Kn(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 Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(this.json);let e=Wn(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 Xn(this.json),_n(this.json,e)}debug(){return Xn(this.json),_n(this.json,"debug"),this}}const ea=function(e){let t=Rn(e);return new g$1(t)};ea.prototype.plugin=function(e){e(this)};var ta={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const na=function(e){if(ta.hasOwnProperty(e.id))return ta[e.id];if(ta.hasOwnProperty(e.is))return ta[e.is];let t=e._cache.parents.find(e=>ta[e]);return ta[t]};var aa=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:na(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 ra=function(e){return e?"string"==typeof e?[e]:e:[]};var oa=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=ra(e[t].children),e[t].not=ra(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ia={one:{setTag:Sn,unTag:Hn,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=oa(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 ea(t).cache().fillDown().out("array")}(Object.assign({},t,e));return aa(n)}}};const sa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var la={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||""),sa(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 sa(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)}},ua=function(e){Object.assign(e.prototype,la)},ca={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 da=new Set(["Auxiliary","Possessive"]);var ha={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(da.has(e)||!t.hasOwnProperty(n))return 1;if(da.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:ia,api:ua,lib:ca};const ga=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ma=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var pa=function(e){let t=[],n=e.split(ma);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 Ba=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Oa=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,za=/['’]/,Va=/^[a-z]\.([a-z]\.)+/i,Fa=/^[-+.][0-9]/,$a=/^'[0-9]{2}/;var Sa=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ba,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fa.test(e)?"'"===n&&$a.test(e)?(n="",t):"":(n="",t)))).replace(Oa,r=>(a=r,za.test(r)&&/[sn]['’]$/.test(t)&&!1===za.test(n)?(a=a.replace(za,""),"'"):!0===Va.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},Ha=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 Ja=/([A-Z]\.)+[A-Z]?,?$/,Ma=/^[A-Z]\.,?$/,La=/[A-Z]{2,}('s|,)?$/,Wa=/([a-z]\.)+[a-z]\.?$/;var Ka=function(e){return function(e){return!0===Ja.test(e)||!0===Wa.test(e)||!0===Ma.test(e)||!0===La.test(e)}(e)&&(e=e.replace(/\./g,"")),e},qa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ha(a),a=n(a,t),a=Ka(a),e.normal=a},Ra={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:Aa,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(Ca);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=Na(n),n=Ia(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Sa(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})}}}},Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Za={},Qa={};[[["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=>{Za[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])})});var _a=["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 Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Ya={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){Ya[t]=e}))}));const er=/\//,tr=/[a-z]\.[a-z]/i,nr=/[0-9]/;var ar=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])),er.test(n)&&!tr.test(n)&&!nr.test(n)){let t=n.split(er);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const rr=/^\p{Letter}+-\p{Letter}+$/u;var or=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"),rr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ir=function(e){let t=0,n=0,a=e.document;for(let e=0;esr(e,ar),machine:e=>sr(e,or),normal:e=>sr(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 dr={safe:!0,min:3};var hr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ur},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},dr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=cr(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(fn),m.extend(St),m.extend(Gn),m.extend(ha),m.plugin(be),m.extend(lr),m.plugin(f),m.extend(De),m.extend(hr),m.extend(Pe),m.extend(On);var gr={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"},mr={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 pr=36,fr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",br=fr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var yr=function(e){if(void 0!==br[e])return br[e];let t=0,n=1,a=pr,r=1;for(;n=0;n--,r*=pr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},vr=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=kr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Pr(mr[e]);Ir.test(e)?Object.keys(t).forEach(t=>{if(Nr[t]=e,"Noun|Verb"===e){let e=jr(t,Dr);Nr[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 xr="Adjective";var Cr={beforeTags:{Determiner:xr,Possessive:xr},afterTags:{Adjective:xr},beforeWords:{seem:xr,seemed:xr,seems:xr,feel:xr,feels:xr,felt:xr,appear:xr,appears:xr,appeared:xr,also:xr,over:xr,under:xr,too:xr,it:xr,but:xr,still:xr,really:xr,quite:xr,well:xr,very:xr,deeply:xr,profoundly:xr,extremely:xr,so:xr,badly:xr,mostly:xr,totally:xr,awfully:xr,rather:xr,nothing:xr,something:xr,anything:xr},afterWords:{too:xr,also:xr,or:xr}};const Tr="Gerund";var Br={beforeTags:{Adverb:Tr,Preposition:Tr,Conjunction:Tr},afterTags:{Adverb:Tr,Possessive:Tr,Person:Tr,Pronoun:Tr,Determiner:Tr,Copula:Tr,Preposition:Tr,Conjunction:Tr,Comparative:Tr},beforeWords:{been:Tr,keep:Tr,continue:Tr,stop:Tr,am:Tr,be:Tr,me:Tr,began:Tr,start:Tr,starts:Tr,started:Tr,stops:Tr,stopped:Tr,help:Tr,helps:Tr,avoid:Tr,avoids:Tr,love:Tr,loves:Tr,loved:Tr,hate:Tr,hates:Tr,hated:Tr},afterWords:{you:Tr,me:Tr,her:Tr,him:Tr,them:Tr,their:Tr,it:Tr,this:Tr,there:Tr,on:Tr,about:Tr,for:Tr}},Or={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 zr="Singular";var Vr={beforeTags:{Determiner:zr,Possessive:zr,Acronym:zr,Noun:zr,Adjective:zr,PresentTense:zr,Gerund:zr,PastTense:zr,Infinitive:zr,Date:zr},afterTags:{Value:zr,Modal:zr,Copula:zr,PresentTense:zr,PastTense:zr,Demonym:zr},beforeWords:{the:zr,with:zr,without:zr,of:zr,for:zr,any:zr,all:zr,on:zr,cut:zr,cuts:zr,save:zr,saved:zr,saves:zr,make:zr,makes:zr,made:zr,minus:zr,plus:zr,than:zr,another:zr,versus:zr,neither:zr,favorite:zr,best:zr,daily:zr,weekly:zr,linear:zr,binary:zr,mobile:zr,lexical:zr,technical:zr,computer:zr,scientific:zr,formal:zr},afterWords:{of:zr,system:zr,aid:zr,method:zr,utility:zr,tool:zr,reform:zr,therapy:zr,philosophy:zr,room:zr,authority:zr,says:zr,said:zr,wants:zr,wanted:zr}};const Fr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var $r={beforeTags:Object.assign({},Cr.beforeTags,Vr.beforeTags,Fr.beforeTags),afterTags:Object.assign({},Cr.afterTags,Vr.afterTags),beforeWords:Object.assign({},Cr.beforeWords,Vr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Cr.afterWords,Vr.afterWords)};const Sr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Hr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Jr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Mr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Lr={beforeTags:Object.assign({},Cr.beforeTags,Sr),afterTags:Object.assign({},Cr.afterTags,Hr),beforeWords:Object.assign({},Cr.beforeWords,Jr),afterWords:Object.assign({},Cr.afterWords,Mr)};const Wr="Infinitive";var Kr={beforeTags:{Modal:Wr,Adverb:Wr,Negative:Wr,Plural:Wr},afterTags:{Determiner:Wr,Adverb:Wr,Possessive:Wr,Preposition:Wr},beforeWords:{i:Wr,we:Wr,you:Wr,they:Wr,to:Wr,please:Wr,will:Wr,have:Wr,had:Wr,would:Wr,could:Wr,should:Wr,do:Wr,did:Wr,does:Wr,can:Wr,must:Wr,us:Wr,me:Wr,he:Wr,she:Wr,it:Wr,being:Wr},afterWords:{the:Wr,me:Wr,you:Wr,him:Wr,her:Wr,them:Wr,it:Wr,a:Wr,an:Wr,up:Wr,down:Wr,by:Wr,out:Wr,off:Wr,when:Wr,all:Wr,to:Wr,because:Wr,although:Wr,before:Wr,how:Wr,otherwise:Wr,though:Wr,yet:Wr}};const qr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Rr={beforeTags:Object.assign({},Cr.beforeTags,Kr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Cr.afterTags,Kr.afterTags,qr.afterTags),beforeWords:Object.assign({},Cr.beforeWords,Kr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Cr.afterWords,Kr.afterWords,{to:void 0})};const Ur={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Zr={},Qr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},_r={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Xr={beforeTags:Object.assign({},Br.beforeTags,Vr.beforeTags,Ur),afterTags:Object.assign({},Br.afterTags,Vr.afterTags,Zr),beforeWords:Object.assign({},Br.beforeWords,Vr.beforeWords,Qr),afterWords:Object.assign({},Br.afterWords,Vr.afterWords,_r)},Yr={beforeTags:Object.assign({},Kr.beforeTags,Vr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Kr.afterTags,Vr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Kr.beforeWords,Vr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Kr.afterWords,Vr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ao={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ro={beforeTags:Object.assign({},to.beforeTags,ao.beforeTags),afterTags:Object.assign({},to.afterTags,ao.afterTags),beforeWords:Object.assign({},to.beforeWords,ao.beforeWords),afterWords:Object.assign({},to.afterWords,ao.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Or,"Adj|Noun":$r,"Adj|Past":Lr,"Adj|Present":Rr,"Noun|Verb":Yr,"Noun|Gerund":Xr,"Person|Noun":{beforeTags:Object.assign({},Vr.beforeTags,to.beforeTags),afterTags:Object.assign({},Vr.afterTags,to.afterTags),beforeWords:Object.assign({},Vr.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Vr.afterWords,to.afterWords)},"Person|Date":ro,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,Kr.beforeTags),afterTags:Object.assign({},to.afterTags,Kr.afterTags),beforeWords:Object.assign({},to.beforeWords,Kr.beforeWords),afterWords:Object.assign({},to.afterWords,Kr.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const go="Adjective",mo="Infinitive",po="PresentTense",fo="Singular",bo="PastTense",yo="Adverb",vo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",Eo="Modal",jo="Participle";var Io=[null,null,{ea:fo,ia:Po,ic:go,ly:yo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":yo,"'ll":Eo,"'re":"Copula",azy:go,eer:Po,end:ko,ped:bo,ffy:go,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:go,mum:go,nes:po,nny:go,ous:go,que:go,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:po,eld:bo,ken:jo,ven:jo,ten:jo,ect:mo,ict:mo,ign:mo,ful:go,bal:go},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:go,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:po,ends:ko,enko:Ao,ette:fo,wner:fo,fies:po,fore:yo,gate:mo,gone:go,ices:vo,ints:vo,ruct:mo,ines:vo,ions:vo,less:go,llen:go,made:go,nsen:Ao,oses:po,ould:Eo,some:go,sson:Ao,tion:fo,tage:Po,ique:fo,tive:go,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:go,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:go,nary:go},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:vo,bound:go,ettes:vo,fully:yo,ishes:po,ities:vo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:vo,rough:go,tches:po,tieth:"Ordinal",tures:vo,wards:yo,where:yo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:go,borne:go,gnant:go,inant:go,igent:go,atory:go,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const Go="Adjective",No="Noun",Do="Verb";var xo=[null,null,{},{neo:No,bio:No,"de-":Do,"re-":Do,"un-":Do},{anti:No,auto:No,faux:Go,hexa:No,kilo:No,mono:No,nano:No,octa:No,poly:No,semi:Go,tele:No,"pro-":Go,"mis-":Do,"dis-":Do,"pre-":Go},{anglo:No,centi:No,ethno:No,ferro:No,grand:No,hepta:No,hydro:No,intro:No,macro:No,micro:No,milli:No,nitro:No,penta:No,quasi:Go,radio:No,tetra:No,"omni-":Go,"post-":Go},{pseudo:Go,"extra-":Go,"hyper-":Go,"inter-":Go,"intra-":Go,"deca-":Go},{electro:No}];const Co="Adjective",To="Infinitive",Bo="PresentTense",Oo="Singular",zo="PastTense",Vo="Adverb",Fo="Expression",$o="Actor",So="Verb",Ho="Noun",Jo="LastName";var Mo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,Oo,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,Co]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Oo,"steward"],[/[aeiou][^aeiou]id$/,Co,""],[/.[vrl]id$/,Co,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,To,"antagonize"],[/.[^aeiou]ise$/,To,"antagonise"],[/.[aeiou]te$/,To,"bite"],[/.[^aeiou][ai]ble$/,Co,"fixable"],[/.[^aeiou]eable$/,Co,"maleable"],[/.[ts]ive$/,Co,"festive"],[/[a-z]-like$/,Co,"woman-like"]],h:[[/.[^aeiouf]ish$/,Co,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,Co,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Fo,"kkkk"]],l:[[/.[gl]ial$/,Co,"familial"],[/.[^aeiou]ful$/,Co,"fitful"],[/.[nrtumcd]al$/,Co,"natal"],[/.[^aeiou][ei]al$/,Co,"familial"]],m:[[/.[^aeiou]ium$/,Oo,"magnesium"],[/[^aeiou]ism$/,Oo,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Co,"republican"],[/[^aeiou]ician$/,$o,"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$/,Oo],[/[^i]fer$/,To],[/.[^aeiou][ao]pher$/,$o],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Co],[/[aeiou].*ist$/,Co],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Oo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,Oo],[/[a-z]'s$/,Ho],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,Co],[/.[st]ty$/,Co],[/.[tnl]ary$/,Co],[/.[oe]ry$/,Oo],[/[rdntkbhs]ly$/,Vo],[/.(gg|bb|zz)ly$/,Co],[/...lly$/,Vo],[/.[gk]y$/,Co],[/[bszmp]{2}y$/,Co],[/.[ai]my$/,Co],[/[ea]{2}zy$/,Co],[/.[^aeiou]ity$/,Oo]]};const Lo="Verb",Wo="Noun";var Ko={leftTags:[["Adjective",Wo],["Possessive",Wo],["Determiner",Wo],["Adverb",Lo],["Pronoun",Lo],["Value",Wo],["Ordinal",Wo],["Modal",Lo],["Superlative",Wo],["Demonym",Wo],["Honorific","Person"]],leftWords:[["i",Lo],["first",Wo],["it",Lo],["there",Lo],["not",Lo],["because",Wo],["if",Wo],["but",Wo],["who",Lo],["this",Wo],["his",Wo],["when",Wo],["you",Lo],["very","Adjective"],["old",Wo],["never",Lo],["before",Wo],["a","Singular"],["the",Wo],["been",Lo]],rightTags:[["Copula",Wo],["PastTense",Wo],["Conjunction",Wo],["Modal",Wo]],rightWords:[["there",Lo],["me",Lo],["man","Adjective"],["only",Lo],["him",Lo],["it",Lo],["were",Wo],["took",Wo],["himself",Lo],["went",Wo],["who",Wo],["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"},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"},Uo={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"},Zo={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"},Qo={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 _o=/^.([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(_o);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(_o,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Yo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Yo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ai=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 ri=ni({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"}),oi=ni(Zo),ii=ni(Ro),si=ni(Uo),li=ai(ri),ui=ai(oi),ci=ai(ii),di=ai(si),hi=ni(qo),gi=ni(Qo);var mi={fromPast:ri,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:di,toComparative:hi,toSuperlative:gi,fromComparative:ai(hi),fromSuperlative:ai(gi)},pi=["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),{}),fi=[[/([^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,""]],bi=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 vi=yi,wi=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 ki={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},Ei=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 ji="ically",Ii=new Set(["analyt"+ji,"chem"+ji,"class"+ji,"clin"+ji,"crit"+ji,"ecolog"+ji,"electr"+ji,"empir"+ji,"frant"+ji,"grammat"+ji,"ident"+ji,"ideolog"+ji,"log"+ji,"mag"+ji,"mathemat"+ji,"mechan"+ji,"med"+ji,"method"+ji,"method"+ji,"mus"+ji,"phys"+ji,"phys"+ji,"polit"+ji,"pract"+ji,"rad"+ji,"satir"+ji,"statist"+ji,"techn"+ji,"technolog"+ji,"theoret"+ji,"typ"+ji,"vert"+ji,"whims"+ji]),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"}],Ni=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"]),Di={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var xi=function(e){return e.endsWith("ly")?Ii.has(e)?e.replace(/ically/,"ical"):Ni.has(e)?null:Di.hasOwnProperty(e)?Di[e]:Ei(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"},{},{},{}],Ti={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Bi=function(e){if(Ti.hasOwnProperty(e))return Ti[e];let t=Ei(e,Ci);return t||e+"ly"};const Oi=[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"},Vi=new Set(["terrible","annoying"]),Fi=function(e,t){const n=t.two.models.toSuperlative;return Xo(e,n)},$i=function(e,t){const n=t.two.models.toComparative;return Xo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:Fi,adjToComparative:$i,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:xi,adjToAdverb:Bi,adjToNoun:function(e){if(zi.hasOwnProperty(e))return zi[e];if(Vi.has(e))return null;let t=Ei(e,Oi);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 Mi=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=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 Wi={two:{models:mi}};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"},qi=function(e,t){const n={model:t,methods:Hi};let{lex:a,_multi:r}=Hi.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=Ai(e,Wi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Ki[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(r,a,!1),"Adj|Present"===o&&(Ri(r,a,!0),function(e,t,n){let a=Fi(e,n);t[a]=t[a]||"Superlative";let r=$i(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(r,Wi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(r,Wi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=qi(n,t)};let Zi={one:{_multiCache:{},lexicon:Gr},two:{irregularPlurals:gr,models:mi,suffixPatterns:Io,prefixPatterns:xo,endsWith:Mo,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:Nr,clues:ho,uncountable:{},orgWords:pi}};Zi=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=Ui(e.two.switches,e),e=Li(e),e=Ji(e)}(Zi);var Qi=Zi;const _i=/^(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(_i.test(r.normal)){let e=r.normal.replace(_i,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},Yi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const rs=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(as(e.normal)?Yi(e,"Plural","3-plural-guess"):Yi(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Yi(e,t,"3-verb-tense-guess")}}(a)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^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 hs=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>a.tags.has(e))?null:(os(e,t,n),a.tags.has("Noun")||a.tags.clear(),Yi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!ds[a.normal]?(Yi(a,"RomanNumeral","2-xvii"),!0):null};const gs=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 ms=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=gs(a.normal,n.two.suffixPatterns);if(null!==e)return Yi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=gs(a.implicit,n.two.suffixPatterns),null!==e))return Yi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ps=/['‘’‛‵′`´]/,fs=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 Yi(a,e,"2-prefix"),a.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"]),ws=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")},ks=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var As=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(ws(r)||ws(o))return Yi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(ks(r)||ks(o))return Yi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Yi(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 Yi(n,"Year","2-tagYear-noun")}}}return null};const Es=/^[A-Z]('s|,)?$/,js=/^[A-Z-]+$/,Is=/([A-Z]\.)+[A-Z]?,?$/,Gs=/[A-Z]{2,}('s|,)?$/,Ns=/([a-z]\.)+[a-z]\.?$/,Ds={I:!0,A:!0};var xs=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===js.test(n)||n.length>5||Ds.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Is.test(n)&&!0!==Ns.test(n)&&!0!==Es.test(n)&&!0!==Gs.test(n))}(a,n)?(a.tags.clear(),Yi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ds.hasOwnProperty(a.text)&&Es.test(a.text)?(a.tags.clear(),Yi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Yi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&js.test(a.text)&&a.text.length<=6?(Yi(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},Ts=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: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||Ts(e[t-1],a),l=l||Ts(e[t+1],i),l)return Yi(s,l,"3-[neighbour]"),os(e,t,n),e[t].confidence=.2,!0}return null};const Os=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 a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Os(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Os(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Vs=function(e,t,n){0===e[t].tags.size&&(Yi(e[t],"Noun","3-[fallback]"),os(e,t,n),e[t].confidence=.1)};const Fs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,$s=(e,t,n)=>0!==t||e[1]?null:n;var Ss={"Adj|Gerund":(e,t)=>Fs(e,t),"Adj|Noun":(e,t)=>Fs(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)||$s(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Fs(e,t)||$s(e,t,"PresentTense"),"Person|Noun":(e,t)=>Fs(e,t),"Person|Verb":(e,t)=>0!==t&&Fs(e,t)};const Hs="undefined"!=typeof process&&process.env?process.env:self.env||{},Js=/^(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&&Hs.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&&Hs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},Ws={tagSwitch:Xi,checkSuffix:ms,checkRegex:bs,checkCase:hs,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")&&(Yi(o,"Verb","3-[prefix]"),Yi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Yi(o,"Adjective","3-[prefix]"),Yi(o,"Prefix","3-[prefix]")))},checkYear:As},Ks={checkAcronym:xs,neighbours:Bs,orgWords:zs,nounFallback:Vs,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(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,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||Ls(e[t-1],n.beforeTags,r),o=o||Ls(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Ss[o]&&(u=Ss[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Hs.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)},Zs={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: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 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 a=e[t+1];if(a&&a.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"]},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 hl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},gl={in:!0,by:!0,for:!0};var ml=(e,t)=>{let n=e[t];if(hl.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===gl[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 pl=/'/,fl=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)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>dl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},yl=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((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===pl.test(a[o].normal)&&([,i]=a[o].normal.split(pl));let s=null;bl.hasOwnProperty(i)&&(s=bl[i](a,o,t)),s&&(s=yl(s,e),il(n,[r,o],s),fl(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=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=rl},hooks:["contractionTwo"]};const wl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",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:"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: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:"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"}]),Al=null;var El={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;Al=Al||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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},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)},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},Gl={api:function(e){e.prototype.swap=Il}};return m.plugin(tl),m.plugin(vl),m.plugin(El),m.plugin(Gl),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]);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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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;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,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(I(t.update([u]).firstTerm()),k(d,u,h,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 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,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 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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),he(n[i],e,s,c.length)):de.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),he(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 Le=Object.assign({},ze,Ve,Je);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var Me=function(e){Object.assign(e.prototype,Le)};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 dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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:Me,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=/^#./,Lt=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 Mt={html:function(e){let{starts:t,ends:n}=Lt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Yt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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},yn=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=yn(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},wn={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:yn,splitAll:vn}}},kn=function(e,t){let n=e.concat(t),a=yn(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=>bn(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},An=function(e,t){let n=yn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},jn={union:function(e){e=En(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},jn.not=function(e){e=En(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},jn.difference=jn.not,jn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=In(t,this.document),this.toView(t)},jn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=In(e,this.document),this.update(e)};var Gn={methods:wn,api:function(e){Object.assign(e.prototype,jn)}};const Nn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(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=Nn(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},xn=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})},Tn=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)})},Cn=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},On=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=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 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=xn(r,t.hooks);return o=Tn(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),Cn(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===On(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 zn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(),zn.test(t))!function(e,t,n,a){let r=t.split(zn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Fn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,a))};var Sn=$n,Hn=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=>Jn({id:e})),t}return[Jn({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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Mn(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=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):(Wn(t=e).forEach(Jn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Wn(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},Qn=function(e){let t=Wn(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},Zn={text:Un,txt:Un,array:Qn,flat:Qn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Yn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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),!Xn.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)||Jn({});return new g$1(t)}add(e,t={}){if(Kn(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 Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Wn(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 Yn(this.json),_n(this.json,e)}debug(){return Yn(this.json),_n(this.json,"debug"),this}}const ea=function(e){let t=Rn(e);return new g$1(t)};ea.prototype.plugin=function(e){e(this)};var ta={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const na=function(e){if(ta.hasOwnProperty(e.id))return ta[e.id];if(ta.hasOwnProperty(e.is))return ta[e.is];let t=e._cache.parents.find(e=>ta[e]);return ta[t]};var aa=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:na(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 ra=function(e){return e?"string"==typeof e?[e]:e:[]};var oa=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=ra(e[t].children),e[t].not=ra(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ia={one:{setTag:Sn,unTag:Hn,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=oa(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 ea(t).cache().fillDown().out("array")}(Object.assign({},t,e));return aa(n)}}};const sa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var la={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||""),sa(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 sa(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)}},ua=function(e){Object.assign(e.prototype,la)},ca={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 da=new Set(["Auxiliary","Possessive"]);var ha={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(da.has(e)||!t.hasOwnProperty(n))return 1;if(da.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:ia,api:ua,lib:ca};const ga=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ma=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var pa=function(e){let t=[],n=e.split(ma);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 Oa=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ba=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,za=/['’]/,Va=/^[a-z]\.([a-z]\.)+/i,Fa=/^[-+.][0-9]/,$a=/^'[0-9]{2}/;var Sa=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Oa,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fa.test(e)?"'"===n&&$a.test(e)?(n="",t):"":(n="",t)))).replace(Ba,r=>(a=r,za.test(r)&&/[sn]['’]$/.test(t)&&!1===za.test(n)?(a=a.replace(za,""),"'"):!0===Va.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},Ha=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 Ja=/([A-Z]\.)+[A-Z]?,?$/,La=/^[A-Z]\.,?$/,Ma=/[A-Z]{2,}('s|,)?$/,Wa=/([a-z]\.)+[a-z]\.?$/;var Ka=function(e){return function(e){return!0===Ja.test(e)||!0===Wa.test(e)||!0===La.test(e)||!0===Ma.test(e)}(e)&&(e=e.replace(/\./g,"")),e},qa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ha(a),a=n(a,t),a=Ka(a),e.normal=a},Ra={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:Aa,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(Ta);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=Na(n),n=ja(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Sa(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})}}}},Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},Za={};[[["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=>{Qa[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])})});var _a=["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 Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){Xa[t]=e}))}));const er=/\//,tr=/[a-z]\.[a-z]/i,nr=/[0-9]/;var ar=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])),er.test(n)&&!tr.test(n)&&!nr.test(n)){let t=n.split(er);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const rr=/^\p{Letter}+-\p{Letter}+$/u;var or=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"),rr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ir=function(e){let t=0,n=0,a=e.document;for(let e=0;esr(e,ar),machine:e=>sr(e,or),normal:e=>sr(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 dr={safe:!0,min:3};var hr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ur},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},dr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=cr(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(fn),m.extend(St),m.extend(Gn),m.extend(ha),m.plugin(be),m.extend(lr),m.plugin(f),m.extend(De),m.extend(hr),m.extend(Pe),m.extend(Bn);var gr={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"},mr={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 pr=36,fr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",br=fr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var yr=function(e){if(void 0!==br[e])return br[e];let t=0,n=1,a=pr,r=1;for(;n=0;n--,r*=pr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},vr=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=kr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Pr(mr[e]);jr.test(e)?Object.keys(t).forEach(t=>{if(Nr[t]=e,"Noun|Verb"===e){let e=Ir(t,Dr);Nr[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 xr="Adjective";var Tr={beforeTags:{Determiner:xr,Possessive:xr},afterTags:{Adjective:xr},beforeWords:{seem:xr,seemed:xr,seems:xr,feel:xr,feels:xr,felt:xr,appear:xr,appears:xr,appeared:xr,also:xr,over:xr,under:xr,too:xr,it:xr,but:xr,still:xr,really:xr,quite:xr,well:xr,very:xr,deeply:xr,profoundly:xr,extremely:xr,so:xr,badly:xr,mostly:xr,totally:xr,awfully:xr,rather:xr,nothing:xr,something:xr,anything:xr},afterWords:{too:xr,also:xr,or:xr}};const Cr="Gerund";var Or={beforeTags:{Adverb:Cr,Preposition:Cr,Conjunction:Cr},afterTags:{Adverb:Cr,Possessive:Cr,Person:Cr,Pronoun:Cr,Determiner:Cr,Copula:Cr,Preposition:Cr,Conjunction:Cr,Comparative:Cr},beforeWords:{been:Cr,keep:Cr,continue:Cr,stop:Cr,am:Cr,be:Cr,me:Cr,began:Cr,start:Cr,starts:Cr,started:Cr,stops:Cr,stopped:Cr,help:Cr,helps:Cr,avoid:Cr,avoids:Cr,love:Cr,loves:Cr,loved:Cr,hate:Cr,hates:Cr,hated:Cr},afterWords:{you:Cr,me:Cr,her:Cr,him:Cr,them:Cr,their:Cr,it:Cr,this:Cr,there:Cr,on:Cr,about:Cr,for:Cr}},Br={beforeTags:Object.assign({},Tr.beforeTags,Or.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Tr.afterTags,Or.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Tr.beforeWords,Or.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Tr.afterWords,Or.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const zr="Singular";var Vr={beforeTags:{Determiner:zr,Possessive:zr,Acronym:zr,Noun:zr,Adjective:zr,PresentTense:zr,Gerund:zr,PastTense:zr,Infinitive:zr,Date:zr},afterTags:{Value:zr,Modal:zr,Copula:zr,PresentTense:zr,PastTense:zr,Demonym:zr},beforeWords:{the:zr,with:zr,without:zr,of:zr,for:zr,any:zr,all:zr,on:zr,cut:zr,cuts:zr,save:zr,saved:zr,saves:zr,make:zr,makes:zr,made:zr,minus:zr,plus:zr,than:zr,another:zr,versus:zr,neither:zr,favorite:zr,best:zr,daily:zr,weekly:zr,linear:zr,binary:zr,mobile:zr,lexical:zr,technical:zr,computer:zr,scientific:zr,formal:zr},afterWords:{of:zr,system:zr,aid:zr,method:zr,utility:zr,tool:zr,reform:zr,therapy:zr,philosophy:zr,room:zr,authority:zr,says:zr,said:zr,wants:zr,wanted:zr}};const Fr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var $r={beforeTags:Object.assign({},Tr.beforeTags,Vr.beforeTags,Fr.beforeTags),afterTags:Object.assign({},Tr.afterTags,Vr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Vr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,Vr.afterWords)};const Sr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Hr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Jr={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 Mr={beforeTags:Object.assign({},Tr.beforeTags,Sr),afterTags:Object.assign({},Tr.afterTags,Hr),beforeWords:Object.assign({},Tr.beforeWords,Jr),afterWords:Object.assign({},Tr.afterWords,Lr)};const Wr="Infinitive";var Kr={beforeTags:{Modal:Wr,Adverb:Wr,Negative:Wr,Plural:Wr},afterTags:{Determiner:Wr,Adverb:Wr,Possessive:Wr,Preposition:Wr},beforeWords:{i:Wr,we:Wr,you:Wr,they:Wr,to:Wr,please:Wr,will:Wr,have:Wr,had:Wr,would:Wr,could:Wr,should:Wr,do:Wr,did:Wr,does:Wr,can:Wr,must:Wr,us:Wr,me:Wr,he:Wr,she:Wr,it:Wr,being:Wr},afterWords:{the:Wr,me:Wr,you:Wr,him:Wr,her:Wr,them:Wr,it:Wr,a:Wr,an:Wr,up:Wr,down:Wr,by:Wr,out:Wr,off:Wr,under:Wr,when:Wr,all:Wr,to:Wr,because:Wr,although:Wr,before:Wr,how:Wr,otherwise:Wr,together:Wr,though:Wr,yet:Wr}};const qr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Rr={beforeTags:Object.assign({},Tr.beforeTags,Kr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Tr.afterTags,Kr.afterTags,qr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Kr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,Kr.afterWords,{to:void 0})};const Ur={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qr={},Zr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},_r={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Yr={beforeTags:Object.assign({},Or.beforeTags,Vr.beforeTags,Ur),afterTags:Object.assign({},Or.afterTags,Vr.afterTags,Qr),beforeWords:Object.assign({},Or.beforeWords,Vr.beforeWords,Zr),afterWords:Object.assign({},Or.afterWords,Vr.afterWords,_r)},Xr={beforeTags:Object.assign({},Kr.beforeTags,Vr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Kr.afterTags,Vr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Kr.beforeWords,Vr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Kr.afterWords,Vr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ao={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ro={beforeTags:Object.assign({},to.beforeTags,ao.beforeTags),afterTags:Object.assign({},to.afterTags,ao.afterTags),beforeWords:Object.assign({},to.beforeWords,ao.beforeWords),afterWords:Object.assign({},to.afterWords,ao.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Br,"Adj|Noun":$r,"Adj|Past":Mr,"Adj|Present":Rr,"Noun|Verb":Xr,"Noun|Gerund":Yr,"Person|Noun":{beforeTags:Object.assign({},Vr.beforeTags,to.beforeTags),afterTags:Object.assign({},Vr.afterTags,to.afterTags),beforeWords:Object.assign({},Vr.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Vr.afterWords,to.afterWords)},"Person|Date":ro,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,Kr.beforeTags),afterTags:Object.assign({},to.afterTags,Kr.afterTags),beforeWords:Object.assign({},to.beforeWords,Kr.beforeWords),afterWords:Object.assign({},to.afterWords,Kr.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const go="Adjective",mo="Infinitive",po="PresentTense",fo="Singular",bo="PastTense",yo="Adverb",vo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",Eo="Modal",Io="Participle";var jo=[null,null,{ea:fo,ia:Po,ic:go,ly:yo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":yo,"'ll":Eo,"'re":"Copula",azy:go,eer:Po,end:ko,ped:bo,ffy:go,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:go,mum:go,nes:po,nny:go,ous:go,que:go,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:po,eld:bo,ken:Io,ven:Io,ten:Io,ect:mo,ict:mo,ign:mo,ful:go,bal:go},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:go,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:po,ends:ko,enko:Ao,ette:fo,wner:fo,fies:po,fore:yo,gate:mo,gone:go,ices:vo,ints:vo,ruct:mo,ines:vo,ions:vo,less:go,llen:go,made:go,nsen:Ao,oses:po,ould:Eo,some:go,sson:Ao,tion:fo,tage:Po,ique:fo,tive:go,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:go,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:go,nary:go},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:vo,bound:go,ettes:vo,fully:yo,ishes:po,ities:vo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:vo,rough:go,tches:po,tieth:"Ordinal",tures:vo,wards:yo,where:yo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:go,borne:go,gnant:go,inant:go,igent:go,atory:go,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const Go="Adjective",No="Noun",Do="Verb";var xo=[null,null,{},{neo:No,bio:No,"de-":Do,"re-":Do,"un-":Do},{anti:No,auto:No,faux:Go,hexa:No,kilo:No,mono:No,nano:No,octa:No,poly:No,semi:Go,tele:No,"pro-":Go,"mis-":Do,"dis-":Do,"pre-":Go},{anglo:No,centi:No,ethno:No,ferro:No,grand:No,hepta:No,hydro:No,intro:No,macro:No,micro:No,milli:No,nitro:No,penta:No,quasi:Go,radio:No,tetra:No,"omni-":Go,"post-":Go},{pseudo:Go,"extra-":Go,"hyper-":Go,"inter-":Go,"intra-":Go,"deca-":Go},{electro:No}];const To="Adjective",Co="Infinitive",Oo="PresentTense",Bo="Singular",zo="PastTense",Vo="Adverb",Fo="Expression",$o="Actor",So="Verb",Ho="Noun",Jo="LastName";var Lo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,Bo,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,To]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Bo,"steward"],[/[aeiou][^aeiou]id$/,To,""],[/.[vrl]id$/,To,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,Co,"antagonize"],[/.[^aeiou]ise$/,Co,"antagonise"],[/.[aeiou]te$/,Co,"bite"],[/.[^aeiou][ai]ble$/,To,"fixable"],[/.[^aeiou]eable$/,To,"maleable"],[/.[ts]ive$/,To,"festive"],[/[a-z]-like$/,To,"woman-like"]],h:[[/.[^aeiouf]ish$/,To,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,To,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Fo,"kkkk"]],l:[[/.[gl]ial$/,To,"familial"],[/.[^aeiou]ful$/,To,"fitful"],[/.[nrtumcd]al$/,To,"natal"],[/.[^aeiou][ei]al$/,To,"familial"]],m:[[/.[^aeiou]ium$/,Bo,"magnesium"],[/[^aeiou]ism$/,Bo,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,To,"republican"],[/[^aeiou]ician$/,$o,"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$/,Bo],[/[^i]fer$/,Co],[/.[^aeiou][ao]pher$/,$o],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,To],[/[aeiou].*ist$/,To],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Bo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Bo],[/[a-z]'s$/,Ho],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,To],[/.[st]ty$/,To],[/.[tnl]ary$/,To],[/.[oe]ry$/,Bo],[/[rdntkbhs]ly$/,Vo],[/.(gg|bb|zz)ly$/,To],[/...lly$/,Vo],[/.[gk]y$/,To],[/[bszmp]{2}y$/,To],[/.[ai]my$/,To],[/[ea]{2}zy$/,To],[/.[^aeiou]ity$/,Bo]]};const Mo="Verb",Wo="Noun";var Ko={leftTags:[["Adjective",Wo],["Possessive",Wo],["Determiner",Wo],["Adverb",Mo],["Pronoun",Mo],["Value",Wo],["Ordinal",Wo],["Modal",Mo],["Superlative",Wo],["Demonym",Wo],["Honorific","Person"]],leftWords:[["i",Mo],["first",Wo],["it",Mo],["there",Mo],["not",Mo],["because",Wo],["if",Wo],["but",Wo],["who",Mo],["this",Wo],["his",Wo],["when",Wo],["you",Mo],["very","Adjective"],["old",Wo],["never",Mo],["before",Wo],["a","Singular"],["the",Wo],["been",Mo]],rightTags:[["Copula",Wo],["PastTense",Wo],["Conjunction",Wo],["Modal",Wo]],rightWords:[["there",Mo],["me",Mo],["man","Adjective"],["only",Mo],["him",Mo],["it",Mo],["were",Wo],["took",Wo],["himself",Mo],["went",Wo],["who",Wo],["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"},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"},Uo={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 _o=/^.([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],a=n.match(_o);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(_o,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Xo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Xo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ai=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 ri=ni({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"}),oi=ni(Qo),ii=ni(Ro),si=ni(Uo),li=ai(ri),ui=ai(oi),ci=ai(ii),di=ai(si),hi=ni(qo),gi=ni(Zo);var mi={fromPast:ri,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:di,toComparative:hi,toSuperlative:gi,fromComparative:ai(hi),fromSuperlative:ai(gi)},pi=["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),{}),fi=[[/([^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,""]],bi=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 vi=yi,wi=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 ki={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[e];else if("Participle"===n)c=Yo(l,i);else if("PastTense"===n)c=Yo(l,a);else if("PresentTense"===n)c=Yo(l,r);else{if("Gerund"!==n)return e;c=Yo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ai=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:Yo(i,n),PresentTense:Yo(i,a),Gerund:Yo(i,r),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},Ei=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",ji=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"}],Ni=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"]),Di={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var xi=function(e){return e.endsWith("ly")?ji.has(e)?e.replace(/ically/,"ical"):Ni.has(e)?null:Di.hasOwnProperty(e)?Di[e]:Ei(e,Gi)||e:null};const Ti=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ci={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Ci.hasOwnProperty(e))return Ci[e];let t=Ei(e,Ti);return t||e+"ly"};const Bi=[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"},Vi=new Set(["terrible","annoying"]),Fi=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},$i=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Ir,nounToSingular:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:Fi,adjToComparative:$i,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:xi,adjToAdverb:Oi,adjToNoun:function(e){if(zi.hasOwnProperty(e))return zi[e];if(Vi.has(e))return null;let t=Ei(e,Bi);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 Li=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Mi=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(a,"Infinitive","Verb"),Object.assign(s,l),l=Li(r,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Wi={two:{models:mi}};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"},qi=function(e,t){const n={model:t,methods:Hi};let{lex:a,_multi:r}=Hi.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=Ai(e,Wi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Ki[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(r,a,!1),"Adj|Present"===o&&(Ri(r,a,!0),function(e,t,n){let a=Fi(e,n);t[a]=t[a]||"Superlative";let r=$i(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(r,Wi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(r,Wi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=qi(n,t)};let Qi={one:{_multiCache:{},lexicon:Gr},two:{irregularPlurals:gr,models:mi,suffixPatterns:jo,prefixPatterns:xo,endsWith:Lo,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:Nr,clues:ho,uncountable:{},orgWords:pi}};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=qi(e.one.lexicon,e)).one.lexicon,e),e=Ui(e.two.switches,e),e=Mi(e),e=Ji(e)}(Qi);var Zi=Qi;const _i=/^(under|over|mis|re|un|dis|semi)-?/;var Yi=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(_i.test(r.normal)){let e=r.normal.replace(_i,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},Xi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const rs=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(as(e.normal)?Xi(e,"Plural","3-plural-guess"):Xi(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(a)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^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 hs=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>a.tags.has(e))?null:(os(e,t,n),a.tags.has("Noun")||a.tags.clear(),Xi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!ds[a.normal]?(Xi(a,"RomanNumeral","2-xvii"),!0):null};const gs=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 ms=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=gs(a.normal,n.two.suffixPatterns);if(null!==e)return Xi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=gs(a.implicit,n.two.suffixPatterns),null!==e))return Xi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ps=/['‘’‛‵′`´]/,fs=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 Xi(a,e,"2-prefix"),a.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"]),ws=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")},ks=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var As=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(ws(r)||ws(o))return Xi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(ks(r)||ks(o))return Xi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Xi(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 Xi(n,"Year","2-tagYear-noun")}}}return null};const Es=/^[A-Z]('s|,)?$/,Is=/^[A-Z-]+$/,js=/([A-Z]\.)+[A-Z]?,?$/,Gs=/[A-Z]{2,}('s|,)?$/,Ns=/([a-z]\.)+[a-z]\.?$/,Ds={I:!0,A:!0};var xs=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||Ds.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==js.test(n)&&!0!==Ns.test(n)&&!0!==Es.test(n)&&!0!==Gs.test(n))}(a,n)?(a.tags.clear(),Xi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ds.hasOwnProperty(a.text)&&Es.test(a.text)?(a.tags.clear(),Xi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Xi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Is.test(a.text)&&a.text.length<=6?(Xi(a,"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},Cs=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||Ts(e[t-1],r),l=l||Ts(e[t+1],o),l=l||Cs(e[t-1],a),l=l||Cs(e[t+1],i),l)return Xi(s,l,"3-[neighbour]"),os(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 zs=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]&&Bs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Bs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Vs=function(e,t,n){0===e[t].tags.size&&(Xi(e[t],"Noun","3-[fallback]"),os(e,t,n),e[t].confidence=.1)};const Fs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,$s=(e,t,n)=>0!==t||e[1]?null:n;var Ss={"Adj|Gerund":(e,t)=>Fs(e,t),"Adj|Noun":(e,t)=>Fs(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)||$s(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Fs(e,t)||$s(e,t,"PresentTense"),"Person|Noun":(e,t)=>Fs(e,t),"Person|Verb":(e,t)=>0!==t&&Fs(e,t)};const Hs="undefined"!=typeof process&&process.env?process.env:self.env||{},Js=/^(under|over|mis|re|un|dis|semi)-?/,Ls=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Hs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ms=(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&&Hs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},Ws={tagSwitch:Yi,checkSuffix:ms,checkRegex:bs,checkCase:hs,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")&&(Xi(o,"Verb","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Xi(o,"Adjective","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")))},checkYear:As},Ks={checkAcronym:xs,neighbours:Os,orgWords:zs,nounFallback:Vs,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(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,a){if(!n)return null;const r=a.one.tagSet;let o=Ls(e[t+1],n.afterWords);return o=o||Ls(e[t-1],n.beforeWords),o=o||Ms(e[t-1],n.beforeTags,r),o=o||Ms(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Ss[o]&&(u=Ss[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Hs.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)},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: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 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 a=e[t+1];if(a&&a.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"]},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 hl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},gl={in:!0,by:!0,for:!0};var ml=(e,t)=>{let n=e[t];if(hl.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===gl[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 pl=/'/,fl=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)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>dl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},yl=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((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===pl.test(a[o].normal)&&([,i]=a[o].normal.split(pl));let s=null;bl.hasOwnProperty(i)&&(s=bl[i](a,o,t)),s&&(s=yl(s,e),il(n,[r,o],s),fl(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=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=rl},hooks:["contractionTwo"]};const wl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",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:"#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: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:"#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: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"}]),Al=null;var El={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;Al=Al||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(Al),e.uncache(),e}},model:{two:{matches:Pl}},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)},jl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Il(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},Gl={api:function(e){e.prototype.swap=jl}};return m.plugin(tl),m.plugin(vl),m.plugin(El),m.plugin(Gl),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 a70b337ec..cb70666f5 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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=(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 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;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(j(t.update([u]).firstTerm()),k(d,u,h,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},C.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 T=C;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;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 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,T,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 Q=/'/,_=new Set(["what","how","when","where","why"]),X=new Set(["be","go","start","think","need"]),Y=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(Y.has(e[t+1].normal))return[n,"had"];if(X.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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),Z(n,[i,s],c),he(n[i],e,s,c.length)):de.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(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),he(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=Ie(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},Ce=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}},Te=e=>"[object Object]"===Object.prototype.toString.call(e),Be=e=>e&&Te(e)&&!0===e.isView,Oe=e=>e&&Te(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e).eq(0);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Be(e))return this.intersection(e);if(Oe(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}=Ce(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Be(e)){return e.fullPointer.length>0}if(Oe(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(Be(e))return this.filter(t=>t.intersection(e).found);if(Oe(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(Be(e))return this.filter(t=>!t.intersection(e).found);if(Oe(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 Ze=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 Qe=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Xe=new RegExp(/^<\s*(\S+)\s*>/),Ye=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=Xe.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=Ye(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Qe.test(e)&&(e=e.replace(Qe,(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=Ye(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=Ze(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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){jt(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){jt(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 Ct=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 Tt=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 Bt=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 Ot=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]&&Ct(e),a.implicit&&e.terms[e.t+1]&&Bt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Tt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=jt(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(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Ot(r))return null}else{if(!Dt(r))return null}else{if(!Gt(r))return null}else{if(!It(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},Qt={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"}};Qt.clean=Qt.normal,Qt.reduced=Qt.root;var _t=Qt;const Xt={text:!0,terms:!0};let Yt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Zt(e,{keepPunct:!0},!1),normal:e=>Zt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Zt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Zt(e,Yt,!1),root:e=>Zt(e,en(Yt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Xt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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 gn={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},bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=bn(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 vn={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:bn,splitAll:yn}}};var wn=function(e,t){let n=e.concat(t),a=bn(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=>fn(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 Pn=function(e,t){let n=bn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},En=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},jn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},jn.difference=jn.not,jn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},jn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=En(e,this.document),this.update(e)};var In={methods:vn,api:function(e){Object.assign(e.prototype,jn)}};const Nn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(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=Nn(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 Dn=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 xn=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 Cn=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 Tn=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=Gn(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=Dn(r,t.hooks);return o=xn(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),Cn(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===Tn(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 On=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Vn=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(),On.test(t))!function(e,t,n,a){let r=t.split(On);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Vn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,a))};var $n=Fn;var Sn=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=>Hn({id:e})),t}return[Hn({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},Wn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=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:Mn(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Ln(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Ln(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},Un=function(e){let t=Ln(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},Zn={text:Rn,txt:Rn,array:Un,flat:Un},Qn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},_n=e=>{Ln(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Wn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Hn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Ln(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Ln(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 Ln(this.json)}fillDown(){var e;return e=this.json,Ln(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 Wn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){_n(this.json);let e=Ln(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 _n(this.json),Qn(this.json,e)}debug(){return _n(this.json),Qn(this.json,"debug"),this}}const Yn=function(e){let t=qn(e);return new g$1(t)};Yn.prototype.plugin=function(e){e(this)};var ea={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ta=function(e){if(ea.hasOwnProperty(e.id))return ea[e.id];if(ea.hasOwnProperty(e.is))return ea[e.is];let t=e._cache.parents.find(e=>ea[e]);return ea[t]};var na=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:ta(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 aa=function(e){return e?"string"==typeof e?[e]:e:[]};var ra=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=aa(e[t].children),e[t].not=aa(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 oa={one:{setTag:$n,unTag:Sn,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=ra(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 Yn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return na(n)}}};const ia=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sa={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||""),ia(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 ia(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 la=function(e){Object.assign(e.prototype,sa)};var ua={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 ca=new Set(["Auxiliary","Possessive"]);var da={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(ca.has(e)||!t.hasOwnProperty(n))return 1;if(ca.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:oa,api:la,lib:ua};const ha=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ga=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var ma=function(e){let t=[],n=e.split(ga);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 Ta=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ba=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Oa=/['’]/,za=/^[a-z]\.([a-z]\.)+/i,Va=/^[-+.][0-9]/,Fa=/^'[0-9]{2}/;var $a=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ta,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Va.test(e)?"'"===n&&Fa.test(e)?(n="",t):"":(n="",t)))).replace(Ba,r=>(a=r,Oa.test(r)&&/[sn]['’]$/.test(t)&&!1===Oa.test(n)?(a=a.replace(Oa,""),"'"):!0===za.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Sa=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 Ha=/([A-Z]\.)+[A-Z]?,?$/,Ja=/^[A-Z]\.,?$/,Ma=/[A-Z]{2,}('s|,)?$/,La=/([a-z]\.)+[a-z]\.?$/;var Wa=function(e){return function(e){return!0===Ha.test(e)||!0===La.test(e)||!0===Ja.test(e)||!0===Ma.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ka=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Sa(a),a=n(a,t),a=Wa(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:Pa,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(xa);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=Na(n),n=ja(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=$a(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=>{Ka(e,t)}),n})}}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ua={},Za={};[[["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=>{Ua[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])})});var Qa=["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 _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Xa[t]=e}))}));const Ya=/\//,er=/[a-z]\.[a-z]/i,tr=/[0-9]/;var nr=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])),Ya.test(n)&&!er.test(n)&&!tr.test(n)){let t=n.split(Ya);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ar=/^\p{Letter}+-\p{Letter}+$/u;var rr=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"),ar.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var or=function(e){let t=0,n=0,a=e.document;for(let e=0;eir(e,nr),machine:e=>ir(e,rr),normal:e=>ir(e,Ka),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 cr={safe:!0,min:3};var dr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=lr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},cr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=ur(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(pn),m.extend(St),m.extend(In),m.extend(da),m.plugin(be),m.extend(sr),m.plugin(f),m.extend(De),m.extend(dr),m.extend(Pe),m.extend(Bn);var hr={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"},gr={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: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,u4;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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr03;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbXdividu0nocX;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pQx1;c1ecu7pM;ess;d1iF;er;mographLriva3;hiDlassKo1rude;m4n2opera1;tive;cre9stituGtemporary,vertab1;le;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 mr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",pr=mr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var fr=function(e){if(void 0!==pr[e])return pr[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 br=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=vr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=wr(gr[e]);Er.test(e)?Object.keys(t).forEach(t=>{if(Ir[t]=e,"Noun|Verb"===e){let e=Ar(t,Nr);Ir[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{jr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","jr[e]="Emoticon"),delete jr[""],delete jr.null,delete jr[" "];const Gr="Adjective";var Dr={beforeTags:{Determiner:Gr,Possessive:Gr},afterTags:{Adjective:Gr},beforeWords:{seem:Gr,seemed:Gr,seems:Gr,feel:Gr,feels:Gr,felt:Gr,appear:Gr,appears:Gr,appeared:Gr,also:Gr,over:Gr,under:Gr,too:Gr,it:Gr,but:Gr,still:Gr,really:Gr,quite:Gr,well:Gr,very:Gr,deeply:Gr,profoundly:Gr,extremely:Gr,so:Gr,badly:Gr,mostly:Gr,totally:Gr,awfully:Gr,rather:Gr,nothing:Gr,something:Gr,anything:Gr},afterWords:{too:Gr,also:Gr,or:Gr}};const xr="Gerund";var Cr={beforeTags:{Adverb:xr,Preposition:xr,Conjunction:xr},afterTags:{Adverb:xr,Possessive:xr,Person:xr,Pronoun:xr,Determiner:xr,Copula:xr,Preposition:xr,Conjunction:xr,Comparative:xr},beforeWords:{been:xr,keep:xr,continue:xr,stop:xr,am:xr,be:xr,me:xr,began:xr,start:xr,starts:xr,started:xr,stops:xr,stopped:xr,help:xr,helps:xr,avoid:xr,avoids:xr,love:xr,loves:xr,loved:xr,hate:xr,hates:xr,hated:xr},afterWords:{you:xr,me:xr,her:xr,him:xr,them:xr,their:xr,it:xr,this:xr,there:xr,on:xr,about:xr,for:xr}};var Tr={beforeTags:Object.assign({},Dr.beforeTags,Cr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Dr.afterTags,Cr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Dr.beforeWords,Cr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Dr.afterWords,Cr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Br="Singular";var Or={beforeTags:{Determiner:Br,Possessive:Br,Acronym:Br,Noun:Br,Adjective:Br,PresentTense:Br,Gerund:Br,PastTense:Br,Infinitive:Br,Date:Br},afterTags:{Value:Br,Modal:Br,Copula:Br,PresentTense:Br,PastTense:Br,Demonym:Br},beforeWords:{the:Br,with:Br,without:Br,of:Br,for:Br,any:Br,all:Br,on:Br,cut:Br,cuts:Br,save:Br,saved:Br,saves:Br,make:Br,makes:Br,made:Br,minus:Br,plus:Br,than:Br,another:Br,versus:Br,neither:Br,favorite:Br,best:Br,daily:Br,weekly:Br,linear:Br,binary:Br,mobile:Br,lexical:Br,technical:Br,computer:Br,scientific:Br,formal:Br},afterWords:{of:Br,system:Br,aid:Br,method:Br,utility:Br,tool:Br,reform:Br,therapy:Br,philosophy:Br,room:Br,authority:Br,says:Br,said:Br,wants:Br,wanted:Br}};const zr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Vr={beforeTags:Object.assign({},Dr.beforeTags,Or.beforeTags,zr.beforeTags),afterTags:Object.assign({},Dr.afterTags,Or.afterTags),beforeWords:Object.assign({},Dr.beforeWords,Or.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Dr.afterWords,Or.afterWords)};const Fr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},$r={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Sr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Hr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Jr={beforeTags:Object.assign({},Dr.beforeTags,Fr),afterTags:Object.assign({},Dr.afterTags,$r),beforeWords:Object.assign({},Dr.beforeWords,Sr),afterWords:Object.assign({},Dr.afterWords,Hr)};const Mr="Infinitive";var Lr={beforeTags:{Modal:Mr,Adverb:Mr,Negative:Mr,Plural:Mr},afterTags:{Determiner:Mr,Adverb:Mr,Possessive:Mr,Preposition:Mr},beforeWords:{i:Mr,we:Mr,you:Mr,they:Mr,to:Mr,please:Mr,will:Mr,have:Mr,had:Mr,would:Mr,could:Mr,should:Mr,do:Mr,did:Mr,does:Mr,can:Mr,must:Mr,us:Mr,me:Mr,he:Mr,she:Mr,it:Mr,being:Mr},afterWords:{the:Mr,me:Mr,you:Mr,him:Mr,her:Mr,them:Mr,it:Mr,a:Mr,an:Mr,up:Mr,down:Mr,by:Mr,out:Mr,off:Mr,when:Mr,all:Mr,to:Mr,because:Mr,although:Mr,before:Mr,how:Mr,otherwise:Mr,though:Mr,yet:Mr}};const Wr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Kr={beforeTags:Object.assign({},Dr.beforeTags,Lr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Dr.afterTags,Lr.afterTags,Wr.afterTags),beforeWords:Object.assign({},Dr.beforeWords,Lr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Dr.afterWords,Lr.afterWords,{to:void 0})};const qr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Rr={},Ur={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Zr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Qr={beforeTags:Object.assign({},Cr.beforeTags,Or.beforeTags,qr),afterTags:Object.assign({},Cr.afterTags,Or.afterTags,Rr),beforeWords:Object.assign({},Cr.beforeWords,Or.beforeWords,Ur),afterWords:Object.assign({},Cr.afterWords,Or.afterWords,Zr)};var _r={beforeTags:Object.assign({},Lr.beforeTags,Or.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Lr.afterTags,Or.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Lr.beforeWords,Or.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Lr.afterWords,Or.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Xr="Person";var Yr={beforeTags:{Honorific:Xr,Person:Xr,Preposition:Xr},afterTags:{Person:Xr,ProperNoun:Xr,Verb:Xr},ownTags:{ProperNoun:Xr},beforeWords:{hi:Xr,hey:Xr,yo:Xr,dear:Xr,hello:Xr},afterWords:{said:Xr,says:Xr,told:Xr,tells:Xr,feels:Xr,felt:Xr,seems:Xr,thinks:Xr,thought:Xr,spends:Xr,spendt:Xr,plays:Xr,played:Xr,sing:Xr,sang:Xr,learn:Xr,learned:Xr,wants:Xr,wanted:Xr}};const eo="Month",to={beforeTags:{Date:eo,Value:eo},afterTags:{Date:eo,Value:eo},beforeWords:{by:eo,in:eo,on:eo,during:eo,after:eo,before:eo,between:eo,until:eo,til:eo,sometime:eo,of:eo,this:eo,next:eo,last:eo,previous:eo,following:eo},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Yr.beforeTags,to.beforeTags),afterTags:Object.assign({},Yr.afterTags,to.afterTags),beforeWords:Object.assign({},Yr.beforeWords,to.beforeWords),afterWords:Object.assign({},Yr.afterWords,to.afterWords)};const ao={Place:"Place"},ro={Place:"Place",Abbreviation:"Place"},oo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const so={"Adj|Gerund":Tr,"Adj|Noun":Vr,"Adj|Past":Jr,"Adj|Present":Kr,"Noun|Verb":_r,"Noun|Gerund":Qr,"Person|Noun":{beforeTags:Object.assign({},Or.beforeTags,Yr.beforeTags),afterTags:Object.assign({},Or.afterTags,Yr.afterTags),beforeWords:Object.assign({},Or.beforeWords,Yr.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Or.afterWords,Yr.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Yr.beforeTags,Lr.beforeTags),afterTags:Object.assign({},Yr.afterTags,Lr.afterTags),beforeWords:Object.assign({},Yr.beforeWords,Lr.beforeWords),afterWords:Object.assign({},Yr.afterWords,Lr.afterWords)},"Person|Place":{beforeTags:Object.assign({},ao,Yr.beforeTags),afterTags:Object.assign({},ro,Yr.afterTags),beforeWords:Object.assign({},oo,Yr.beforeWords),afterWords:Object.assign({},io,Yr.afterWords)}},lo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};so["Plural|Verb"]={beforeWords:lo(so["Noun|Verb"].beforeWords,{}),afterWords:lo(so["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:lo(so["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:lo(so["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var uo=so;const co="Adjective",ho="Infinitive",go="PresentTense",mo="Singular",po="PastTense",fo="Adverb",bo="Plural",yo="Verb",vo="LastName",wo="Participle";var ko=[null,null,{ea:mo,ia:"Noun",ic:co,ly:fo,"'n":yo,"'t":yo},{oed:po,ued:po,xed:po," so":fo,"'ll":"Modal","'re":"Copula",azy:co,eer:"Noun",end:yo,ped:po,ffy:co,ify:ho,ing:"Gerund",ize:ho,ibe:ho,lar:co,mum:co,nes:go,nny:co,ous:co,que:co,rol:mo,sis:mo,ogy:mo,oid:mo,ian:mo,zes:go,eld:po,ken:wo,ven:wo,ten:wo,ect:ho,ict:ho,ign:ho,ful:co,bal:co},{amed:po,aped:po,ched:po,lked:po,rked:po,reed:po,nded:po,mned:co,cted:po,dged:po,ield:mo,akis:vo,cede:ho,chuk:vo,czyk:vo,ects:go,ends:yo,enko:vo,ette:mo,wner:mo,fies:go,fore:fo,gate:ho,gone:co,ices:bo,ints:bo,ruct:ho,ines:bo,ions:bo,less:co,llen:co,made:co,nsen:vo,oses:go,ould:"Modal",some:co,sson:vo,tion:mo,tage:"Noun",ique:mo,tive:co,tors:"Noun",vice:mo,lier:mo,fier:mo,wned:po,gent:mo,tist:mo,pist:mo,rist:mo,mist:mo,yist:mo,vist:mo,lite:mo,site:mo,rite:mo,mite:mo,bite:mo,mate:mo,date:mo,ndal:mo,vent:mo,uist:mo,gist:mo,note:mo,cide:mo,wide:co,vide:ho,ract:ho,duce:ho,pose:ho,eive:ho,lyze:ho,lyse:ho,iant:co,nary:co},{elist:mo,holic:mo,phite:mo,tized:po,urned:po,eased:po,ances:bo,bound:co,ettes:bo,fully:fo,ishes:go,ities:bo,marek:vo,nssen:vo,ology:"Noun",osome:mo,tment:mo,ports:bo,rough:co,tches:go,tieth:"Ordinal",tures:bo,wards:fo,where:fo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:mo,scent:mo,onist:mo,anist:mo,alist:mo,olist:mo,icist:mo,ounce:ho,iable:co,borne:co,gnant:co,inant:co,igent:co,atory:co,rient:mo,dient:mo},{auskas:vo,parent:mo,cedent:mo,ionary:mo,cklist:mo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:vo,borough:"Place",sdottir:vo}];const Po="Adjective";var Ao=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Po,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Po,tele:"Noun","pro-":Po,"mis-":"Verb","dis-":"Verb","pre-":Po},{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:Po,radio:"Noun",tetra:"Noun","omni-":Po,"post-":Po},{pseudo:Po,"extra-":Po,"hyper-":Po,"inter-":Po,"intra-":Po,"deca-":Po},{electro:"Noun"}];const Eo="Adjective",jo="Infinitive",Io="PresentTense",No="Singular",Go="PastTense",Do="Expression",xo="LastName";var Co={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,xo],[/.[^aeiou]ica$/,No,"harmonica"],[/^([hyj]a+)+$/,Do,"haha"]],c:[[/.[^aeiou]ic$/,Eo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Go,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Go,"rammed"],[/.[aeiou][sg]hed$/,Go,"gushed"],[/.[aeiou]red$/,Go,"hired"],[/.[aeiou]r?ried$/,Go,"hurried"],[/[^aeiou]ard$/,No,"steward"],[/[aeiou][^aeiou]id$/,Eo,""],[/.[vrl]id$/,Eo,"livid"],[/..led$/,Go,"hurled"],[/.[iao]sed$/,Go,""],[/[aeiou]n?[cs]ed$/,Go,""],[/[aeiou][rl]?[mnf]ed$/,Go,""],[/[aeiou][ns]?c?ked$/,Go,"bunked"],[/[aeiou]gned$/,Go],[/[aeiou][nl]?ged$/,Go],[/.[tdbwxyz]ed$/,Go],[/[^aeiou][aeiou][tvx]ed$/,Go],[/.[cdflmnprstv]ied$/,Go,"emptied"]],e:[[/.[lnr]ize$/,jo,"antagonize"],[/.[^aeiou]ise$/,jo,"antagonise"],[/.[aeiou]te$/,jo,"bite"],[/.[^aeiou][ai]ble$/,Eo,"fixable"],[/.[^aeiou]eable$/,Eo,"maleable"],[/.[ts]ive$/,Eo,"festive"],[/[a-z]-like$/,Eo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Eo,"cornish"],[/.v[iy]ch$/,xo,"..ovich"],[/^ug?h+$/,Do,"ughh"],[/^uh[ -]?oh$/,Do,"uhoh"],[/[a-z]-ish$/,Eo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,xo,"polish-male"]],k:[[/^(k){2}$/,Do,"kkkk"]],l:[[/.[gl]ial$/,Eo,"familial"],[/.[^aeiou]ful$/,Eo,"fitful"],[/.[nrtumcd]al$/,Eo,"natal"],[/.[^aeiou][ei]al$/,Eo,"familial"]],m:[[/.[^aeiou]ium$/,No,"magnesium"],[/[^aeiou]ism$/,No,"schism"],[/^[hu]m+$/,Do,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Eo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Do,"noooo"],[/^(yo)+$/,Do,"yoo"],[/^wo{2,}[pt]?$/,Do,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,No],[/[^i]fer$/,jo],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Eo],[/[aeiou].*ist$/,Eo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Io],[/.[rln]ates$/,Io],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,No],[/.[aeiou]sks$/,Io],[/.[aeiou]kes$/,Io],[/[aeiou][^aeiou]is$/,No],[/[a-z]'s$/,"Noun"],[/^yes+$/,Do]],v:[[/.[^aeiou][ai][kln]ov$/,xo]],y:[[/.[cts]hy$/,Eo],[/.[st]ty$/,Eo],[/.[tnl]ary$/,Eo],[/.[oe]ry$/,No],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Eo],[/...lly$/,"Adverb"],[/.[gk]y$/,Eo],[/[bszmp]{2}y$/,Eo],[/.[ai]my$/,Eo],[/[ea]{2}zy$/,Eo],[/.[^aeiou]ity$/,No]]};const To="Verb",Bo="Noun";var Oo={leftTags:[["Adjective",Bo],["Possessive",Bo],["Determiner",Bo],["Adverb",To],["Pronoun",To],["Value",Bo],["Ordinal",Bo],["Modal",To],["Superlative",Bo],["Demonym",Bo],["Honorific","Person"]],leftWords:[["i",To],["first",Bo],["it",To],["there",To],["not",To],["because",Bo],["if",Bo],["but",Bo],["who",To],["this",Bo],["his",Bo],["when",Bo],["you",To],["very","Adjective"],["old",Bo],["never",To],["before",Bo],["a","Singular"],["the",Bo],["been",To]],rightTags:[["Copula",Bo],["PastTense",Bo],["Conjunction",Bo],["Modal",Bo]],rightWords:[["there",To],["me",To],["man","Adjective"],["only",To],["him",To],["it",To],["were",Bo],["took",Bo],["himself",To],["went",Bo],["who",Bo],["jr","Person"]]},zo={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"},Vo={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"},Fo={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"},$o={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"},So={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 Ho=/^.([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],a=n.match(Ho);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Ho,"")}(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},Lo=/^([0-9]+)/,Wo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Lo);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(Lo,"")]}(n[0],n[1])})};var Ko=function(e={}){return(e=Object.assign({},e)).rules=Wo(e.rules),e.rules=Mo(e.rules),e.rev&&(e.rev=Wo(e.rev),e.rev=Mo(e.rev)),e.exceptions=Wo(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 Ro=Ko({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"}),Uo=Ko($o),Zo=Ko(Vo),Qo=Ko(Fo),_o=qo(Ro),Xo=qo(Uo),Yo=qo(Zo),ei=qo(Qo),ti=Ko(zo),ni=Ko(So);var ai={fromPast:Ro,fromPresent:Uo,fromGerund:Zo,fromParticiple:Qo,toPast:_o,toPresent:Xo,toGerund:Yo,toParticiple:ei,toComparative:ti,toSuperlative:ni,fromComparative:qo(ti),fromSuperlative:qo(ni)},ri=["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),{}),oi=[[/([^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 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(si[t].forEach(n=>e[n]=t),e),{});var li=si;var ui=function(e){let t=e.substring(e.length-3);if(!0===li.hasOwnProperty(t))return li[t];let n=e.substring(e.length-2);return!0===li.hasOwnProperty(n)?li[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ci={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var di=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=ui(e)),ci.hasOwnProperty(e))c=ci[e];else if("Participle"===n)c=Jo(l,i);else if("PastTense"===n)c=Jo(l,a);else if("PresentTense"===n)c=Jo(l,r);else{if("Gerund"!==n)return e;c=Jo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var hi=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:Jo(i,n),PresentTense:Jo(i,a),Gerund:Jo(i,r),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 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 mi="ically",pi=new Set(["analyt"+mi,"chem"+mi,"class"+mi,"clin"+mi,"crit"+mi,"ecolog"+mi,"electr"+mi,"empir"+mi,"frant"+mi,"grammat"+mi,"ident"+mi,"ideolog"+mi,"log"+mi,"mag"+mi,"mathemat"+mi,"mechan"+mi,"med"+mi,"method"+mi,"method"+mi,"mus"+mi,"phys"+mi,"phys"+mi,"polit"+mi,"pract"+mi,"rad"+mi,"satir"+mi,"statist"+mi,"techn"+mi,"technolog"+mi,"theoret"+mi,"typ"+mi,"vert"+mi,"whims"+mi]),fi=[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"}],bi=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"]),yi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var vi=function(e){return e.endsWith("ly")?pi.has(e)?e.replace(/ically/,"ical"):bi.has(e)?null:yi.hasOwnProperty(e)?yi[e]:gi(e,fi)||e:null};const wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ki={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Pi=function(e){if(ki.hasOwnProperty(e))return ki[e];let t=gi(e,wi);return t||e+"ly"};const Ai=[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"}],Ei={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"},ji=new Set(["terrible","annoying"]);const Ii=function(e,t){const n=t.two.models.toSuperlative;return Jo(e,n)},Ni=function(e,t){const n=t.two.models.toComparative;return Jo(e,n)};var Gi={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 Di={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===Gi.hasOwnProperty(i)&&Gi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Ar,nounToSingular:ii,verbToInfinitive:di,getTense:ui,verbConjugate:hi,adjToSuperlative:Ii,adjToComparative:Ni,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:vi,adjToAdverb:Pi,adjToNoun:function(e){if(Ei.hasOwnProperty(e))return Ei[e];if(ji.has(e))return null;let t=gi(e,Ai);return t||e+"ness"}}}};var 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 Ci=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Ti=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=Ci(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ci(a,"Infinitive","Verb"),Object.assign(s,l),l=Ci(r,"Infinitive","Gerund"),Object.assign(s,l),l=Ci(o,"Adjective","Superlative"),Object.assign(s,l),l=Ci(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Bi={two:{models:ai}};const Oi={"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"},zi=function(e,t){const n={model:t,methods:Di};let{lex:a,_multi:r}=Di.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Vi=function(e,t,n){let a=hi(e,Bi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Fi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Oi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Vi(r,a,!1),"Adj|Present"===o&&(Vi(r,a,!0),function(e,t,n){let a=Ii(e,n);t[a]=t[a]||"Superlative";let r=Ni(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=di(r,Bi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=di(r,Bi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=zi(n,t)};let $i={one:{_multiCache:{},lexicon:jr},two:{irregularPlurals:hr,models:ai,suffixPatterns:ko,prefixPatterns:Ao,endsWith:Co,neighbours:Oo,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:Ir,clues:uo,uncountable:{},orgWords:ri}};$i=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=zi(e.one.lexicon,e)).one.lexicon,e),e=Fi(e.two.switches,e),e=Ti(e),e=xi(e)}($i);var Si=$i;const Hi=/^(under|over|mis|re|un|dis|semi)-?/;var Ji=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(Hi.test(r.normal)){let e=r.normal.replace(Hi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Mi=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 Li={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Wi=new Set(["formulas","koalas","israelis","menus"]),Ki=["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(Wi.has(e))return!0;let t=e[e.length-1];return Li.hasOwnProperty(t)?Li[t].find(t=>e.endsWith(t)):"s"===t&&!Ki.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Ui=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(qi(e.normal)?Mi(e,"Plural","3-plural-guess"):Mi(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ui(e.normal);t&&Mi(e,t,"3-verb-tense-guess")}}(a)};const Zi=/^\p{Lu}[\p{Ll}'’]/u,Qi=/[0-9]/,_i=["Date","Month","WeekDay","Unit"],Xi=/^[IVXLCDM]{2,}$/,Yi=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,es={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ts=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===Zi.test(o)&&!1===Qi.test(o)?_i.find(e=>a.tags.has(e))?null:(Ui(e,t,n),a.tags.has("Noun")||a.tags.clear(),Mi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Xi.test(o)&&Yi.test(o)&&!es[a.normal]?(Mi(a,"RomanNumeral","2-xvii"),!0):null};const ns=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=ns(a.normal,n.two.suffixPatterns);if(null!==e)return Mi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=ns(a.implicit,n.two.suffixPatterns),null!==e))return Mi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const rs=/['‘’‛‵′`´]/,os=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 Mi(a,e,"2-prefix"),a.confidence=.5,!0}return null};const ls=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"]),us=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ls.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},cs=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 hs=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(us(r)||us(o))return Mi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(cs(r)||cs(o))return Mi(n,"Year","2-tagYear-close");if(ds(e[t-2])||ds(e[t+2]))return Mi(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 Mi(n,"Year","2-tagYear-noun")}}}return null};const gs=/^[A-Z]('s|,)?$/,ms=/^[A-Z-]+$/,ps=/([A-Z]\.)+[A-Z]?,?$/,fs=/[A-Z]{2,}('s|,)?$/,bs=/([a-z]\.)+[a-z]\.?$/,ys={I:!0,A:!0};var vs=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===ms.test(n)||n.length>5||ys.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==ps.test(n)&&!0!==bs.test(n)&&!0!==gs.test(n)&&!0!==fs.test(n))}(a,n)?(a.tags.clear(),Mi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!ys.hasOwnProperty(a.text)&&gs.test(a.text)?(a.tags.clear(),Mi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Mi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&ms.test(a.text)&&a.text.length<=6?(Mi(a,"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},ks=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ps=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||ws(e[t-1],r),l=l||ws(e[t+1],o),l=l||ks(e[t-1],a),l=l||ks(e[t+1],i),l)return Mi(s,l,"3-[neighbour]"),Ui(e,t,n),e[t].confidence=.2,!0}return null};const As=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 Es=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]&&As(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&As(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var js=function(e,t,n){0===e[t].tags.size&&(Mi(e[t],"Noun","3-[fallback]"),Ui(e,t,n),e[t].confidence=.1)};const Is=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ns=(e,t,n)=>0!==t||e[1]?null:n;var Gs={"Adj|Gerund":(e,t)=>Is(e,t),"Adj|Noun":(e,t)=>Is(e,t),"Adj|Past":(e,t)=>Is(e,t),"Adj|Present":(e,t)=>Is(e,t),"Noun|Gerund":(e,t)=>Is(e,t),"Noun|Verb":(e,t)=>Is(e,t)||Ns(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Is(e,t)||Ns(e,t,"PresentTense"),"Person|Noun":(e,t)=>Is(e,t),"Person|Verb":(e,t)=>0!==t&&Is(e,t)};const Ds="undefined"!=typeof process&&process.env?process.env:self.env||{},xs=/^(under|over|mis|re|un|dis|semi)-?/,Cs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Ds.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ts=(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&&Ds.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Bs={tagSwitch:Ji,checkSuffix:as,checkRegex:is,checkCase:ts,checkPrefix:ss,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")&&(Mi(o,"Verb","3-[prefix]"),Mi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Mi(o,"Adjective","3-[prefix]"),Mi(o,"Prefix","3-[prefix]")))},checkYear:hs},Os={checkAcronym:vs,neighbours:Ps,orgWords:Es,nounFallback:js,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(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=Cs(e[t+1],n.afterWords);return o=o||Cs(e[t-1],n.beforeWords),o=o||Ts(e[t-1],n.beforeTags,r),o=o||Ts(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Gs[o]&&(u=Gs[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Ds.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},zs=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 $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 Ss={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 Qs=/'/;var _s=function(e,t){let n=e[t].normal.split(Qs)[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 Xs=/'/;var Ys=function(e,t){let n=e[t].normal.split(Xs)[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 el=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 tl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},nl={in:!0,by:!0,for:!0};var al=(e,t)=>{let n=e[t];if(tl.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===nl[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 rl=/'/,ol=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)=>Ys(e,t),t:(e,t)=>el(e,t),s:(e,t,n)=>al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):_s(e,t)},sl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ll={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===rl.test(a[o].normal)&&([,i]=a[o].normal.split(rl));let s=null;il.hasOwnProperty(i)&&(s=il[i](a,o,t)),s&&(s=sl(s,e),Zs(n,[r,o],s),ol(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=Us.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=Rs},hooks:["contractionTwo"]};const ul="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const cl=["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:"[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:"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:ul+" #Person",tag:"Person",reason:"randy-smith"},{match:ul+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${ul}]`,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:"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:cl,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:cl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:cl,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 hl=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;hl=hl||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(hl),e.uncache(),e}},model:{two:{matches:dl}},hooks:["postTagger"]};var ml=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 pl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?ml(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 fl={api:function(e){e.prototype.swap=pl}};m.plugin(Ws),m.plugin(ll),m.plugin(gl),m.plugin(fl);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]);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.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=(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 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,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}};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 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 Le=Object.assign({},ze,Ve,Je);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var Me=function(e){Object.assign(e.prototype,Le)};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:Me,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=/^#./,Lt=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 Mt={html:function(e){let{starts:t,ends:n}=Lt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Yt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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 gn={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},bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=bn(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 vn={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:bn,splitAll:yn}}};var wn=function(e,t){let n=e.concat(t),a=bn(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=>fn(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 Pn=function(e,t){let n=bn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},En=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},In={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},In.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=En(e,this.document),this.update(e)};var jn={methods:vn,api:function(e){Object.assign(e.prototype,In)}};const Nn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(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=Nn(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 Dn=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 xn=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 Tn=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 Cn=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=Gn(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=Dn(r,t.hooks);return o=xn(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),Tn(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===Cn(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 Bn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Vn=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(),Bn.test(t))!function(e,t,n,a){let r=t.split(Bn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Vn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,a))};var $n=Fn;var Sn=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=>Hn({id:e})),t}return[Hn({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},Wn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=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:Ln(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Mn(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Mn(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},Un=function(e){let t=Mn(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},Qn={text:Rn,txt:Rn,array:Un,flat:Un},Zn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},_n=e=>{Mn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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=Kn(e),!Yn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Wn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Hn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Mn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Mn(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 Mn(this.json)}fillDown(){var e;return e=this.json,Mn(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 Wn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){_n(this.json);let e=Mn(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 _n(this.json),Zn(this.json,e)}debug(){return _n(this.json),Zn(this.json,"debug"),this}}const Xn=function(e){let t=qn(e);return new g$1(t)};Xn.prototype.plugin=function(e){e(this)};var ea={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ta=function(e){if(ea.hasOwnProperty(e.id))return ea[e.id];if(ea.hasOwnProperty(e.is))return ea[e.is];let t=e._cache.parents.find(e=>ea[e]);return ea[t]};var na=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:ta(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 aa=function(e){return e?"string"==typeof e?[e]:e:[]};var ra=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=aa(e[t].children),e[t].not=aa(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 oa={one:{setTag:$n,unTag:Sn,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=ra(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 Xn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return na(n)}}};const ia=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sa={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||""),ia(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 ia(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 la=function(e){Object.assign(e.prototype,sa)};var ua={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 ca=new Set(["Auxiliary","Possessive"]);var ha={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(ca.has(e)||!t.hasOwnProperty(n))return 1;if(ca.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:oa,api:la,lib:ua};const da=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ga=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var ma=function(e){let t=[],n=e.split(ga);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 Ca=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Oa=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ba=/['’]/,za=/^[a-z]\.([a-z]\.)+/i,Va=/^[-+.][0-9]/,Fa=/^'[0-9]{2}/;var $a=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ca,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Va.test(e)?"'"===n&&Fa.test(e)?(n="",t):"":(n="",t)))).replace(Oa,r=>(a=r,Ba.test(r)&&/[sn]['’]$/.test(t)&&!1===Ba.test(n)?(a=a.replace(Ba,""),"'"):!0===za.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Sa=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 Ha=/([A-Z]\.)+[A-Z]?,?$/,Ja=/^[A-Z]\.,?$/,La=/[A-Z]{2,}('s|,)?$/,Ma=/([a-z]\.)+[a-z]\.?$/;var Wa=function(e){return function(e){return!0===Ha.test(e)||!0===Ma.test(e)||!0===Ja.test(e)||!0===La.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ka=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Sa(a),a=n(a,t),a=Wa(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:Pa,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(xa);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=Na(n),n=Ia(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=$a(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=>{Ka(e,t)}),n})}}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ua={},Qa={};[[["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=>{Ua[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])})});var Za=["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 _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Ya={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Ya[t]=e}))}));const Xa=/\//,er=/[a-z]\.[a-z]/i,tr=/[0-9]/;var nr=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])),Xa.test(n)&&!er.test(n)&&!tr.test(n)){let t=n.split(Xa);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ar=/^\p{Letter}+-\p{Letter}+$/u;var rr=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"),ar.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var or=function(e){let t=0,n=0,a=e.document;for(let e=0;eir(e,nr),machine:e=>ir(e,rr),normal:e=>ir(e,Ka),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 cr={safe:!0,min:3};var hr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=lr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},cr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=ur(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(pn),m.extend(St),m.extend(jn),m.extend(ha),m.plugin(be),m.extend(sr),m.plugin(f),m.extend(De),m.extend(hr),m.extend(Pe),m.extend(On);var dr={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"},gr={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 mr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",pr=mr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var fr=function(e){if(void 0!==pr[e])return pr[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 br=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=vr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=wr(gr[e]);Er.test(e)?Object.keys(t).forEach(t=>{if(jr[t]=e,"Noun|Verb"===e){let e=Ar(t,Nr);jr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ir[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ir[e]="Emoticon"),delete Ir[""],delete Ir.null,delete Ir[" "];const Gr="Adjective";var Dr={beforeTags:{Determiner:Gr,Possessive:Gr},afterTags:{Adjective:Gr},beforeWords:{seem:Gr,seemed:Gr,seems:Gr,feel:Gr,feels:Gr,felt:Gr,appear:Gr,appears:Gr,appeared:Gr,also:Gr,over:Gr,under:Gr,too:Gr,it:Gr,but:Gr,still:Gr,really:Gr,quite:Gr,well:Gr,very:Gr,deeply:Gr,profoundly:Gr,extremely:Gr,so:Gr,badly:Gr,mostly:Gr,totally:Gr,awfully:Gr,rather:Gr,nothing:Gr,something:Gr,anything:Gr},afterWords:{too:Gr,also:Gr,or:Gr}};const xr="Gerund";var Tr={beforeTags:{Adverb:xr,Preposition:xr,Conjunction:xr},afterTags:{Adverb:xr,Possessive:xr,Person:xr,Pronoun:xr,Determiner:xr,Copula:xr,Preposition:xr,Conjunction:xr,Comparative:xr},beforeWords:{been:xr,keep:xr,continue:xr,stop:xr,am:xr,be:xr,me:xr,began:xr,start:xr,starts:xr,started:xr,stops:xr,stopped:xr,help:xr,helps:xr,avoid:xr,avoids:xr,love:xr,loves:xr,loved:xr,hate:xr,hates:xr,hated:xr},afterWords:{you:xr,me:xr,her:xr,him:xr,them:xr,their:xr,it:xr,this:xr,there:xr,on:xr,about:xr,for:xr}};var Cr={beforeTags:Object.assign({},Dr.beforeTags,Tr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Dr.afterTags,Tr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Dr.beforeWords,Tr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Dr.afterWords,Tr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Or="Singular";var Br={beforeTags:{Determiner:Or,Possessive:Or,Acronym:Or,Noun:Or,Adjective:Or,PresentTense:Or,Gerund:Or,PastTense:Or,Infinitive:Or,Date:Or},afterTags:{Value:Or,Modal:Or,Copula:Or,PresentTense:Or,PastTense:Or,Demonym:Or},beforeWords:{the:Or,with:Or,without:Or,of:Or,for:Or,any:Or,all:Or,on:Or,cut:Or,cuts:Or,save:Or,saved:Or,saves:Or,make:Or,makes:Or,made:Or,minus:Or,plus:Or,than:Or,another:Or,versus:Or,neither:Or,favorite:Or,best:Or,daily:Or,weekly:Or,linear:Or,binary:Or,mobile:Or,lexical:Or,technical:Or,computer:Or,scientific:Or,formal:Or},afterWords:{of:Or,system:Or,aid:Or,method:Or,utility:Or,tool:Or,reform:Or,therapy:Or,philosophy:Or,room:Or,authority:Or,says:Or,said:Or,wants:Or,wanted:Or}};const zr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Vr={beforeTags:Object.assign({},Dr.beforeTags,Br.beforeTags,zr.beforeTags),afterTags:Object.assign({},Dr.afterTags,Br.afterTags),beforeWords:Object.assign({},Dr.beforeWords,Br.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Dr.afterWords,Br.afterWords)};const Fr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},$r={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Sr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Hr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Jr={beforeTags:Object.assign({},Dr.beforeTags,Fr),afterTags:Object.assign({},Dr.afterTags,$r),beforeWords:Object.assign({},Dr.beforeWords,Sr),afterWords:Object.assign({},Dr.afterWords,Hr)};const Lr="Infinitive";var Mr={beforeTags:{Modal:Lr,Adverb:Lr,Negative:Lr,Plural:Lr},afterTags:{Determiner:Lr,Adverb:Lr,Possessive:Lr,Preposition:Lr},beforeWords:{i:Lr,we:Lr,you:Lr,they:Lr,to:Lr,please:Lr,will:Lr,have:Lr,had:Lr,would:Lr,could:Lr,should:Lr,do:Lr,did:Lr,does:Lr,can:Lr,must:Lr,us:Lr,me:Lr,he:Lr,she:Lr,it:Lr,being:Lr},afterWords:{the:Lr,me:Lr,you:Lr,him:Lr,her:Lr,them:Lr,it:Lr,a:Lr,an:Lr,up:Lr,down:Lr,by:Lr,out:Lr,off:Lr,under:Lr,when:Lr,all:Lr,to:Lr,because:Lr,although:Lr,before:Lr,how:Lr,otherwise:Lr,together:Lr,though:Lr,yet:Lr}};const Wr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Kr={beforeTags:Object.assign({},Dr.beforeTags,Mr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Dr.afterTags,Mr.afterTags,Wr.afterTags),beforeWords:Object.assign({},Dr.beforeWords,Mr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Dr.afterWords,Mr.afterWords,{to:void 0})};const qr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Rr={},Ur={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Qr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Zr={beforeTags:Object.assign({},Tr.beforeTags,Br.beforeTags,qr),afterTags:Object.assign({},Tr.afterTags,Br.afterTags,Rr),beforeWords:Object.assign({},Tr.beforeWords,Br.beforeWords,Ur),afterWords:Object.assign({},Tr.afterWords,Br.afterWords,Qr)};var _r={beforeTags:Object.assign({},Mr.beforeTags,Br.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Mr.afterTags,Br.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Mr.beforeWords,Br.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Mr.afterWords,Br.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Yr="Person";var Xr={beforeTags:{Honorific:Yr,Person:Yr,Preposition:Yr},afterTags:{Person:Yr,ProperNoun:Yr,Verb:Yr},ownTags:{ProperNoun:Yr},beforeWords:{hi:Yr,hey:Yr,yo:Yr,dear:Yr,hello:Yr},afterWords:{said:Yr,says:Yr,told:Yr,tells:Yr,feels:Yr,felt:Yr,seems:Yr,thinks:Yr,thought:Yr,spends:Yr,spendt:Yr,plays:Yr,played:Yr,sing:Yr,sang:Yr,learn:Yr,learned:Yr,wants:Yr,wanted:Yr}};const eo="Month",to={beforeTags:{Date:eo,Value:eo},afterTags:{Date:eo,Value:eo},beforeWords:{by:eo,in:eo,on:eo,during:eo,after:eo,before:eo,between:eo,until:eo,til:eo,sometime:eo,of:eo,this:eo,next:eo,last:eo,previous:eo,following:eo},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Xr.beforeTags,to.beforeTags),afterTags:Object.assign({},Xr.afterTags,to.afterTags),beforeWords:Object.assign({},Xr.beforeWords,to.beforeWords),afterWords:Object.assign({},Xr.afterWords,to.afterWords)};const ao={Place:"Place"},ro={Place:"Place",Abbreviation:"Place"},oo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const so={"Adj|Gerund":Cr,"Adj|Noun":Vr,"Adj|Past":Jr,"Adj|Present":Kr,"Noun|Verb":_r,"Noun|Gerund":Zr,"Person|Noun":{beforeTags:Object.assign({},Br.beforeTags,Xr.beforeTags),afterTags:Object.assign({},Br.afterTags,Xr.afterTags),beforeWords:Object.assign({},Br.beforeWords,Xr.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Br.afterWords,Xr.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Xr.beforeTags,Mr.beforeTags),afterTags:Object.assign({},Xr.afterTags,Mr.afterTags),beforeWords:Object.assign({},Xr.beforeWords,Mr.beforeWords),afterWords:Object.assign({},Xr.afterWords,Mr.afterWords)},"Person|Place":{beforeTags:Object.assign({},ao,Xr.beforeTags),afterTags:Object.assign({},ro,Xr.afterTags),beforeWords:Object.assign({},oo,Xr.beforeWords),afterWords:Object.assign({},io,Xr.afterWords)}},lo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};so["Plural|Verb"]={beforeWords:lo(so["Noun|Verb"].beforeWords,{}),afterWords:lo(so["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:lo(so["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:lo(so["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var uo=so;const co="Adjective",ho="Infinitive",go="PresentTense",mo="Singular",po="PastTense",fo="Adverb",bo="Plural",yo="Verb",vo="LastName",wo="Participle";var ko=[null,null,{ea:mo,ia:"Noun",ic:co,ly:fo,"'n":yo,"'t":yo},{oed:po,ued:po,xed:po," so":fo,"'ll":"Modal","'re":"Copula",azy:co,eer:"Noun",end:yo,ped:po,ffy:co,ify:ho,ing:"Gerund",ize:ho,ibe:ho,lar:co,mum:co,nes:go,nny:co,ous:co,que:co,rol:mo,sis:mo,ogy:mo,oid:mo,ian:mo,zes:go,eld:po,ken:wo,ven:wo,ten:wo,ect:ho,ict:ho,ign:ho,ful:co,bal:co},{amed:po,aped:po,ched:po,lked:po,rked:po,reed:po,nded:po,mned:co,cted:po,dged:po,ield:mo,akis:vo,cede:ho,chuk:vo,czyk:vo,ects:go,ends:yo,enko:vo,ette:mo,wner:mo,fies:go,fore:fo,gate:ho,gone:co,ices:bo,ints:bo,ruct:ho,ines:bo,ions:bo,less:co,llen:co,made:co,nsen:vo,oses:go,ould:"Modal",some:co,sson:vo,tion:mo,tage:"Noun",ique:mo,tive:co,tors:"Noun",vice:mo,lier:mo,fier:mo,wned:po,gent:mo,tist:mo,pist:mo,rist:mo,mist:mo,yist:mo,vist:mo,lite:mo,site:mo,rite:mo,mite:mo,bite:mo,mate:mo,date:mo,ndal:mo,vent:mo,uist:mo,gist:mo,note:mo,cide:mo,wide:co,vide:ho,ract:ho,duce:ho,pose:ho,eive:ho,lyze:ho,lyse:ho,iant:co,nary:co},{elist:mo,holic:mo,phite:mo,tized:po,urned:po,eased:po,ances:bo,bound:co,ettes:bo,fully:fo,ishes:go,ities:bo,marek:vo,nssen:vo,ology:"Noun",osome:mo,tment:mo,ports:bo,rough:co,tches:go,tieth:"Ordinal",tures:bo,wards:fo,where:fo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:mo,scent:mo,onist:mo,anist:mo,alist:mo,olist:mo,icist:mo,ounce:ho,iable:co,borne:co,gnant:co,inant:co,igent:co,atory:co,rient:mo,dient:mo},{auskas:vo,parent:mo,cedent:mo,ionary:mo,cklist:mo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:vo,borough:"Place",sdottir:vo}];const Po="Adjective";var Ao=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Po,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Po,tele:"Noun","pro-":Po,"mis-":"Verb","dis-":"Verb","pre-":Po},{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:Po,radio:"Noun",tetra:"Noun","omni-":Po,"post-":Po},{pseudo:Po,"extra-":Po,"hyper-":Po,"inter-":Po,"intra-":Po,"deca-":Po},{electro:"Noun"}];const Eo="Adjective",Io="Infinitive",jo="PresentTense",No="Singular",Go="PastTense",Do="Expression",xo="LastName";var To={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,xo],[/.[^aeiou]ica$/,No,"harmonica"],[/^([hyj]a+)+$/,Do,"haha"]],c:[[/.[^aeiou]ic$/,Eo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Go,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Go,"rammed"],[/.[aeiou][sg]hed$/,Go,"gushed"],[/.[aeiou]red$/,Go,"hired"],[/.[aeiou]r?ried$/,Go,"hurried"],[/[^aeiou]ard$/,No,"steward"],[/[aeiou][^aeiou]id$/,Eo,""],[/.[vrl]id$/,Eo,"livid"],[/..led$/,Go,"hurled"],[/.[iao]sed$/,Go,""],[/[aeiou]n?[cs]ed$/,Go,""],[/[aeiou][rl]?[mnf]ed$/,Go,""],[/[aeiou][ns]?c?ked$/,Go,"bunked"],[/[aeiou]gned$/,Go],[/[aeiou][nl]?ged$/,Go],[/.[tdbwxyz]ed$/,Go],[/[^aeiou][aeiou][tvx]ed$/,Go],[/.[cdflmnprstv]ied$/,Go,"emptied"]],e:[[/.[lnr]ize$/,Io,"antagonize"],[/.[^aeiou]ise$/,Io,"antagonise"],[/.[aeiou]te$/,Io,"bite"],[/.[^aeiou][ai]ble$/,Eo,"fixable"],[/.[^aeiou]eable$/,Eo,"maleable"],[/.[ts]ive$/,Eo,"festive"],[/[a-z]-like$/,Eo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Eo,"cornish"],[/.v[iy]ch$/,xo,"..ovich"],[/^ug?h+$/,Do,"ughh"],[/^uh[ -]?oh$/,Do,"uhoh"],[/[a-z]-ish$/,Eo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,xo,"polish-male"]],k:[[/^(k){2}$/,Do,"kkkk"]],l:[[/.[gl]ial$/,Eo,"familial"],[/.[^aeiou]ful$/,Eo,"fitful"],[/.[nrtumcd]al$/,Eo,"natal"],[/.[^aeiou][ei]al$/,Eo,"familial"]],m:[[/.[^aeiou]ium$/,No,"magnesium"],[/[^aeiou]ism$/,No,"schism"],[/^[hu]m+$/,Do,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Eo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Do,"noooo"],[/^(yo)+$/,Do,"yoo"],[/^wo{2,}[pt]?$/,Do,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,No],[/[^i]fer$/,Io],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Eo],[/[aeiou].*ist$/,Eo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,jo],[/.[rln]ates$/,jo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,No],[/.[aeiou]sks$/,jo],[/.[aeiou]kes$/,jo],[/[aeiou][^aeiou]is$/,No],[/[a-z]'s$/,"Noun"],[/^yes+$/,Do]],v:[[/.[^aeiou][ai][kln]ov$/,xo]],y:[[/.[cts]hy$/,Eo],[/.[st]ty$/,Eo],[/.[tnl]ary$/,Eo],[/.[oe]ry$/,No],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Eo],[/...lly$/,"Adverb"],[/.[gk]y$/,Eo],[/[bszmp]{2}y$/,Eo],[/.[ai]my$/,Eo],[/[ea]{2}zy$/,Eo],[/.[^aeiou]ity$/,No]]};const Co="Verb",Oo="Noun";var Bo={leftTags:[["Adjective",Oo],["Possessive",Oo],["Determiner",Oo],["Adverb",Co],["Pronoun",Co],["Value",Oo],["Ordinal",Oo],["Modal",Co],["Superlative",Oo],["Demonym",Oo],["Honorific","Person"]],leftWords:[["i",Co],["first",Oo],["it",Co],["there",Co],["not",Co],["because",Oo],["if",Oo],["but",Oo],["who",Co],["this",Oo],["his",Oo],["when",Oo],["you",Co],["very","Adjective"],["old",Oo],["never",Co],["before",Oo],["a","Singular"],["the",Oo],["been",Co]],rightTags:[["Copula",Oo],["PastTense",Oo],["Conjunction",Oo],["Modal",Oo]],rightWords:[["there",Co],["me",Co],["man","Adjective"],["only",Co],["him",Co],["it",Co],["were",Oo],["took",Oo],["himself",Co],["went",Oo],["who",Oo],["jr","Person"]]},zo={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"},Vo={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"},Fo={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"},$o={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"},So={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 Ho=/^.([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],a=n.match(Ho);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Ho,"")}(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},Mo=/^([0-9]+)/,Wo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Mo);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(Mo,"")]}(n[0],n[1])})};var Ko=function(e={}){return(e=Object.assign({},e)).rules=Wo(e.rules),e.rules=Lo(e.rules),e.rev&&(e.rev=Wo(e.rev),e.rev=Lo(e.rev)),e.exceptions=Wo(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 Ro=Ko({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"}),Uo=Ko($o),Qo=Ko(Vo),Zo=Ko(Fo),_o=qo(Ro),Yo=qo(Uo),Xo=qo(Qo),ei=qo(Zo),ti=Ko(zo),ni=Ko(So);var ai={fromPast:Ro,fromPresent:Uo,fromGerund:Qo,fromParticiple:Zo,toPast:_o,toPresent:Yo,toGerund:Xo,toParticiple:ei,toComparative:ti,toSuperlative:ni,fromComparative:qo(ti),fromSuperlative:qo(ni)},ri=["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),{}),oi=[[/([^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 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(si[t].forEach(n=>e[n]=t),e),{});var li=si;var ui=function(e){let t=e.substring(e.length-3);if(!0===li.hasOwnProperty(t))return li[t];let n=e.substring(e.length-2);return!0===li.hasOwnProperty(n)?li[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ci={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var hi=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=ui(e)),ci.hasOwnProperty(e))c=ci[e];else if("Participle"===n)c=Jo(l,i);else if("PastTense"===n)c=Jo(l,a);else if("PresentTense"===n)c=Jo(l,r);else{if("Gerund"!==n)return e;c=Jo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var di=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:Jo(i,n),PresentTense:Jo(i,a),Gerund:Jo(i,r),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 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 mi="ically",pi=new Set(["analyt"+mi,"chem"+mi,"class"+mi,"clin"+mi,"crit"+mi,"ecolog"+mi,"electr"+mi,"empir"+mi,"frant"+mi,"grammat"+mi,"ident"+mi,"ideolog"+mi,"log"+mi,"mag"+mi,"mathemat"+mi,"mechan"+mi,"med"+mi,"method"+mi,"method"+mi,"mus"+mi,"phys"+mi,"phys"+mi,"polit"+mi,"pract"+mi,"rad"+mi,"satir"+mi,"statist"+mi,"techn"+mi,"technolog"+mi,"theoret"+mi,"typ"+mi,"vert"+mi,"whims"+mi]),fi=[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"}],bi=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"]),yi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var vi=function(e){return e.endsWith("ly")?pi.has(e)?e.replace(/ically/,"ical"):bi.has(e)?null:yi.hasOwnProperty(e)?yi[e]:gi(e,fi)||e:null};const wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ki={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Pi=function(e){if(ki.hasOwnProperty(e))return ki[e];let t=gi(e,wi);return t||e+"ly"};const Ai=[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"}],Ei={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 ji=function(e,t){const n=t.two.models.toSuperlative;return Jo(e,n)},Ni=function(e,t){const n=t.two.models.toComparative;return Jo(e,n)};var Gi={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 Di={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===Gi.hasOwnProperty(i)&&Gi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Ar,nounToSingular:ii,verbToInfinitive:hi,getTense:ui,verbConjugate:di,adjToSuperlative:ji,adjToComparative:Ni,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:vi,adjToAdverb:Pi,adjToNoun:function(e){if(Ei.hasOwnProperty(e))return Ei[e];if(Ii.has(e))return null;let t=gi(e,Ai);return t||e+"ness"}}}};var 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 Ti=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Ci=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=Ti(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ti(a,"Infinitive","Verb"),Object.assign(s,l),l=Ti(r,"Infinitive","Gerund"),Object.assign(s,l),l=Ti(o,"Adjective","Superlative"),Object.assign(s,l),l=Ti(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Oi={two:{models:ai}};const Bi={"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"},zi=function(e,t){const n={model:t,methods:Di};let{lex:a,_multi:r}=Di.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Vi=function(e,t,n){let a=di(e,Oi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Fi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Bi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Vi(r,a,!1),"Adj|Present"===o&&(Vi(r,a,!0),function(e,t,n){let a=ji(e,n);t[a]=t[a]||"Superlative";let r=Ni(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=hi(r,Oi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=hi(r,Oi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=zi(n,t)};let $i={one:{_multiCache:{},lexicon:Ir},two:{irregularPlurals:dr,models:ai,suffixPatterns:ko,prefixPatterns:Ao,endsWith:To,neighbours:Bo,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:jr,clues:uo,uncountable:{},orgWords:ri}};$i=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=zi(e.one.lexicon,e)).one.lexicon,e),e=Fi(e.two.switches,e),e=Ci(e),e=xi(e)}($i);var Si=$i;const Hi=/^(under|over|mis|re|un|dis|semi)-?/;var Ji=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(Hi.test(r.normal)){let e=r.normal.replace(Hi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Li=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 Mi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Wi=new Set(["formulas","koalas","israelis","menus"]),Ki=["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(Wi.has(e))return!0;let t=e[e.length-1];return Mi.hasOwnProperty(t)?Mi[t].find(t=>e.endsWith(t)):"s"===t&&!Ki.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Ui=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(qi(e.normal)?Li(e,"Plural","3-plural-guess"):Li(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ui(e.normal);t&&Li(e,t,"3-verb-tense-guess")}}(a)};const Qi=/^\p{Lu}[\p{Ll}'’]/u,Zi=/[0-9]/,_i=["Date","Month","WeekDay","Unit"],Yi=/^[IVXLCDM]{2,}$/,Xi=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,es={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ts=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===Qi.test(o)&&!1===Zi.test(o)?_i.find(e=>a.tags.has(e))?null:(Ui(e,t,n),a.tags.has("Noun")||a.tags.clear(),Li(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Yi.test(o)&&Xi.test(o)&&!es[a.normal]?(Li(a,"RomanNumeral","2-xvii"),!0):null};const ns=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=ns(a.normal,n.two.suffixPatterns);if(null!==e)return Li(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=ns(a.implicit,n.two.suffixPatterns),null!==e))return Li(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const rs=/['‘’‛‵′`´]/,os=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 Li(a,e,"2-prefix"),a.confidence=.5,!0}return null};const ls=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"]),us=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ls.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},cs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},hs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ds=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(us(r)||us(o))return Li(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(cs(r)||cs(o))return Li(n,"Year","2-tagYear-close");if(hs(e[t-2])||hs(e[t+2]))return Li(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 Li(n,"Year","2-tagYear-noun")}}}return null};const gs=/^[A-Z]('s|,)?$/,ms=/^[A-Z-]+$/,ps=/([A-Z]\.)+[A-Z]?,?$/,fs=/[A-Z]{2,}('s|,)?$/,bs=/([a-z]\.)+[a-z]\.?$/,ys={I:!0,A:!0};var vs=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===ms.test(n)||n.length>5||ys.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==ps.test(n)&&!0!==bs.test(n)&&!0!==gs.test(n)&&!0!==fs.test(n))}(a,n)?(a.tags.clear(),Li(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!ys.hasOwnProperty(a.text)&&gs.test(a.text)?(a.tags.clear(),Li(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Li(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&ms.test(a.text)&&a.text.length<=6?(Li(a,"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},ks=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ps=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||ws(e[t-1],r),l=l||ws(e[t+1],o),l=l||ks(e[t-1],a),l=l||ks(e[t+1],i),l)return Li(s,l,"3-[neighbour]"),Ui(e,t,n),e[t].confidence=.2,!0}return null};const As=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 Es=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]&&As(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&As(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Is=function(e,t,n){0===e[t].tags.size&&(Li(e[t],"Noun","3-[fallback]"),Ui(e,t,n),e[t].confidence=.1)};const js=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ns=(e,t,n)=>0!==t||e[1]?null:n;var Gs={"Adj|Gerund":(e,t)=>js(e,t),"Adj|Noun":(e,t)=>js(e,t),"Adj|Past":(e,t)=>js(e,t),"Adj|Present":(e,t)=>js(e,t),"Noun|Gerund":(e,t)=>js(e,t),"Noun|Verb":(e,t)=>js(e,t)||Ns(e,t,"Infinitive"),"Plural|Verb":(e,t)=>js(e,t)||Ns(e,t,"PresentTense"),"Person|Noun":(e,t)=>js(e,t),"Person|Verb":(e,t)=>0!==t&&js(e,t)};const Ds="undefined"!=typeof process&&process.env?process.env:self.env||{},xs=/^(under|over|mis|re|un|dis|semi)-?/,Ts=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Ds.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Cs=(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&&Ds.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Os={tagSwitch:Ji,checkSuffix:as,checkRegex:is,checkCase:ts,checkPrefix:ss,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")&&(Li(o,"Verb","3-[prefix]"),Li(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Li(o,"Adjective","3-[prefix]"),Li(o,"Prefix","3-[prefix]")))},checkYear:ds},Bs={checkAcronym:vs,neighbours:Ps,orgWords:Es,nounFallback:Is,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(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=Ts(e[t+1],n.afterWords);return o=o||Ts(e[t-1],n.beforeWords),o=o||Cs(e[t-1],n.beforeTags,r),o=o||Cs(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Gs[o]&&(u=Gs[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Ds.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},zs=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 $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 Ss={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 Zs=/'/;var _s=function(e,t){let n=e[t].normal.split(Zs)[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 Ys=/'/;var Xs=function(e,t){let n=e[t].normal.split(Ys)[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 el=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 tl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},nl={in:!0,by:!0,for:!0};var al=(e,t)=>{let n=e[t];if(tl.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===nl[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 rl=/'/,ol=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)=>Xs(e,t),t:(e,t)=>el(e,t),s:(e,t,n)=>al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):_s(e,t)},sl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ll={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===rl.test(a[o].normal)&&([,i]=a[o].normal.split(rl));let s=null;il.hasOwnProperty(i)&&(s=il[i](a,o,t)),s&&(s=sl(s,e),Qs(n,[r,o],s),ol(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=Us.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=Rs},hooks:["contractionTwo"]};const ul="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const cl=["i","we","they"];let hl=[].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:ul+" #Person",tag:"Person",reason:"randy-smith"},{match:ul+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${ul}]`,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:cl,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:cl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:cl,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 dl=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;dl=dl||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(dl),e.uncache(),e}},model:{two:{matches:hl}},hooks:["postTagger"]};var ml=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 pl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?ml(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 fl={api:function(e){e.prototype.swap=pl}};m.plugin(Ws),m.plugin(ll),m.plugin(gl),m.plugin(fl);export{m as default}; diff --git a/data/lexicon/nouns/singulars.js b/data/lexicon/nouns/singulars.js index 71a75d5f5..4f35e5c5e 100644 --- a/data/lexicon/nouns/singulars.js +++ b/data/lexicon/nouns/singulars.js @@ -400,6 +400,7 @@ export default [ 'tv', 'stone', + 'tributary', ] diff --git a/data/lexicon/switches/adj-noun.js b/data/lexicon/switches/adj-noun.js index b966f13b2..3588cc7f8 100644 --- a/data/lexicon/switches/adj-noun.js +++ b/data/lexicon/switches/adj-noun.js @@ -100,6 +100,7 @@ export default [ 'token', 'top', 'total', + 'trial', 'undergraduate', 'underground', 'upstairs', diff --git a/scratch.js b/scratch.js index 1dc1c6219..ec8077c94 100644 --- a/scratch.js +++ b/scratch.js @@ -14,17 +14,9 @@ let txt = '' // "that's just not swell" txt = "Let’s get you into wardrobe for a fitting." -txt = " any need for a trial" -txt = " definitely worth a rental." -txt = "go kayaking in a tributary?." -txt = "any need for a trial." -txt = "keeping the matter a secret" -txt = "on this as a whole" -txt = "he had fallen into a cold" -txt = " I was an expert" -txt = " taken from us in an instant" -txt = " the instant he walked" -txt = " pressure on the terrorist countries." +// 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" @@ -40,10 +32,7 @@ txt = " pressure on the terrorist countries." // txt = "CBI catches DD acting director taking bribe" // txt = "How do I keep kissing you, and catch my breath?" -// "who were always throwing stones at me." // txt = " throw stones, Dick, said Jaqueline." -// - // txt = "Loblaws reducing food prices at Toronto stores" // txt = "Stock prices closed higher in Stockholm" diff --git a/src/2-two/postTagger/model/adjective/adj-noun.js b/src/2-two/postTagger/model/adjective/adj-noun.js index ec99c31ec..095836757 100644 --- a/src/2-two/postTagger/model/adjective/adj-noun.js +++ b/src/2-two/postTagger/model/adjective/adj-noun.js @@ -11,4 +11,6 @@ export default [ { 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' }, ] diff --git a/src/2-two/postTagger/model/nouns/nouns.js b/src/2-two/postTagger/model/nouns/nouns.js index 42e7cf85d..2de79a15d 100644 --- a/src/2-two/postTagger/model/nouns/nouns.js +++ b/src/2-two/postTagger/model/nouns/nouns.js @@ -117,7 +117,7 @@ export default [ // 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', '#Pronoun'], reason: 'a-complex-relationship' }, + // { 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' }, diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index d46d52aab..7dbad8277 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -22,14 +22,14 @@ export default { "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:57;1:4G;2:56;3:4T;4:4R;5:4M;6:4Q;7:50;8:4H;a4Qb45c38d2Ve2Of2Eg23h1Rin1Ojel3k1Ml1Jm1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Aom2A;f1i4Ut0Dy9;! arou4D;arn4EeAo9;cabu06l51;gJr9;di6t1I;nc33p2QrAs 9;do3Qs54;bani2in0; rex,aHeGhFiDoCrBuAv9;! 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;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: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;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", + "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", diff --git a/tests/two/match.test.js b/tests/two/match.test.js index ce91e6719..f4661a853 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -624,6 +624,20 @@ let arr = [ ['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'], + + ["always throwing stones at me", '#Adverb #Gerund #Plural at #Pronoun'], + + ["any need for a trial", 'any #Noun for a #Noun'], + ["go kayaking in a tributary?.", '#Verb #Gerund in a #Noun'], + ["any need for a trial.", 'any #Noun for a #Noun'], + ["as a whole", 'as a #Noun'], + ["he had fallen into a cold", '#Pronoun #Auxiliary #Verb into a #Noun'], + ["taken from us in an instant", 'taken from #Pronoun in an #Noun'], + ["the instant he walked", 'the #Noun #Pronoun #PastTense'], + + // ["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 c6f85c344..93cd3d9b8 100644 --- a/tests/two/tagger/_pennSample.js +++ b/tests/two/tagger/_pennSample.js @@ -762,10 +762,6 @@ export default [ text: 'Syria is surrounded by Turkey, Iraq, Jordan and Israel.', tags: 'NNP, VBZ, VBN, IN, NNP, NNP, NNP, CC, NNP', }, - { - text: 'This is a significant strategic change and it applies strong pressure on the terrorist countries.', - tags: 'DT, VBZ, DT, JJ, JJ, NN, CC, PRP, VBZ, JJ, NN, IN, DT, JJ, NNS', - }, { text: 'Zawahiri was associated with a faction of the Egyptian Islamic Jihad known as the Vanguards of Conquest.', tags: 'NNP, VBD, VBN, IN, DT, NN, IN, DT, NNP, NNP, NNP, VBN, IN, DT, NNPS, IN, NNP', From 0f1ea76a57ef72787f1a4ca829401967ffcd56f9 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Tue, 14 Jun 2022 15:58:12 -0400 Subject: [PATCH 12/13] add hash method --- 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 + scratch.js | 10 +--- src/1-one/output/api/json.js | 11 ++-- src/1-one/output/api/{ => lib}/_text.js | 0 src/1-one/output/api/lib/hash.js | 73 +++++++++++++++++++++++ src/1-one/output/api/out.js | 5 +- src/1-one/output/api/text.js | 2 +- src/1-one/output/plugin.js | 6 ++ src/3-three/chunker/compute/03-matcher.js | 2 +- src/3-three/verbs/api/debug.js | 2 +- tests/one/output/hash.test.js | 28 +++++++++ 18 files changed, 139 insertions(+), 29 deletions(-) rename src/1-one/output/api/{ => lib}/_text.js (100%) create mode 100644 src/1-one/output/api/lib/hash.js create mode 100644 tests/one/output/hash.test.js diff --git a/builds/compromise.js b/builds/compromise.js index 0d9d656c6..44cd1bb1a 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.0";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 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;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()),k(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(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=xe(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&&(Et(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&&(Et(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=Et(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(!xt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(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=In(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},Gn=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})},Dn=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)})},Cn=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},On=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=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 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=Gn(a,t.hooks);return o=Dn(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),Cn(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===On(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 Bn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Bn.test(t))!function(e,t,n,r){let a=t.split(Bn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn,Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Jn(t=e).forEach(Mn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Jn(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},Qn=function(e){let t=Jn(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},_n={text:Un,txt:Un,array:Qn,flat:Qn},Zn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Yn=e=>{Jn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Jn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Jn(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 Jn(this.json)}fillDown(){var e;return e=this.json,Jn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Jn(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 Yn(this.json),Zn(this.json,e)}debug(){return Yn(this.json),Zn(this.json,"debug"),this}}const er=function(e){let t=Rn(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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)}},ur=function(e){Object.assign(e.prototype,lr)},cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var gr=function(e){let t=[],n=e.split(mr);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 Or=/^[ \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]+$/,Br=/['’]/,zr=/^[a-z]\.([a-z]\.)+/i,$r=/^[-+.][0-9]/,Fr=/^'[0-9]{2}/;var Sr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Or,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$r.test(e)?"'"===n&&Fr.test(e)?(n="",t):"":(n="",t)))).replace(Vr,a=>(r=a,Br.test(a)&&/[sn]['’]$/.test(t)&&!1===Br.test(n)?(r=r.replace(Br,""),"'"):!0===zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Hr=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Lr=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,Jr=/([a-z]\.)+[a-z]\.?$/;var qr=function(e){return function(e){return!0===Mr.test(e)||!0===Jr.test(e)||!0===Lr.test(e)||!0===Wr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Kr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Hr(r),r=n(r,t),r=qr(r),e.normal=r},Rr={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:Ar,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(Dr);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=Ir(n),n=xr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Sr(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=>{Kr(e,t)}),n})}}}},Ur={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},_r={};[[["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=>{Qr[t]=!0,_r[t]="Abbreviation",void 0!==e[1]&&(_r[t]=[_r[t],e[1]])})});var Zr=["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 Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xr={};Object.keys(Yr).forEach((function(e){Yr[e].split("").forEach((function(t){Xr[t]=e}))}));const ea=/\//,ta=/[a-z]\.[a-z]/i,na=/[0-9]/;var ra=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])),ea.test(n)&&!ta.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 aa=/^\p{Letter}+-\p{Letter}+$/u;var oa=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"),aa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ia=function(e){let t=0,n=0,r=e.document;for(let e=0;esa(e,ra),machine:e=>sa(e,oa),normal:e=>sa(e,Kr),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 ha={safe:!0,min:3};var da={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ua},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ha,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ca(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(fn),m.extend(St),m.extend(Nn),m.extend(dr),m.plugin(be),m.extend(la),m.plugin(f),m.extend(Te),m.extend(da),m.extend(Pe),m.extend(Vn);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"},ma={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 ga=36,fa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ba=fa.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=ga,a=1;for(;n=0;n--,a*=ga){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ya=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=Pa(ma[e]);xa.test(e)?Object.keys(t).forEach(t=>{if(Ia[t]=e,"Noun|Verb"===e){let e=Ea(t,Ta);Ia[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ga="Adjective";var Da={beforeTags:{Determiner:Ga,Possessive:Ga},afterTags:{Adjective:Ga},beforeWords:{seem:Ga,seemed:Ga,seems:Ga,feel:Ga,feels:Ga,felt:Ga,appear:Ga,appears:Ga,appeared:Ga,also:Ga,over:Ga,under:Ga,too:Ga,it:Ga,but:Ga,still:Ga,really:Ga,quite:Ga,well:Ga,very:Ga,deeply:Ga,profoundly:Ga,extremely:Ga,so:Ga,badly:Ga,mostly:Ga,totally:Ga,awfully:Ga,rather:Ga,nothing:Ga,something:Ga,anything:Ga},afterWords:{too:Ga,also:Ga,or:Ga}};const Ca="Gerund";var Oa={beforeTags:{Adverb:Ca,Preposition:Ca,Conjunction:Ca},afterTags:{Adverb:Ca,Possessive:Ca,Person:Ca,Pronoun:Ca,Determiner:Ca,Copula:Ca,Preposition:Ca,Conjunction:Ca,Comparative:Ca},beforeWords:{been:Ca,keep:Ca,continue:Ca,stop:Ca,am:Ca,be:Ca,me:Ca,began:Ca,start:Ca,starts:Ca,started:Ca,stops:Ca,stopped:Ca,help:Ca,helps:Ca,avoid:Ca,avoids:Ca,love:Ca,loves:Ca,loved:Ca,hate:Ca,hates:Ca,hated:Ca},afterWords:{you:Ca,me:Ca,her:Ca,him:Ca,them:Ca,their:Ca,it:Ca,this:Ca,there:Ca,on:Ca,about:Ca,for:Ca}},Va={beforeTags:Object.assign({},Da.beforeTags,Oa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Da.afterTags,Oa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Da.beforeWords,Oa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Da.afterWords,Oa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ba="Singular";var za={beforeTags:{Determiner:Ba,Possessive:Ba,Acronym:Ba,Noun:Ba,Adjective:Ba,PresentTense:Ba,Gerund:Ba,PastTense:Ba,Infinitive:Ba,Date:Ba},afterTags:{Value:Ba,Modal:Ba,Copula:Ba,PresentTense:Ba,PastTense:Ba,Demonym:Ba},beforeWords:{the:Ba,with:Ba,without:Ba,of:Ba,for:Ba,any:Ba,all:Ba,on:Ba,cut:Ba,cuts:Ba,save:Ba,saved:Ba,saves:Ba,make:Ba,makes:Ba,made:Ba,minus:Ba,plus:Ba,than:Ba,another:Ba,versus:Ba,neither:Ba,favorite:Ba,best:Ba,daily:Ba,weekly:Ba,linear:Ba,binary:Ba,mobile:Ba,lexical:Ba,technical:Ba,computer:Ba,scientific:Ba,formal:Ba},afterWords:{of:Ba,system:Ba,aid:Ba,method:Ba,utility:Ba,tool:Ba,reform:Ba,therapy:Ba,philosophy:Ba,room:Ba,authority:Ba,says:Ba,said:Ba,wants:Ba,wanted:Ba}};const $a={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fa={beforeTags:Object.assign({},Da.beforeTags,za.beforeTags,$a.beforeTags),afterTags:Object.assign({},Da.afterTags,za.afterTags),beforeWords:Object.assign({},Da.beforeWords,za.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,za.afterWords)};const Sa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ha={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ma={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},La={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wa={beforeTags:Object.assign({},Da.beforeTags,Sa),afterTags:Object.assign({},Da.afterTags,Ha),beforeWords:Object.assign({},Da.beforeWords,Ma),afterWords:Object.assign({},Da.afterWords,La)};const Ja="Infinitive";var qa={beforeTags:{Modal:Ja,Adverb:Ja,Negative:Ja,Plural:Ja},afterTags:{Determiner:Ja,Adverb:Ja,Possessive:Ja,Preposition:Ja},beforeWords:{i:Ja,we:Ja,you:Ja,they:Ja,to:Ja,please:Ja,will:Ja,have:Ja,had:Ja,would:Ja,could:Ja,should:Ja,do:Ja,did:Ja,does:Ja,can:Ja,must:Ja,us:Ja,me:Ja,he:Ja,she:Ja,it:Ja,being:Ja},afterWords:{the:Ja,me:Ja,you:Ja,him:Ja,her:Ja,them:Ja,it:Ja,a:Ja,an:Ja,up:Ja,down:Ja,by:Ja,out:Ja,off:Ja,under:Ja,when:Ja,all:Ja,to:Ja,because:Ja,although:Ja,before:Ja,how:Ja,otherwise:Ja,together:Ja,though:Ja,yet:Ja}};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Da.beforeTags,qa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,qa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Da.beforeWords,qa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,qa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qa={},_a={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Za={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Ya={beforeTags:Object.assign({},Oa.beforeTags,za.beforeTags,Ua),afterTags:Object.assign({},Oa.afterTags,za.afterTags,Qa),beforeWords:Object.assign({},Oa.beforeWords,za.beforeWords,_a),afterWords:Object.assign({},Oa.afterWords,za.afterWords,Za)},Xa={beforeTags:Object.assign({},qa.beforeTags,za.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qa.afterTags,za.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qa.beforeWords,za.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qa.afterWords,za.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ro={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ao={beforeTags:Object.assign({},to.beforeTags,ro.beforeTags),afterTags:Object.assign({},to.afterTags,ro.afterTags),beforeWords:Object.assign({},to.beforeWords,ro.beforeWords),afterWords:Object.assign({},to.afterWords,ro.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Va,"Adj|Noun":Fa,"Adj|Past":Wa,"Adj|Present":Ra,"Noun|Verb":Xa,"Noun|Gerund":Ya,"Person|Noun":{beforeTags:Object.assign({},za.beforeTags,to.beforeTags),afterTags:Object.assign({},za.afterTags,to.afterTags),beforeWords:Object.assign({},za.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},za.afterWords,to.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,qa.beforeTags),afterTags:Object.assign({},to.afterTags,qa.afterTags),beforeWords:Object.assign({},to.beforeWords,qa.beforeWords),afterWords:Object.assign({},to.afterWords,qa.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const po="Adjective",mo="Infinitive",go="PresentTense",fo="Singular",bo="PastTense",vo="Adverb",yo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",jo="Modal",Eo="Participle";var xo=[null,null,{ea:fo,ia:Po,ic:po,ly:vo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":vo,"'ll":jo,"'re":"Copula",azy:po,eer:Po,end:ko,ped:bo,ffy:po,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:po,mum:po,nes:go,nny:po,ous:po,que:po,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:go,eld:bo,ken:Eo,ven:Eo,ten:Eo,ect:mo,ict:mo,ign:mo,ful:po,bal:po},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:po,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:go,ends:ko,enko:Ao,ette:fo,wner:fo,fies:go,fore:vo,gate:mo,gone:po,ices:yo,ints:yo,ruct:mo,ines:yo,ions:yo,less:po,llen:po,made:po,nsen:Ao,oses:go,ould:jo,some:po,sson:Ao,tion:fo,tage:Po,ique:fo,tive:po,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:po,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:po,nary:po},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:yo,bound:po,ettes:yo,fully:vo,ishes:go,ities:yo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:yo,rough:po,tches:go,tieth:"Ordinal",tures:yo,wards:vo,where:vo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const No="Adjective",Io="Noun",To="Verb";var Go=[null,null,{},{neo:Io,bio:Io,"de-":To,"re-":To,"un-":To},{anti:Io,auto:Io,faux:No,hexa:Io,kilo:Io,mono:Io,nano:Io,octa:Io,poly:Io,semi:No,tele:Io,"pro-":No,"mis-":To,"dis-":To,"pre-":No},{anglo:Io,centi:Io,ethno:Io,ferro:Io,grand:Io,hepta:Io,hydro:Io,intro:Io,macro:Io,micro:Io,milli:Io,nitro:Io,penta:Io,quasi:No,radio:Io,tetra:Io,"omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:Io}];const Do="Adjective",Co="Infinitive",Oo="PresentTense",Vo="Singular",Bo="PastTense",zo="Adverb",$o="Expression",Fo="Actor",So="Verb",Ho="Noun",Mo="LastName";var Lo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Mo],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,Do]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Bo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Bo,"rammed"],[/.[aeiou][sg]hed$/,Bo,"gushed"],[/.[aeiou]red$/,Bo,"hired"],[/.[aeiou]r?ried$/,Bo,"hurried"],[/[^aeiou]ard$/,Vo,"steward"],[/[aeiou][^aeiou]id$/,Do,""],[/.[vrl]id$/,Do,"livid"],[/..led$/,Bo,"hurled"],[/.[iao]sed$/,Bo,""],[/[aeiou]n?[cs]ed$/,Bo,""],[/[aeiou][rl]?[mnf]ed$/,Bo,""],[/[aeiou][ns]?c?ked$/,Bo,"bunked"],[/[aeiou]gned$/,Bo],[/[aeiou][nl]?ged$/,Bo],[/.[tdbwxyz]ed$/,Bo],[/[^aeiou][aeiou][tvx]ed$/,Bo],[/.[cdflmnprstv]ied$/,Bo,"emptied"]],e:[[/.[lnr]ize$/,Co,"antagonize"],[/.[^aeiou]ise$/,Co,"antagonise"],[/.[aeiou]te$/,Co,"bite"],[/.[^aeiou][ai]ble$/,Do,"fixable"],[/.[^aeiou]eable$/,Do,"maleable"],[/.[ts]ive$/,Do,"festive"],[/[a-z]-like$/,Do,"woman-like"]],h:[[/.[^aeiouf]ish$/,Do,"cornish"],[/.v[iy]ch$/,Mo,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,Do,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Mo,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,Do,"familial"],[/.[^aeiou]ful$/,Do,"fitful"],[/.[nrtumcd]al$/,Do,"natal"],[/.[^aeiou][ei]al$/,Do,"familial"]],m:[[/.[^aeiou]ium$/,Vo,"magnesium"],[/[^aeiou]ism$/,Vo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Do,"republican"],[/[^aeiou]ician$/,Fo,"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$/,Co],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Do],[/[aeiou].*ist$/,Do],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,Ho],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,Mo]],y:[[/.[cts]hy$/,Do],[/.[st]ty$/,Do],[/.[tnl]ary$/,Do],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,zo],[/.(gg|bb|zz)ly$/,Do],[/...lly$/,zo],[/.[gk]y$/,Do],[/[bszmp]{2}y$/,Do],[/.[ai]my$/,Do],[/[ea]{2}zy$/,Do],[/.[^aeiou]ity$/,Vo]]};const Wo="Verb",Jo="Noun";var qo={leftTags:[["Adjective",Jo],["Possessive",Jo],["Determiner",Jo],["Adverb",Wo],["Pronoun",Wo],["Value",Jo],["Ordinal",Jo],["Modal",Wo],["Superlative",Jo],["Demonym",Jo],["Honorific","Person"]],leftWords:[["i",Wo],["first",Jo],["it",Wo],["there",Wo],["not",Wo],["because",Jo],["if",Jo],["but",Jo],["who",Wo],["this",Jo],["his",Jo],["when",Jo],["you",Wo],["very","Adjective"],["old",Jo],["never",Wo],["before",Jo],["a","Singular"],["the",Jo],["been",Wo]],rightTags:[["Copula",Jo],["PastTense",Jo],["Conjunction",Jo],["Modal",Jo]],rightWords:[["there",Wo],["me",Wo],["man","Adjective"],["only",Wo],["him",Wo],["it",Wo],["were",Jo],["took",Jo],["himself",Wo],["went",Jo],["who",Jo],["jr","Person"]]},Ko={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"},Uo={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 Zo=/^.([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(Zo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Zo,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Xo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Xo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ri=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 ai=ni({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"}),oi=ni(Qo),ii=ni(Ro),si=ni(Uo),li=ri(ai),ui=ri(oi),ci=ri(ii),hi=ri(si),di=ni(Ko),pi=ni(_o);var mi={fromPast:ai,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:hi,toComparative:di,toSuperlative:pi,fromComparative:ri(di),fromSuperlative:ri(pi)},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),{}),fi=[[/([^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,""]],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(vi[t].forEach(n=>e[n]=t),e),{});var yi=vi,wi=function(e){let t=e.substring(e.length-3);if(!0===yi.hasOwnProperty(t))return yi[t];let n=e.substring(e.length-2);return!0===yi.hasOwnProperty(n)?yi[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 Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},ji=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]),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"}],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"]),Ti={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")?xi.has(e)?e.replace(/ically/,"ical"):Ii.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:ji(e,Ni)||e:null};const Di=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ci={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Ci.hasOwnProperty(e))return Ci[e];let t=ji(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"}],Bi={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"},zi=new Set(["terrible","annoying"]),$i=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},Fi=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:$i,adjToComparative:Fi,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:Gi,adjToAdverb:Oi,adjToNoun:function(e){if(Bi.hasOwnProperty(e))return Bi[e];if(zi.has(e))return null;let t=ji(e,Vi);return t||e+"ness"}}}},Mi=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 Li=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Wi=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(r,"Infinitive","Verb"),Object.assign(s,l),l=Li(a,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ji={two:{models:mi}};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"},Ki=function(e,t){const n={model:t,methods:Hi};let{lex:r,_multi:a}=Hi.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=Ai(e,Ji);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=qi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(a,r,!1),"Adj|Present"===o&&(Ri(a,r,!0),function(e,t,n){let r=$i(e,n);t[r]=t[r]||"Superlative";let a=Fi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(a,Ji,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(a,Ji,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ki(n,t)};let Qi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:pa,models:mi,suffixPatterns:xo,prefixPatterns:Go,endsWith:Lo,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:Ia,clues:ho,uncountable:{},orgWords:gi}};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=Ki(e.one.lexicon,e)).one.lexicon,e),e=Ui(e.two.switches,e),e=Wi(e),e=Mi(e)}(Qi);var _i=Qi;const Zi=/^(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(Zi.test(a.normal)){let e=a.normal.replace(Zi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Xi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const as=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(rs(e.normal)?Xi(e,"Plural","3-plural-guess"):Xi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ds=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>r.tags.has(e))?null:(os(e,t,n),r.tags.has("Noun")||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!hs[r.normal]?(Xi(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 ms=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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ps(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const gs=/['‘’‛‵′`´]/,fs=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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ys=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"]),ws=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ys.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)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};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){let a=e[t-1],o=e[t+1];if(ws(a)||ws(o))return Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ks(a)||ks(o))return Xi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Xi(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 Xi(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Es=/^[A-Z-]+$/,xs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[A-Z]{2,}('s|,)?$/,Is=/([a-z]\.)+[a-z]\.?$/,Ts={I:!0,A:!0};var Gs=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!==Is.test(n)&&!0!==js.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ts.hasOwnProperty(r.text)&&js.test(r.text)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Xi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Es.test(r.text)&&r.text.length<=6?(Xi(r,"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},Cs=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||Ds(e[t-1],a),l=l||Ds(e[t+1],o),l=l||Cs(e[t-1],r),l=l||Cs(e[t+1],i),l)return Xi(s,l,"3-[neighbour]"),os(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 Bs=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},zs=function(e,t,n){0===e[t].tags.size&&(Xi(e[t],"Noun","3-[fallback]"),os(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(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Js={tagSwitch:Yi,checkSuffix:ms,checkRegex:bs,checkCase:ds,checkPrefix:vs,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")&&(Xi(o,"Verb","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Xi(o,"Adjective","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")))},checkYear:As},qs={checkAcronym:Gs,neighbours:Os,orgWords:Bs,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?a([s],u,n,null,`3-[variable] (${o})`):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)},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: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 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"]},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},pl={in:!0,by:!0,for:!0};var ml=(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===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 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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>hl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},vl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.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;bl.hasOwnProperty(i)&&(s=bl[i](r,o,t)),s&&(s=vl(s,e),il(n,[a,o],s),fl(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=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)",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:"#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: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:"#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: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"}]),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,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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},El=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)},xl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?El(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},Nl={api:function(e){e.prototype.swap=xl}};m.plugin(tl),m.plugin(yl),m.plugin(jl),m.plugin(Nl);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},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{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},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={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Kl).join("|")+")"),Ul=RegExp("("+Object.values(Kl).join("|")+")"),Ql=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ul,"")})}(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)}},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",pu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var mu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=pu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[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 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 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")},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:vu(e,t),isSubordinate:bu(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);return t.found?(t.parse()[0]||{}).num: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 Eu=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 Nu=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=>Eu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return Nu(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)}}},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},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},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$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Mu(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},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"],Ru=[[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"]],Uu=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 Ru.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(Uu(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(" ")},_u=function(e){return e.numerator&&e.denominator?`${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(" ")},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},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")}},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},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},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},dc={api:function(e){tc(e),hc(e)}};const pc={people:!0,emails:!0,phoneNumbers:!0,places:!0},mc=function(e={}){return!1!==(e=Object.assign({},pc,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=mc}},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))})},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}},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},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},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},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}=vc(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=>(vc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(vc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(vc(e),e=kc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(vc(e),Pc(e)))}toNegative(e){return Ac(this,e).map(e=>(vc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(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 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)}},Ec=function(e){return e.match("#Honorific+? #Person+")},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 Nc="male",Ic="female",Tc={mr:Nc,mrs:Ic,miss:Ic,madam:Ic,king:Nc,queen:Ic,duke:Nc,duchess:Ic,baron:Nc,baroness:Ic,count:Nc,countess:Ic,prince:Nc,princess:Ic,sire:Nc,dame:Ic,lady:Ic,ayatullah:Nc,congressman:Nc,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 Nc;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 Nc}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 Nc;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=Ec(this);return t=Dc(t,e),new People(this.document,t.pointer)}},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},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)}},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},Fc={api:function(e){Cc(e),Vc(e),Bc(e),$c(e)}},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},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},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"},Rc={conditional:!0},Uc={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$",[Uc]]],"gerund-phrase":[["^#PastTense #Gerund$",[_c]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Uc]],["^have #PastTense #Gerund$",[_c]],["^will have #PastTense #Gerund$",[_c]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[_c]]],"simple-future":[["^will #Adverb? #Infinitive",[Uc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,Qc]]],"past-progressive":[["^(was|were) #Gerund$",[_c,Qc]]],"future-progressive":[["^will be #Gerund$",[Uc,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$",[Uc,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$",[Uc,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)",[Uc,Yc,Rc]],["will be being? (#PastTense|#Participle)",[Uc,Yc,Rc]]],"present-conditional":[["would be #PastTense",[Kc,Rc]]],"past-conditional":[["would have been #PastTense",[_c,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Uc]]],"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,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},ph=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),mh=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"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var bh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:mh(t.adverbs.pre),postAdverbs:mh(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const vh={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,vh).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=ph(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),ph(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},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).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},Nh={infinitive:Eh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Eh(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":Eh,"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 Eh(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)=>(Eh(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$"),Eh(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 Nh.hasOwnProperty(n)?((e=Nh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","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(["lexicon","preTagger","postTagger","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(["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=bh(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)}}};return m.plugin(Sl),m.plugin(su),m.plugin(mu),m.plugin(Tu),m.plugin(dc),m.plugin(gc),m.plugin(jc),m.plugin(Fc),m.plugin(Wh),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]);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.0";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 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;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()),k(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(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=xe(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&&(Et(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&&(Et(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=Et(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(!xt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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;r>2]|=(i.charCodeAt(u)||128)<>6)+14]=8*s,u=0;u>4]+(bn[a]+(0|o[[a,5*a+1,3*a+5,7*a][s]%16+u])))<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+a++%4])|r>>>32-s),t,n];for(a=4;a;)l[--a]=l[a]+s[a]}for(e="";a<32;)e+=(l[a>>3]>>4*(1^7&a++)&15).toString(16);return e}}}};const yn=function(e,t){if(e[0]!==t[0])return!1;let[,n,r]=e,[,a,o]=t;return n<=a&&r>a||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},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}}},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},En=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},Nn=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=xn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=xn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},In.not=function(e){e=xn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=Nn(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=Nn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=Nn(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},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})},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=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},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},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;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===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),1!=(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,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},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)}},hr=function(e){Object.assign(e.prototype,cr)},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 br=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}},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},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},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: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(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})}}}},_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)},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(vn),m.extend(St),m.extend(Tn),m.extend(mr),m.plugin(be),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 ba=36,va="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ya=va.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var wa=function(e){if(void 0!==ya[e])return ya[e];let t=0,n=1,r=ba,a=1;for(;n=0;n--,a*=ba){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ka=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=Aa(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=ja(fa[e]);Ia.test(e)?Object.keys(t).forEach(t=>{if(Ga[t]=e,"Noun|Verb"===e){let e=Na(t,Da);Ga[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ta[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ta[e]="Emoticon"),delete Ta[""],delete Ta.null,delete Ta[" "];const Ca="Adjective";var Oa={beforeTags:{Determiner:Ca,Possessive:Ca},afterTags:{Adjective:Ca},beforeWords:{seem:Ca,seemed:Ca,seems:Ca,feel:Ca,feels:Ca,felt:Ca,appear:Ca,appears:Ca,appeared:Ca,also:Ca,over:Ca,under:Ca,too:Ca,it:Ca,but:Ca,still:Ca,really:Ca,quite:Ca,well:Ca,very:Ca,deeply:Ca,profoundly:Ca,extremely:Ca,so:Ca,badly:Ca,mostly:Ca,totally:Ca,awfully:Ca,rather:Ca,nothing:Ca,something:Ca,anything:Ca},afterWords:{too:Ca,also:Ca,or:Ca}};const Va="Gerund";var Ba={beforeTags:{Adverb:Va,Preposition:Va,Conjunction:Va},afterTags:{Adverb:Va,Possessive:Va,Person:Va,Pronoun:Va,Determiner:Va,Copula:Va,Preposition:Va,Conjunction:Va,Comparative:Va},beforeWords:{been:Va,keep:Va,continue:Va,stop:Va,am:Va,be:Va,me:Va,began:Va,start:Va,starts:Va,started:Va,stops:Va,stopped:Va,help:Va,helps:Va,avoid:Va,avoids:Va,love:Va,loves:Va,loved:Va,hate:Va,hates:Va,hated:Va},afterWords:{you:Va,me:Va,her:Va,him:Va,them:Va,their:Va,it:Va,this:Va,there:Va,on:Va,about:Va,for:Va}},za={beforeTags:Object.assign({},Oa.beforeTags,Ba.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Oa.afterTags,Ba.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Oa.beforeWords,Ba.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Oa.afterWords,Ba.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const $a="Singular";var Fa={beforeTags:{Determiner:$a,Possessive:$a,Acronym:$a,Noun:$a,Adjective:$a,PresentTense:$a,Gerund:$a,PastTense:$a,Infinitive:$a,Date:$a},afterTags:{Value:$a,Modal:$a,Copula:$a,PresentTense:$a,PastTense:$a,Demonym:$a},beforeWords:{the:$a,with:$a,without:$a,of:$a,for:$a,any:$a,all:$a,on:$a,cut:$a,cuts:$a,save:$a,saved:$a,saves:$a,make:$a,makes:$a,made:$a,minus:$a,plus:$a,than:$a,another:$a,versus:$a,neither:$a,favorite:$a,best:$a,daily:$a,weekly:$a,linear:$a,binary:$a,mobile:$a,lexical:$a,technical:$a,computer:$a,scientific:$a,formal:$a},afterWords:{of:$a,system:$a,aid:$a,method:$a,utility:$a,tool:$a,reform:$a,therapy:$a,philosophy:$a,room:$a,authority:$a,says:$a,said:$a,wants:$a,wanted:$a}};const Sa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ha={beforeTags:Object.assign({},Oa.beforeTags,Fa.beforeTags,Sa.beforeTags),afterTags:Object.assign({},Oa.afterTags,Fa.afterTags),beforeWords:Object.assign({},Oa.beforeWords,Fa.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Oa.afterWords,Fa.afterWords)};const Ma={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},La={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Wa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ja={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({},Oa.beforeTags,Ma),afterTags:Object.assign({},Oa.afterTags,La),beforeWords:Object.assign({},Oa.beforeWords,Wa),afterWords:Object.assign({},Oa.afterWords,Ja)};const Ka="Infinitive";var Ra={beforeTags:{Modal:Ka,Adverb:Ka,Negative:Ka,Plural:Ka},afterTags:{Determiner:Ka,Adverb:Ka,Possessive:Ka,Preposition:Ka},beforeWords:{i:Ka,we:Ka,you:Ka,they:Ka,to:Ka,please:Ka,will:Ka,have:Ka,had:Ka,would:Ka,could:Ka,should:Ka,do:Ka,did:Ka,does:Ka,can:Ka,must:Ka,us:Ka,me:Ka,he:Ka,she:Ka,it:Ka,being:Ka},afterWords:{the:Ka,me:Ka,you:Ka,him:Ka,her:Ka,them:Ka,it:Ka,a:Ka,an:Ka,up:Ka,down:Ka,by:Ka,out:Ka,off:Ka,under:Ka,when:Ka,all:Ka,to:Ka,because:Ka,although:Ka,before:Ka,how:Ka,otherwise:Ka,together:Ka,though:Ka,yet:Ka}};const Ua={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Qa={beforeTags:Object.assign({},Oa.beforeTags,Ra.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Oa.afterTags,Ra.afterTags,Ua.afterTags),beforeWords:Object.assign({},Oa.beforeWords,Ra.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Oa.afterWords,Ra.afterWords,{to:void 0})};const _a={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Za={},Ya={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Xa={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var eo={beforeTags:Object.assign({},Ba.beforeTags,Fa.beforeTags,_a),afterTags:Object.assign({},Ba.afterTags,Fa.afterTags,Za),beforeWords:Object.assign({},Ba.beforeWords,Fa.beforeWords,Ya),afterWords:Object.assign({},Ba.afterWords,Fa.afterWords,Xa)},to={beforeTags:Object.assign({},Ra.beforeTags,Fa.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ra.afterTags,Fa.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ra.beforeWords,Fa.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ra.afterWords,Fa.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const no="Person";var ro={beforeTags:{Honorific:no,Person:no,Preposition:no},afterTags:{Person:no,ProperNoun:no,Verb:no},ownTags:{ProperNoun:no},beforeWords:{hi:no,hey:no,yo:no,dear:no,hello:no},afterWords:{said:no,says:no,told:no,tells:no,feels:no,felt:no,seems:no,thinks:no,thought:no,spends:no,spendt:no,plays:no,played:no,sing:no,sang:no,learn:no,learned:no,wants:no,wanted:no}};const ao="Month",oo={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 io={beforeTags:Object.assign({},ro.beforeTags,oo.beforeTags),afterTags:Object.assign({},ro.afterTags,oo.afterTags),beforeWords:Object.assign({},ro.beforeWords,oo.beforeWords),afterWords:Object.assign({},ro.afterWords,oo.afterWords)};const so={Place:"Place"},lo={Place:"Place",Abbreviation:"Place"},uo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},ho={"Adj|Gerund":za,"Adj|Noun":Ha,"Adj|Past":qa,"Adj|Present":Qa,"Noun|Verb":to,"Noun|Gerund":eo,"Person|Noun":{beforeTags:Object.assign({},Fa.beforeTags,ro.beforeTags),afterTags:Object.assign({},Fa.afterTags,ro.afterTags),beforeWords:Object.assign({},Fa.beforeWords,ro.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Fa.afterWords,ro.afterWords)},"Person|Date":io,"Person|Verb":{beforeTags:Object.assign({},ro.beforeTags,Ra.beforeTags),afterTags:Object.assign({},ro.afterTags,Ra.afterTags),beforeWords:Object.assign({},ro.beforeWords,Ra.beforeWords),afterWords:Object.assign({},ro.afterWords,Ra.afterWords)},"Person|Place":{beforeTags:Object.assign({},so,ro.beforeTags),afterTags:Object.assign({},lo,ro.afterTags),beforeWords:Object.assign({},uo,ro.beforeWords),afterWords:Object.assign({},co,ro.afterWords)}},po=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};ho["Plural|Verb"]={beforeWords:po(ho["Noun|Verb"].beforeWords,{}),afterWords:po(ho["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:po(ho["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:po(ho["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var mo=ho;const go="Adjective",fo="Infinitive",bo="PresentTense",vo="Singular",yo="PastTense",wo="Adverb",ko="Plural",Po="Actor",Ao="Verb",jo="Noun",Eo="LastName",xo="Modal",No="Participle";var Io=[null,null,{ea:vo,ia:jo,ic:go,ly:wo,"'n":Ao,"'t":Ao},{oed:yo,ued:yo,xed:yo," so":wo,"'ll":xo,"'re":"Copula",azy:go,eer:jo,end:Ao,ped:yo,ffy:go,ify:fo,ing:"Gerund",ize:fo,ibe:fo,lar:go,mum:go,nes:bo,nny:go,ous:go,que:go,rol:vo,sis:vo,ogy:vo,oid:vo,ian:vo,zes:bo,eld:yo,ken:No,ven:No,ten:No,ect:fo,ict:fo,ign:fo,ful:go,bal:go},{amed:yo,aped:yo,ched:yo,lked:yo,rked:yo,reed:yo,nded:yo,mned:go,cted:yo,dged:yo,ield:vo,akis:Eo,cede:fo,chuk:Eo,czyk:Eo,ects:bo,ends:Ao,enko:Eo,ette:vo,wner:vo,fies:bo,fore:wo,gate:fo,gone:go,ices:ko,ints:ko,ruct:fo,ines:ko,ions:ko,less:go,llen:go,made:go,nsen:Eo,oses:bo,ould:xo,some:go,sson:Eo,tion:vo,tage:jo,ique:vo,tive:go,tors:jo,vice:vo,lier:vo,fier:vo,wned:yo,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:go,vide:fo,ract:fo,duce:fo,pose:fo,eive:fo,lyze:fo,lyse:fo,iant:go,nary:go},{elist:vo,holic:vo,phite:vo,tized:yo,urned:yo,eased:yo,ances:ko,bound:go,ettes:ko,fully:wo,ishes:bo,ities:ko,marek:Eo,nssen:Eo,ology:jo,osome:vo,tment:vo,ports:ko,rough:go,tches:bo,tieth:"Ordinal",tures:ko,wards:wo,where:wo,archy:jo,pathy:jo,opoly:jo,embly:jo,phate:jo,ndent:vo,scent:vo,onist:vo,anist:vo,alist:vo,olist:vo,icist:vo,ounce:fo,iable:go,borne:go,gnant:go,inant:go,igent:go,atory:go,rient:vo,dient:vo},{auskas:Eo,parent:vo,cedent:vo,ionary:vo,cklist:vo,keeper:Po,logist:Po,teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const To="Adjective",Go="Noun",Do="Verb";var Co=[null,null,{},{neo:Go,bio:Go,"de-":Do,"re-":Do,"un-":Do},{anti:Go,auto:Go,faux:To,hexa:Go,kilo:Go,mono:Go,nano:Go,octa:Go,poly:Go,semi:To,tele:Go,"pro-":To,"mis-":Do,"dis-":Do,"pre-":To},{anglo:Go,centi:Go,ethno:Go,ferro:Go,grand:Go,hepta:Go,hydro:Go,intro:Go,macro:Go,micro:Go,milli:Go,nitro:Go,penta:Go,quasi:To,radio:Go,tetra:Go,"omni-":To,"post-":To},{pseudo:To,"extra-":To,"hyper-":To,"inter-":To,"intra-":To,"deca-":To},{electro:Go}];const Oo="Adjective",Vo="Infinitive",Bo="PresentTense",zo="Singular",$o="PastTense",Fo="Adverb",So="Expression",Ho="Actor",Mo="Verb",Lo="Noun",Wo="LastName";var Jo={a:[[/.[aeiou]na$/,Lo,"tuna"],[/.[oau][wvl]ska$/,Wo],[/.[^aeiou]ica$/,zo,"harmonica"],[/^([hyj]a+)+$/,So,"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$/,Wo,"..ovich"],[/^ug?h+$/,So,"ughh"],[/^uh[ -]?oh$/,So,"uhoh"],[/[a-z]-ish$/,Oo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Wo,"polish-male"]],k:[[/^(k){2}$/,So,"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+$/,So,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oo,"republican"],[/[^aeiou]ician$/,Ho,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,So,"noooo"],[/^(yo)+$/,So,"yoo"],[/^wo{2,}[pt]?$/,So,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,zo],[/[^i]fer$/,Vo],[/.[^aeiou][ao]pher$/,Ho],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oo],[/[aeiou].*ist$/,Oo],[/^[a-z]et$/,Mo]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,Mo],[/.[lstrn]us$/,zo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,zo],[/[a-z]'s$/,Lo],[/^yes+$/,So]],v:[[/.[^aeiou][ai][kln]ov$/,Wo]],y:[[/.[cts]hy$/,Oo],[/.[st]ty$/,Oo],[/.[tnl]ary$/,Oo],[/.[oe]ry$/,zo],[/[rdntkbhs]ly$/,Fo],[/.(gg|bb|zz)ly$/,Oo],[/...lly$/,Fo],[/.[gk]y$/,Oo],[/[bszmp]{2}y$/,Oo],[/.[ai]my$/,Oo],[/[ea]{2}zy$/,Oo],[/.[^aeiou]ity$/,zo]]};const qo="Verb",Ko="Noun";var Ro={leftTags:[["Adjective",Ko],["Possessive",Ko],["Determiner",Ko],["Adverb",qo],["Pronoun",qo],["Value",Ko],["Ordinal",Ko],["Modal",qo],["Superlative",Ko],["Demonym",Ko],["Honorific","Person"]],leftWords:[["i",qo],["first",Ko],["it",qo],["there",qo],["not",qo],["because",Ko],["if",Ko],["but",Ko],["who",qo],["this",Ko],["his",Ko],["when",Ko],["you",qo],["very","Adjective"],["old",Ko],["never",qo],["before",Ko],["a","Singular"],["the",Ko],["been",qo]],rightTags:[["Copula",Ko],["PastTense",Ko],["Conjunction",Ko],["Modal",Ko]],rightWords:[["there",qo],["me",qo],["man","Adjective"],["only",qo],["him",qo],["it",qo],["were",Ko],["took",Ko],["himself",qo],["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"},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"},_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"},Zo={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"},Yo={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 ei=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},ni=/^([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(ni);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ni,"")]}(n[0],n[1])})};var ai=function(e={}){return(e=Object.assign({},e)).rules=ri(e.rules),e.rules=ti(e.rules),e.rev&&(e.rev=ri(e.rev),e.rev=ti(e.rev)),e.exceptions=ri(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},oi=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 ii=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,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"}),si=ai(Zo),li=ai(Qo),ui=ai(_o),ci=oi(ii),hi=oi(si),di=oi(li),pi=oi(ui),mi=ai(Uo),gi=ai(Yo);var fi={fromPast:ii,fromPresent:si,fromGerund:li,fromParticiple:ui,toPast:ci,toPresent:hi,toGerund:di,toParticiple:pi,toComparative:mi,toSuperlative:gi,fromComparative:oi(mi),fromSuperlative:oi(gi)},bi=["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,""]],yi=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(wi[t].forEach(n=>e[n]=t),e),{});var ki=wi,Pi=function(e){let t=e.substring(e.length-3);if(!0===ki.hasOwnProperty(t))return ki[t];let n=e.substring(e.length-2);return!0===ki.hasOwnProperty(n)?ki[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ai={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ji=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)),Ai.hasOwnProperty(e))c=Ai[e];else if("Participle"===n)c=ei(l,i);else if("PastTense"===n)c=ei(l,r);else if("PresentTense"===n)c=ei(l,a);else{if("Gerund"!==n)return e;c=ei(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:ei(i,n),PresentTense:ei(i,r),Gerund:ei(i,a),FutureTense:"will "+e},u=ei(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},xi=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 Ni="ically",Ii=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]),Ti=[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"]),Di={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")?Ii.has(e)?e.replace(/ically/,"ical"):Gi.has(e)?null:Di.hasOwnProperty(e)?Di[e]:xi(e,Ti)||e:null};const Oi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Vi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Bi=function(e){if(Vi.hasOwnProperty(e))return Vi[e];let t=xi(e,Oi);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"}],$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"},Fi=new Set(["terrible","annoying"]),Si=function(e,t){const n=t.two.models.toSuperlative;return ei(e,n)},Hi=function(e,t){const n=t.two.models.toComparative;return ei(e,n)};var Mi={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"]}},Li={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===Mi.hasOwnProperty(i)&&Mi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Na,nounToSingular:yi,verbToInfinitive:ji,getTense:Pi,verbConjugate:Ei,adjToSuperlative:Si,adjToComparative:Hi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ei(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ei(e,n)},advToAdjective:Ci,adjToAdverb:Bi,adjToNoun:function(e){if($i.hasOwnProperty(e))return $i[e];if(Fi.has(e))return null;let t=xi(e,zi);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 Ji=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var qi=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=Ji(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ji(r,"Infinitive","Verb"),Object.assign(s,l),l=Ji(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ji(o,"Adjective","Superlative"),Object.assign(s,l),l=Ji(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ki={two:{models:fi}};const Ri={"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:Li};let{lex:r,_multi:a}=Li.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=Ei(e,Ki);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]=Ri[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Qi(a,r,!1),"Adj|Present"===o&&(Qi(a,r,!0),function(e,t,n){let r=Si(e,n);t[r]=t[r]||"Superlative";let a=Hi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ji(a,Ki,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=ji(a,Ki,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ui(n,t)};let Zi={one:{_multiCache:{},lexicon:Ta},two:{irregularPlurals:ga,models:fi,suffixPatterns:Io,prefixPatterns:Co,endsWith:Jo,neighbours:Ro,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:Ga,clues:mo,uncountable:{},orgWords:bi}};Zi=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=qi(e),e=Wi(e)}(Zi);var Yi=Zi;const Xi=/^(under|over|mis|re|un|dis|semi)-?/;var es=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])}},ts=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 ns={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"]),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 os=function(e){if(!e||e.length<=3)return!1;if(rs.has(e))return!0;let t=e[e.length-1];return ns.hasOwnProperty(t)?ns[t].find(t=>e.endsWith(t)):"s"===t&&!as.find(t=>e.endsWith(t))};const is=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ss=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(os(e.normal)?ts(e,"Plural","3-plural-guess"):ts(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&&ts(e,t,"3-verb-tense-guess")}}(r)};const ls=/^\p{Lu}[\p{Ll}'’]/u,us=/[0-9]/,cs=["Date","Month","WeekDay","Unit"],hs=/^[IVXLCDM]{2,}$/,ds=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ps={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===ls.test(o)&&!1===us.test(o)?cs.find(e=>r.tags.has(e))?null:(ss(e,t,n),r.tags.has("Noun")||r.tags.clear(),ts(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&hs.test(o)&&ds.test(o)&&!ps[r.normal]?(ts(r,"RomanNumeral","2-xvii"),!0):null};const gs=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 fs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=gs(r.normal,n.two.suffixPatterns);if(null!==e)return ts(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=gs(r.implicit,n.two.suffixPatterns),null!==e))return ts(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const bs=/['‘’‛‵′`´]/,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 ts(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ks=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!!ks.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},As=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},js=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(Ps(a)||Ps(o))return ts(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(As(a)||As(o))return ts(n,"Year","2-tagYear-close");if(js(e[t-2])||js(e[t+2]))return ts(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 ts(n,"Year","2-tagYear-noun")}}}return null};const xs=/^[A-Z]('s|,)?$/,Ns=/^[A-Z-]+$/,Is=/([A-Z]\.)+[A-Z]?,?$/,Ts=/[A-Z]{2,}('s|,)?$/,Gs=/([a-z]\.)+[a-z]\.?$/,Ds={I:!0,A:!0};var Cs=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||Ds.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Is.test(n)&&!0!==Gs.test(n)&&!0!==xs.test(n)&&!0!==Ts.test(n))}(r,n)?(r.tags.clear(),ts(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ds.hasOwnProperty(r.text)&&xs.test(r.text)?(r.tags.clear(),ts(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ts(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ns.test(r.text)&&r.text.length<=6?(ts(r,"Acronym","3-titlecase-acronym"),!0):null};const Os=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Vs=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||Os(e[t-1],a),l=l||Os(e[t+1],o),l=l||Vs(e[t-1],r),l=l||Vs(e[t+1],i),l)return ts(s,l,"3-[neighbour]"),ss(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 $s=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},Fs=function(e,t,n){0===e[t].tags.size&&(ts(e[t],"Noun","3-[fallback]"),ss(e,t,n),e[t].confidence=.1)};const Ss=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Hs=(e,t,n)=>0!==t||e[1]?null:n;var Ms={"Adj|Gerund":(e,t)=>Ss(e,t),"Adj|Noun":(e,t)=>Ss(e,t),"Adj|Past":(e,t)=>Ss(e,t),"Adj|Present":(e,t)=>Ss(e,t),"Noun|Gerund":(e,t)=>Ss(e,t),"Noun|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ss(e,t),"Person|Verb":(e,t)=>0!==t&&Ss(e,t)};const Ls="undefined"!=typeof process&&process.env?process.env:self.env||{},Ws=/^(under|over|mis|re|un|dis|semi)-?/,Js=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ls.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},qs=(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&&Ls.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Ks={tagSwitch:es,checkSuffix:fs,checkRegex:ys,checkCase:ms,checkPrefix:ws,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")&&(ts(o,"Verb","3-[prefix]"),ts(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ts(o,"Adjective","3-[prefix]"),ts(o,"Prefix","3-[prefix]")))},checkYear:Es},Rs={checkAcronym:Cs,neighbours:Bs,orgWords:$s,nounFallback:Fs,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(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,r){if(!n)return null;const a=r.one.tagSet;let o=Js(e[t+1],n.afterWords);return o=o||Js(e[t-1],n.beforeWords),o=o||qs(e[t-1],n.beforeTags,a),o=o||qs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ms[o]&&(u=Ms[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ls.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)},Zs={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 Ys={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 ul=/'/;var cl=function(e,t){let n=e[t].normal.split(ul)[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 hl=/'/;var dl=function(e,t){let n=e[t].normal.split(hl)[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"]},pl=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},gl={in:!0,by:!0,for:!0};var fl=(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===gl[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 bl=/'/,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)},yl={d:(e,t)=>dl(e,t),t:(e,t)=>pl(e,t),s:(e,t,n)=>fl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):cl(e,t)},wl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var kl={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===bl.test(r[o].normal)&&([,i]=r[o].normal.split(bl));let s=null;yl.hasOwnProperty(i)&&(s=yl[i](r,o,t)),s&&(s=wl(s,e),ll(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=sl.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=il},hooks:["contractionTwo"]};const Pl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Al=["i","we","they"];let jl=[].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: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:"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:Al,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:Al,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Al,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 xl={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:jl}},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)},Il=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},Tl={api:function(e){e.prototype.swap=Il}};m.plugin(rl),m.plugin(kl),m.plugin(xl),m.plugin(Tl);var Gl=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},Dl=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 Cl={this:"Noun",then:"Pivot"};var Ol=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))})},Ml={compute:{chunks:function(e){const{document:t,world:n}=e;Ol(t),Vl(t),$l(e,t,n),Sl(t),Hl(t)}},api:function(e){e.prototype.chunks=Dl,e.prototype.clauses=Gl},hooks:["chunks"]};const Ll=/'s$/;var Wl=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(Ll,""),e.normal=e.normal.replace(Ll,"")})}),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 Jl=/\(/,ql=/\)/,Kl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Jl,"");let t=e[e.length-1];t.post=t.post.replace(ql,"")}),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 Ul={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Ql=RegExp("("+Object.keys(Ul).join("|")+")"),_l=RegExp("("+Object.values(Ul).join("|")+")"),Zl=function(e,t){const n=e[t].pre.match(Ql)[0]||"";if(!n||!Ul[n])return null;const r=Ul[n];for(;t{e[0].pre=e[0].pre.replace(Ql,"");let t=e[e.length-1];t.post=t.post.replace(_l,"")})}(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 Xl=/\./g;var eu=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(Xl,""),e.normal=e.normal.replace(Xl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Xl,""),e.normal=e.normal.replace(Xl,""),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)}},tu=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 nu=(e,t)=>"number"==typeof t?e.eq(t):e,ru=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 au=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=ru(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 nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=nu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=nu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=nu(t,e),new Adjectives(t.document,t.pointer)}};const ou=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},iu=[["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 su=[["emojis","emoji"],["atmentions","atMentions"]];var lu=function(e){iu.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=ou,su.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},uu={api:function(e){lu(e),Wl(e),Rl(e),Yl(e),au(e),tu(e),eu(e)}};const cu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var hu={case:e=>{cu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;cu(e,e=>e.text=n(e.text,t))},whitespace:e=>{cu(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=>{cu(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 du=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),pu="unicode|punctuation|whitespace|acronyms",mu="|case|contractions|parentheses|quotations|emoji|honorifics",gu={light:du(pu),medium:du(pu+mu),heavy:du(pu+mu+"|possessives|adverbs|nouns|verbs")};var fu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=gu[e]),Object.keys(e).forEach(t=>{hu.hasOwnProperty(t)&&hu[t](this,e[t])}),this}}},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 vu=["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 yu=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")},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:wu(e,t),isSubordinate:yu(e),root:t}};const Pu=e=>e.text(),Au=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),ju=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=ku(e);return{root:Pu(t.root),number:ju(t.number),determiner:Pu(t.determiner),adjectives:Au(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const xu={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,xu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",xu),e};const Iu={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,Iu).tag("Singular","toPlural"),e};const Gu=(e,t)=>"number"==typeof t?e.eq(t):e;var Du={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Gu(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 Gu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=ku(e).adjectives;n.found&&(t=t.concat(n))}),Gu(t,e)}toPlural(e){return Gu(this,e).map(e=>Nu(e,ku(e)))}toSingular(e){return Gu(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=Gu(t,e),new Nouns(this.document,t.pointer)}}},Cu=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},Ou=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},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 Fu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Su={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Hu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Mu=function(e){if(!0===Su.hasOwnProperty(e))return Su[e];if("a"===e||"an"===e)return 1;const t=Ou(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=Wu(n),r=Wu(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:Wu(n);let a=r.text("reduced");return Lu.test(a)&&(a=a.replace(Lu,""),r=r.replaceWith(a)),r=Ju.hasOwnProperty(a)?Ju[a]:Wu(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:Wu(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},Ku=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]],Uu=["","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"]],_u=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 Uu[e]&&t.push(Uu[e]),t};var Zu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ku(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(_u(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=Ku(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(" ")},Yu=function(e){return e.numerator&&e.denominator?`${Zu({num:e.numerator})} out of ${Zu({num:e.denominator})}`:""};const Xu={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 ec=e=>{let t=Zu(e).split(" "),n=t[t.length-1];return Xu.hasOwnProperty(n)?t[t.length-1]=Xu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},tc=function(e){if(!e.numerator||!e.denominator)return"";let t=Zu({num:e.numerator}),n=ec({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const nc=(e,t)=>"number"==typeof t?e.eq(t):e;var rc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return nc(this,e).map(qu)}get(e){return nc(this,e).map(qu)}json(e){return nc(this,e).map(t=>{let n=t.toView().json(e)[0],r=qu(t);return n.fraction=r,n},[])}toDecimal(e){return nc(this,e).forEach(e=>{let{decimal:t}=qu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return nc(this,e).forEach(e=>{let t=qu(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 nc(this,e).forEach(e=>{let t=qu(e),n=tc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return nc(this,e).forEach(e=>{let t=qu(e),n=Yu(t);e.replaceWith(n)}),this}toPercentage(e){return nc(this,e).forEach(e=>{let{decimal:t}=qu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Cu(this);return t=nc(t,e),new Fractions(this.document,t.pointer)}};const ac="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var oc=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("("+ac+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+ac+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+ac+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+ac+")"));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) (${ac})`),r=e.has("("+ac+") #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("("+ac+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+ac+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},ic=function(e){if("string"==typeof e)return{num:Mu(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=qu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Mu(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")}},sc=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=Ku(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const lc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},uc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var cc=function(e){let t={suffix:"",prefix:e.prefix};return lc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+lc[e.prefix],t.prefix=""),uc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+uc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},hc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=cc(e);return t+ec(e)+n}if("Ordinal"===t)return e.prefix+sc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=cc(e);return t+Zu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const dc=(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 dc(this,e).map(ic)}get(e){return dc(this,e).map(ic).map(e=>e.num)}json(e){return dc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ic(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=ic(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=hc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=ic(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=hc(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=>ic(t).num===e)}greaterThan(e){return this.filter(t=>ic(t).num>e)}lessThan(e){return this.filter(t=>ic(t).num{let r=ic(n).num;return r>e&&r{let n=ic(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=hc(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=ic(e).num);let t=this.map(t=>{let n=ic(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=hc(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=oc(this);return t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=oc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=oc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},mc={api:function(e){rc(e),pc(e)}};const gc={people:!0,emails:!0,phoneNumbers:!0,places:!0},fc=function(e={}){return!1!==(e=Object.assign({},gc,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=fc}},vc=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))})},yc=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))))))},wc=function(e){let t=e.clauses(),n=yc(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}},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},Pc=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},Ac=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},jc=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}=wc(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=>(wc(e),kc(e)))}toPresentTense(e){return Ec(this,e).map(e=>(wc(e),Pc(e)))}toFutureTense(e){return Ec(this,e).map(e=>(wc(e),e=Ac(e)))}toInfinitive(e){return Ec(this,e).map(e=>(wc(e),jc(e)))}toNegative(e){return Ec(this,e).map(e=>(wc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ec(this,e).map(e=>(wc(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=vc(this);return Ec(t,e)}};Object.assign(e.prototype,t)}},Nc=function(e){return e.match("#Honorific+? #Person+")},Ic=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",Gc="female",Dc={mr:Tc,mrs:Gc,miss:Gc,madam:Gc,king:Tc,queen:Gc,duke:Tc,duchess:Gc,baron:Tc,baroness:Gc,count:Tc,countess:Gc,prince:Tc,princess:Gc,sire:Tc,dame:Gc,lady:Gc,ayatullah:Tc,congressman:Tc,congresswoman:Gc,"first lady":Gc,mx:null};var Cc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Gc;if(n.has("#MaleName"))return Tc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Dc.hasOwnProperty(e))return Dc[e];if(/^her /.test(e))return Gc;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 Gc}return null};const Oc=(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 Oc(this,e).map(Ic)}json(e){return Oc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ic(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Cc(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=Oc(t,e),new People(this.document,t.pointer)}},Bc=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=Bc(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 Fc=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 Sc=function(e){e.prototype.topics=Fc},Hc={api:function(e){Vc(e),zc(e),$c(e),Sc(e)}},Mc=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},Lc=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},Wc=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 Jc=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},qc=function(e){return e.match("#Negative")},Kc=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=Lc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Wc(t,n),auxiliary:Jc(t,n),negative:qc(t),phrasal:Kc(n)}};const Uc={tense:"PresentTense"},Qc={conditional:!0},_c={tense:"FutureTense"},Zc={progressive:!0},Yc={tense:"PastTense"},Xc={complete:!0,progressive:!1},eh={passive:!0},th=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},nh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Uc]],["^wanted to #Infinitive$",[Yc]],["^will want to #Infinitive$",[_c]]],"gerund-phrase":[["^#PastTense #Gerund$",[Yc]],["^#PresentTense #Gerund$",[Uc]],["^#Infinitive #Gerund$",[Uc]],["^will #Infinitive #Gerund$",[_c]],["^have #PastTense #Gerund$",[Yc]],["^will have #PastTense #Gerund$",[Yc]]],"simple-present":[["^#PresentTense$",[Uc]],["^#Infinitive$",[Uc]]],"simple-past":[["^#PastTense$",[Yc]]],"simple-future":[["^will #Adverb? #Infinitive",[_c]]],"present-progressive":[["^(is|are|am) #Gerund$",[Uc,Zc]]],"past-progressive":[["^(was|were) #Gerund$",[Yc,Zc]]],"future-progressive":[["^will be #Gerund$",[_c,Zc]]],"present-perfect":[["^(has|have) #PastTense$",[Yc,Xc]]],"past-perfect":[["^had #PastTense$",[Yc,Xc]],["^had #PastTense to #Infinitive",[Yc,Xc]]],"future-perfect":[["^will have #PastTense$",[_c,Xc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Yc,Zc]]],"past-perfect-progressive":[["^had been #Gerund$",[Yc,Zc]]],"future-perfect-progressive":[["^will have been #Gerund$",[_c,Zc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Yc,eh]],["^(was|were) being (#PastTense|#Participle)",[Yc,eh]],["^(had|have) been (#PastTense|#Participle)",[Yc,eh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Uc,eh]],["^(is|are|am) being (#PastTense|#Participle)",[Uc,eh]],["^has been (#PastTense|#Participle)",[Uc,eh]]],"passive-future":[["will have been (#PastTense|#Participle)",[_c,eh,Qc]],["will be being? (#PastTense|#Participle)",[_c,eh,Qc]]],"present-conditional":[["would be #PastTense",[Uc,Qc]]],"past-conditional":[["would have been #PastTense",[Yc,Qc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[_c]]],"auxiliary-past":[["^did #Infinitive$",[Yc,{plural:!1}]],["^used to #Infinitive$",[Yc,Xc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Uc,Xc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Yc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let rh=[];Object.keys(nh).map(e=>{nh[e].forEach(t=>{rh.push({name:e,match:t[0],data:th(t[1])})})});var ah=rh,oh=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(),ih(r)&&(n.remove(r),r=n.last()),ih(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:sh(t,e)}};const uh=e=>e,ch=(e,t)=>{let n=lh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},hh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=lh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},dh=function(e,t){let n=lh(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},mh=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},gh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),fh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},bh=function(e){return e&&e.isView?e.text("normal"):""},vh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,ph(e))};var yh=function(e){let t=Rc(e);e=e.clone().toView();const n=oh(e,t);return{root:t.root.text(),preAdverbs:fh(t.adverbs.pre),postAdverbs:fh(t.adverbs.post),auxiliary:bh(t.auxiliary),negative:t.negative.found,prefix:bh(t.prefix),infinitive:vh(t.root),grammar:n}};const wh={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,wh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=dh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Ph={tags:!0},Ah={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}=lh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Ph),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ah.simple(e,t),e=Ah.noAux(e,t))},hasHad:e=>(e.replace("has","had",Ph),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}},jh={infinitive:Ah.simple,"simple-present":Ah.simple,"simple-past":uh,"simple-future":Ah.both,"present-progressive":e=>(e.replace("are","were",Ph),e.replace("(is|are|am)","was",Ph),e),"past-progressive":uh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ah.hasHad,"past-perfect":uh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=gh(e)),e.remove("have"),e),"present-perfect-progressive":Ah.hasHad,"past-perfect-progressive":uh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ph),e),"passive-past":e=>(e.replace("have","had",Ph),e),"passive-present":e=>(e.replace("(is|are)","was",Ph),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",Ph),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":uh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ph),e),"auxiliary-past":uh,"auxiliary-present":e=>(e.replace("(do|does)","did",Ph),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ph):(Ah.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":uh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ph),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ah.simple(e,t),gh(e),e)};var Eh=function(e,t,n){return jh.hasOwnProperty(n)?((e=jh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const xh={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,ph(a)),!1===ch(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=hh(e)),o&&(e=e.replace(a,o,xh)).not("#Particle").tag("PresentTense"),e},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===ch(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,xh)).not("#Particle").tag("Gerund"),e},Th={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=lh(e).subject;if(ch(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":Nh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=hh(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":uh,"past-progressive":(e,t)=>{let n=hh(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)=>(Nh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=lh(e).subject;return ch(e)||n.has("i")?((e=mh(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":uh,"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=hh(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":uh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":uh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Ih(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=dh(e);return e.replace(t.auxiliary,n),e}return Ih(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":uh,"modal-infinitive":uh,"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$"),Nh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return ch(e)&&(n="want"),e.replace("(want|wanted|wants)",n,xh),e.remove("will"),e}};var Gh=function(e,t,n){return Th.hasOwnProperty(n)?((e=Th[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Dh={tags:!0},Ch=(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,Dh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Oh=(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,Dh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Vh={infinitive:Ch,"simple-present":Ch,"simple-past":Ch,"simple-future":uh,"present-progressive":Oh,"past-progressive":Oh,"future-progressive":uh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":uh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":uh,"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":uh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":uh,"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":uh,"modal-past":uh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Bh=function(e,t,n){return e.has("will")||e.has("going to")?e:Vh.hasOwnProperty(n)?((e=Vh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const zh={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,ph(a));let s=r(i,e.model).Gerund;return s&&(s=`${hh(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 Fh={tags:!0},Sh=function(e,t){let n=dh(e);return e.prepend(n+" not"),e},Hh=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)},Mh=e=>e.has("(is|was|am|are|will|were|be)"),Lh={"simple-present":(e,t)=>!0===Mh(e)?Hh(e):(e=mh(e,t),e=Sh(e)),"simple-past":(e,t)=>!0===Mh(e)?Hh(e):((e=mh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Mh(e)?Hh(e):Sh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Fh),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=Sh(e)).replace("wants","want",Fh)};var Wh=function(e,t,n){if(e.has("#Negative"))return e;if(Lh.hasOwnProperty(n))return e=Lh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Mh(e)?Hh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var qh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Jh(this,e).map(Rc)}json(e,t){return Jh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=yh(t),n},[])}subjects(e){return Jh(this,e).map(e=>(Rc(e),lh(e).subject))}adverbs(e){return Jh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Jh(this,e).filter(e=>!0!==lh(e).plural)}isPlural(e){return Jh(this,e).filter(e=>!0===lh(e).plural)}isImperative(e){return Jh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return kh(e,t,n.form)})}toPresentTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Gh(e,t,n.form)})}toPastTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Eh(e,t,n.form)})}toFutureTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Bh(e,t,n.form)})}toGerund(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return $h(e,t,n.form)})}conjugate(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(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:Gh(e.clone(),t,n.form).text("normal"),FutureTense:Bh(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 Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Wh(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=Mc(this);return t=Jh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Ml),m.plugin(uu),m.plugin(fu),m.plugin(Du),m.plugin(mc),m.plugin(bc),m.plugin(xc),m.plugin(Hc),m.plugin(qh),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 5baefd451..c73eaf182 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.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},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}},Q={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 R=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,Q);var H={api:function(t){Object.assign(t.prototype,R)},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|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn,sn=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 ln="";var cn={green:t=>""+t+ln,red:t=>""+t+ln,blue:t=>""+t+ln,magenta:t=>""+t+ln,cyan:t=>""+t+ln,yellow:t=>""+t+ln,black:t=>""+t+ln,dim:t=>""+t+ln,i:t=>""+t+ln},an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(cn.blue("\n ──────")),e.forEach(t=>{console.log(cn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=cn.blue(" │ ")+cn.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 cn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},un=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},hn=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]}${cn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var pn=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()}},gn={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},bn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var vn=function(t,e){let n=bn(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},xn={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:bn,splitAll:vn}}},jn=function(t,e){let n=t.concat(e),r=bn(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=>yn(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},On=function(t,e){let n=bn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>yn(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},Pn=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=kn(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)}};_n.and=_n.union,_n.intersection=function(t){t=kn(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.not=function(t){t=kn(t,this);let e=En(this.fullPointer,t.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.difference=_n.not,_n.complement=function(){let t=this.all(),e=En(t.fullPointer,this.fullPointer);return e=Pn(e,this.document),this.toView(e)},_n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=jn(t,[e])}),t=Pn(t,this.document),this.update(t)};var Sn={methods:xn,api:function(t){Object.assign(t.prototype,_n)}};const An=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var $n=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(An(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(An(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=An(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},Tn=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})},Cn=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)})},zn=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},Nn=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=$n(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=Tn(o,e.hooks);return i=Cn(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),zn(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===Nn(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 Ln=/ /,Vn=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(),Ln.test(e))!function(t,e,n,r){let o=e.split(Ln);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;nDn(t,e,n,r))};var Gn=Dn,Bn=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=>Mn({id:t})),e}return[Mn({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},Qn=t=>"[object Array]"===Object.prototype.toString.call(t),Rn=t=>(t=t||"").trim(),Hn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Un.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:Wn(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=Mn({});return t.forEach(t=>{if((t=Mn(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):(In(e=t).forEach(Mn),e);var e},Zn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return In(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},Kn=function(t){let e=In(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},Jn={text:Zn,txt:Zn,array:Kn,flat:Kn},Xn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Zn(t,!0)),null):Jn.hasOwnProperty(e)?Jn[e](t):t},Yn=t=>{In(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},tr=/\//;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=Rn(t),!tr.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)||Mn({});return new g(e)}add(t,e={}){if(Qn(t))return t.forEach(t=>this.add(Rn(t),e)),this;t=Rn(t);let n=Mn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Rn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return In(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=In(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 In(this.json)}fillDown(){var t;return t=this.json,In(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 Qn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){Yn(this.json);let t=In(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 Yn(this.json),Xn(this.json,t)}debug(){return Yn(this.json),Xn(this.json,"debug"),this}}const er=function(t){let e=Hn(t);return new g(e)};er.prototype.plugin=function(t){t(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(t){if(nr.hasOwnProperty(t.id))return nr[t.id];if(nr.hasOwnProperty(t.is))return nr[t.is];let e=t._cache.parents.find(t=>nr[t]);return nr[e]};var or=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:rr(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 ir=function(t){return t?"string"==typeof t?[t]:t:[]};var sr=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=ir(t[e].children),t[e].not=ir(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},lr={one:{setTag:Gn,unTag:Bn,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=sr(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 er(e).cache().fillDown().out("array")}(Object.assign({},e,t));return or(n)}}};const cr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ar={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||""),cr(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 cr(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)}},ur=function(t){Object.assign(t.prototype,ar)},hr={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 fr=new Set(["Auxiliary","Possessive"]);var pr={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(fr.has(t)||!e.hasOwnProperty(n))return 1;if(fr.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:lr,api:ur,lib:hr};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var mr=function(t){let e=[],n=t.split(gr);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 Nr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Fr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Lr=/['’]/,Vr=/^[a-z]\.([a-z]\.)+/i,qr=/^[-+.][0-9]/,Dr=/^'[0-9]{2}/;var Gr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Nr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!qr.test(t)?"'"===n&&Dr.test(t)?(n="",e):"":(n="",e)))).replace(Fr,o=>(r=o,Lr.test(o)&&/[sn]['’]$/.test(e)&&!1===Lr.test(n)?(r=r.replace(Lr,""),"'"):!0===Vr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}},Br=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Ur=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,Ir=/([a-z]\.)+[a-z]\.?$/;var Qr=function(t){return function(t){return!0===Mr.test(t)||!0===Ir.test(t)||!0===Ur.test(t)||!0===Wr.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Rr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Br(r),r=n(r,e),r=Qr(r),t.normal=r},Hr={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:Or,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(Cr);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=Ar(n),n=_r(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Gr(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=>{Rr(t,e)}),n})}}}},Zr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Kr={},Jr={};[[["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=>{Kr[e]=!0,Jr[e]="Abbreviation",void 0!==t[1]&&(Jr[e]=[Jr[e],t[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((t,e)=>(t[e]=!0,t),{});let Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},to={};Object.keys(Yr).forEach((function(t){Yr[t].split("").forEach((function(e){to[e]=t}))}));const eo=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var oo=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])),eo.test(n)&&!no.test(n)&&!ro.test(n)){let e=n.split(eo);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const io=/^\p{Letter}+-\p{Letter}+$/u;var so=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"),io.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},lo=function(t){let e=0,n=0,r=t.document;for(let t=0;tco(t,oo),machine:t=>co(t,so),normal:t=>co(t,Rr),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 fo={safe:!0,min:3};var po={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},fo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=ho(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}},go={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=uo},lib:po,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(wn),d.extend(Ge),d.extend(Sn),d.extend(pr),d.plugin(yt),d.extend(ao),d.plugin(w),d.extend($t),d.extend(go),d.extend(Et),d.extend(Fn),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]);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.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},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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn,sn=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 ln="";var cn={green:t=>""+t+ln,red:t=>""+t+ln,blue:t=>""+t+ln,magenta:t=>""+t+ln,cyan:t=>""+t+ln,yellow:t=>""+t+ln,black:t=>""+t+ln,dim:t=>""+t+ln,i:t=>""+t+ln},an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(cn.blue("\n ──────")),e.forEach(t=>{console.log(cn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=cn.blue(" │ ")+cn.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 cn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},un=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},hn=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]}${cn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var pn=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()}},gn={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;r>2]|=(s.charCodeAt(a)||128)<>6)+14]=8*l,a=0;a>4]+(yn[o]+(0|i[[o,5*o+1,3*o+5,7*o][l]%16+a])))<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+o++%4])|r>>>32-l),e,n];for(o=4;o;)c[--o]=c[o]+l[o]}for(t="";o<32;)t+=(c[o>>3]>>4*(1^7&o++)&15).toString(16);return t}}}};const vn=function(t,e){if(t[0]!==e[0])return!1;let[,n,r]=t,[,o,i]=e;return n<=o&&r>o||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},En={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:xn,splitAll:jn}}},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},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},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})},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=>0===t.wants.length||t.wants.filter(t=>r.has(t)).length>=t.minWant)})},Fn=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},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;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===Ln(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 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),1!=(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,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 cr=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},ar={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=cr(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)}},fr=function(t){Object.assign(t.prototype,hr)},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:ar,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}},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},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},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})}}}},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 co=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)},ao=function(t){let e=0,n=0,r=t.document;for(let t=0;tuo(t,so),machine:t=>uo(t,co),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}},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"]};return 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),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 a867f7bd7..48c32eaac 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.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},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 Q={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 R=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,Q);var H={api:function(t){Object.assign(t.prototype,R)},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|$)/,Qt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Rt=/ /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(Qt))}),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(Rt))}),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(Qe,""),He.test(o)&&(o=" "),o=o.replace(Re,""),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(Qe,""),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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn;var sn=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 ln={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 an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(ln.blue("\n ──────")),e.forEach(t=>{console.log(ln.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=ln.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=ln.blue(" │ ")+ln.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 ln[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var cn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(ln.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(ln.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(ln.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(ln.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var un=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]}${ln.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const hn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var fn=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 dn={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},yn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var bn=function(t,e){let n=yn(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 vn={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:yn,splitAll:bn}}};var xn=function(t,e){let n=t.concat(e),r=yn(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=>wn(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 En=function(t,e){let n=yn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>wn(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},kn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Pn={union:function(t){t=On(t,this);let e=xn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)}};Pn.and=Pn.union,Pn.intersection=function(t){t=On(t,this);let e=En(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.not=function(t){t=On(t,this);let e=jn(this.fullPointer,t.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.difference=Pn.not,Pn.complement=function(){let t=this.all(),e=jn(t.fullPointer,this.fullPointer);return e=kn(e,this.document),this.toView(e)},Pn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=xn(t,[e])}),t=kn(t,this.document),this.update(t)};var _n={methods:vn,api:function(t){Object.assign(t.prototype,Pn)}};const Sn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var An=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(Sn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Sn(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=Sn(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 $n=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 Tn=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 Cn=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 zn=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=An(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=$n(o,e.hooks);return i=Tn(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),Cn(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===zn(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 Fn=/ /,Ln=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Vn=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(),Fn.test(e))!function(t,e,n,r){let o=e.split(Fn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Vn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nqn(t,e,n,r))};var Dn=qn;var Gn=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=>Bn({id:t})),e}return[Bn({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},In=t=>"[object Array]"===Object.prototype.toString.call(t),Qn=t=>(t=t||"").trim(),Rn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Mn.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:Un(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=Bn({});return t.forEach(t=>{if((t=Bn(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):(Wn(e=t).forEach(Bn),e);var e},Hn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Wn(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},Zn=function(t){let e=Wn(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},Kn={text:Hn,txt:Hn,array:Zn,flat:Zn},Jn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Hn(t,!0)),null):Kn.hasOwnProperty(e)?Kn[e](t):t},Xn=t=>{Wn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},Yn=/\//;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=Qn(t),!Yn.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)||Bn({});return new g(e)}add(t,e={}){if(In(t))return t.forEach(t=>this.add(Qn(t),e)),this;t=Qn(t);let n=Bn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Qn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Wn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Wn(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 Wn(this.json)}fillDown(){var t;return t=this.json,Wn(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 In(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){Xn(this.json);let t=Wn(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 Xn(this.json),Jn(this.json,t)}debug(){return Xn(this.json),Jn(this.json,"debug"),this}}const tr=function(t){let e=Rn(t);return new g(e)};tr.prototype.plugin=function(t){t(this)};var er={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(t){if(er.hasOwnProperty(t.id))return er[t.id];if(er.hasOwnProperty(t.is))return er[t.is];let e=t._cache.parents.find(t=>er[t]);return er[e]};var rr=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:nr(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 or=function(t){return t?"string"==typeof t?[t]:t:[]};var ir=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=or(t[e].children),t[e].not=or(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 sr={one:{setTag:Dn,unTag:Gn,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=ir(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 tr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return rr(n)}}};const lr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ar={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||""),lr(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 lr(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 cr=function(t){Object.assign(t.prototype,ar)};var ur={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 hr=new Set(["Auxiliary","Possessive"]);var fr={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(hr.has(t)||!e.hasOwnProperty(n))return 1;if(hr.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:sr,api:cr,lib:ur};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,dr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var gr=function(t){let e=[],n=t.split(dr);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 zr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Nr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Fr=/['’]/,Lr=/^[a-z]\.([a-z]\.)+/i,Vr=/^[-+.][0-9]/,qr=/^'[0-9]{2}/;var Dr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(zr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Vr.test(t)?"'"===n&&qr.test(t)?(n="",e):"":(n="",e)))).replace(Nr,o=>(r=o,Fr.test(o)&&/[sn]['’]$/.test(e)&&!1===Fr.test(n)?(r=r.replace(Fr,""),"'"):!0===Lr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Gr=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 Br=/([A-Z]\.)+[A-Z]?,?$/,Mr=/^[A-Z]\.,?$/,Ur=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var Ir=function(t){return function(t){return!0===Br.test(t)||!0===Wr.test(t)||!0===Mr.test(t)||!0===Ur.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Qr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Gr(r),r=n(r,e),r=Ir(r),t.normal=r};var Rr={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:Er,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(Tr);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=Sr(n),n=Pr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Dr(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=>{Qr(t,e)}),n})}}}};var Hr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zr={},Kr={};[[["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=>{Zr[e]=!0,Kr[e]="Abbreviation",void 0!==t[1]&&(Kr[e]=[Kr[e],t[1]])})});var Jr=["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 Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(Xr).forEach((function(t){Xr[t].split("").forEach((function(e){Yr[e]=t}))}));const to=/\//,eo=/[a-z]\.[a-z]/i,no=/[0-9]/;var ro=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])),to.test(n)&&!eo.test(n)&&!no.test(n)){let e=n.split(to);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=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"),oo.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var so=function(t){let e=0,n=0,r=t.document;for(let t=0;tlo(t,ro),machine:t=>lo(t,io),normal:t=>lo(t,Qr),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 ho={safe:!0,min:3};var fo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},ho,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=uo(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 po={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=co},lib:fo,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(mn),d.extend(Ge),d.extend(_n),d.extend(fr),d.plugin(yt),d.extend(ao),d.plugin(w),d.extend($t),d.extend(po),d.extend(Et),d.extend(Nn);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]);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.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},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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn;var sn=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 ln={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 an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(ln.blue("\n ──────")),e.forEach(t=>{console.log(ln.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=ln.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=ln.blue(" │ ")+ln.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 ln[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var cn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(ln.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(ln.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(ln.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(ln.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var un=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]}${ln.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const hn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var fn=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 dn={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;r>2]|=(s.charCodeAt(c)||128)<>6)+14]=8*l,c=0;c>4]+(wn[o]+(0|i[[o,5*o+1,3*o+5,7*o][l]%16+c])))<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+o++%4])|r>>>32-l),e,n];for(o=4;o;)a[--o]=a[o]+l[o]}for(t="";o<32;)t+=(a[o>>3]>>4*(1^7&o++)&15).toString(16);return t}}}};const bn=function(t,e){if(t[0]!==e[0])return!1;let[,n,r]=t,[,o,i]=e;return n<=o&&r>o||o<=n&&i>n},vn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var xn=function(t,e){let n=vn(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 jn={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:vn,splitAll:xn}}};var En=function(t,e){let n=t.concat(e),r=vn(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=>bn(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 kn=function(t,e){let n=vn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>bn(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},_n=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Sn={union:function(t){t=Pn(t,this);let e=En(this.fullPointer,t.fullPointer);return e=_n(e,this.document),this.toView(e)}};Sn.and=Sn.union,Sn.intersection=function(t){t=Pn(t,this);let e=kn(this.fullPointer,t.fullPointer);return e=_n(e,this.document),this.toView(e)},Sn.not=function(t){t=Pn(t,this);let e=On(this.fullPointer,t.fullPointer);return e=_n(e,this.document),this.toView(e)},Sn.difference=Sn.not,Sn.complement=function(){let t=this.all(),e=On(t.fullPointer,this.fullPointer);return e=_n(e,this.document),this.toView(e)},Sn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=En(t,[e])}),t=_n(t,this.document),this.update(t)};var An={methods:jn,api:function(t){Object.assign(t.prototype,Sn)}};const $n=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Tn=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($n(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push($n(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=$n(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 Cn=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 zn=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 Nn=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 Fn=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=Tn(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=Cn(o,e.hooks);return i=zn(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),Nn(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===Fn(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 Vn=/ /,qn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Dn=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(),Vn.test(e))!function(t,e,n,r){let o=e.split(Vn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Dn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nGn(t,e,n,r))};var Bn=Gn;var Mn=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=>Un({id:t})),e}return[Un({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},Qn=t=>"[object Array]"===Object.prototype.toString.call(t),Hn=t=>(t=t||"").trim(),Zn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Wn.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:In(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=Un({});return t.forEach(t=>{if((t=Un(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):(Rn(e=t).forEach(Un),e);var e},Kn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Rn(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},Jn=function(t){let e=Rn(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},Xn={text:Kn,txt:Kn,array:Jn,flat:Jn},Yn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Kn(t,!0)),null):Xn.hasOwnProperty(e)?Xn[e](t):t},tr=t=>{Rn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},er=/\//;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=Hn(t),!er.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)||Un({});return new g(e)}add(t,e={}){if(Qn(t))return t.forEach(t=>this.add(Hn(t),e)),this;t=Hn(t);let n=Un({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Hn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Rn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Rn(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 Rn(this.json)}fillDown(){var t;return t=this.json,Rn(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 Qn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){tr(this.json);let t=Rn(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 tr(this.json),Yn(this.json,t)}debug(){return tr(this.json),Yn(this.json,"debug"),this}}const nr=function(t){let e=Zn(t);return new g(e)};nr.prototype.plugin=function(t){t(this)};var rr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const or=function(t){if(rr.hasOwnProperty(t.id))return rr[t.id];if(rr.hasOwnProperty(t.is))return rr[t.is];let e=t._cache.parents.find(t=>rr[t]);return rr[e]};var ir=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:or(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 sr=function(t){return t?"string"==typeof t?[t]:t:[]};var lr=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=sr(t[e].children),t[e].not=sr(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 ar={one:{setTag:Bn,unTag:Mn,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=lr(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 nr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return ir(n)}}};const cr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ur={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||""),cr(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 cr(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 hr=function(t){Object.assign(t.prototype,ur)};var fr={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 pr=new Set(["Auxiliary","Possessive"]);var dr={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(pr.has(t)||!e.hasOwnProperty(n))return 1;if(pr.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:ar,api:hr,lib:fr};const gr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var wr=function(t){let e=[],n=t.split(mr);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 Fr=/^[ \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]+$/,Vr=/['’]/,qr=/^[a-z]\.([a-z]\.)+/i,Dr=/^[-+.][0-9]/,Gr=/^'[0-9]{2}/;var Br=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Fr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Dr.test(t)?"'"===n&&Gr.test(t)?(n="",e):"":(n="",e)))).replace(Lr,o=>(r=o,Vr.test(o)&&/[sn]['’]$/.test(e)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===qr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Mr=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 Ur=/([A-Z]\.)+[A-Z]?,?$/,Wr=/^[A-Z]\.,?$/,Ir=/[A-Z]{2,}('s|,)?$/,Rr=/([a-z]\.)+[a-z]\.?$/;var Qr=function(t){return function(t){return!0===Ur.test(t)||!0===Rr.test(t)||!0===Wr.test(t)||!0===Ir.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Hr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Mr(r),r=n(r,e),r=Qr(r),t.normal=r};var Zr={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:kr,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(zr);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=$r(n),n=Sr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Br(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=>{Hr(t,e)}),n})}}}};var Kr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Jr={},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(t=>{t[0].forEach(e=>{Jr[e]=!0,Xr[e]="Abbreviation",void 0!==t[1]&&(Xr[e]=[Xr[e],t[1]])})});var Yr=["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 to={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(to).forEach((function(t){to[t].split("").forEach((function(e){eo[e]=t}))}));const no=/\//,ro=/[a-z]\.[a-z]/i,oo=/[0-9]/;var io=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])),no.test(n)&&!ro.test(n)&&!oo.test(n)){let e=n.split(no);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const so=/^\p{Letter}+-\p{Letter}+$/u;var lo=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"),so.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var ao=function(t){let e=0,n=0,r=t.document;for(let t=0;tco(t,io),machine:t=>co(t,lo),normal:t=>co(t,Hr),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 po={safe:!0,min:3};var go={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},po,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=fo(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 mo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=ho},lib:go,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(yn),d.extend(Ge),d.extend(An),d.extend(dr),d.plugin(yt),d.extend(uo),d.plugin(w),d.extend($t),d.extend(mo),d.extend(Et),d.extend(Ln);export{d as default}; diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index 0d9d656c6..44cd1bb1a 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.0";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 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;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()),k(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(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=xe(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&&(Et(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&&(Et(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=Et(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(!xt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=vn(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:vn,splitAll:yn}}},kn=function(e,t){let n=e.concat(t),r=vn(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=>bn(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},An=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=jn(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=jn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=En(e,this.document),this.update(e)};var Nn={methods:wn,api:function(e){Object.assign(e.prototype,xn)}};const In=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(In(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(In(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=In(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},Gn=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})},Dn=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)})},Cn=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},On=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=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 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=Gn(a,t.hooks);return o=Dn(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),Cn(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===On(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 Bn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Bn.test(t))!function(e,t,n,r){let a=t.split(Bn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,r))};var Sn=Fn,Hn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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=Mn({});return e.forEach(e=>{if((e=Mn(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):(Jn(t=e).forEach(Mn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Jn(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},Qn=function(e){let t=Jn(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},_n={text:Un,txt:Un,array:Qn,flat:Qn},Zn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Yn=e=>{Jn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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=Kn(e),!Xn.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Jn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Jn(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 Jn(this.json)}fillDown(){var e;return e=this.json,Jn(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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Jn(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 Yn(this.json),Zn(this.json,e)}debug(){return Yn(this.json),Zn(this.json,"debug"),this}}const er=function(e){let t=Rn(e);return new g$1(t)};er.prototype.plugin=function(e){e(this)};var tr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const nr=function(e){if(tr.hasOwnProperty(e.id))return tr[e.id];if(tr.hasOwnProperty(e.is))return tr[e.is];let t=e._cache.parents.find(e=>tr[e]);return tr[t]};var rr=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:nr(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 ar=function(e){return e?"string"==typeof e?[e]:e:[]};var or=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=ar(e[t].children),e[t].not=ar(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ir={one:{setTag:Sn,unTag:Hn,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=or(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 er(t).cache().fillDown().out("array")}(Object.assign({},t,e));return rr(n)}}};const sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var lr={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||""),sr(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 sr(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)}},ur=function(e){Object.assign(e.prototype,lr)},cr={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 hr=new Set(["Auxiliary","Possessive"]);var dr={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(hr.has(e)||!t.hasOwnProperty(n))return 1;if(hr.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:ir,api:ur,lib:cr};const pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var gr=function(e){let t=[],n=e.split(mr);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 Or=/^[ \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]+$/,Br=/['’]/,zr=/^[a-z]\.([a-z]\.)+/i,$r=/^[-+.][0-9]/,Fr=/^'[0-9]{2}/;var Sr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Or,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$r.test(e)?"'"===n&&Fr.test(e)?(n="",t):"":(n="",t)))).replace(Vr,a=>(r=a,Br.test(a)&&/[sn]['’]$/.test(t)&&!1===Br.test(n)?(r=r.replace(Br,""),"'"):!0===zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Hr=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 Mr=/([A-Z]\.)+[A-Z]?,?$/,Lr=/^[A-Z]\.,?$/,Wr=/[A-Z]{2,}('s|,)?$/,Jr=/([a-z]\.)+[a-z]\.?$/;var qr=function(e){return function(e){return!0===Mr.test(e)||!0===Jr.test(e)||!0===Lr.test(e)||!0===Wr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Kr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Hr(r),r=n(r,t),r=qr(r),e.normal=r},Rr={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:Ar,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(Dr);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=Ir(n),n=xr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Sr(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=>{Kr(e,t)}),n})}}}},Ur={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},_r={};[[["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=>{Qr[t]=!0,_r[t]="Abbreviation",void 0!==e[1]&&(_r[t]=[_r[t],e[1]])})});var Zr=["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 Yr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xr={};Object.keys(Yr).forEach((function(e){Yr[e].split("").forEach((function(t){Xr[t]=e}))}));const ea=/\//,ta=/[a-z]\.[a-z]/i,na=/[0-9]/;var ra=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])),ea.test(n)&&!ta.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 aa=/^\p{Letter}+-\p{Letter}+$/u;var oa=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"),aa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ia=function(e){let t=0,n=0,r=e.document;for(let e=0;esa(e,ra),machine:e=>sa(e,oa),normal:e=>sa(e,Kr),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 ha={safe:!0,min:3};var da={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ua},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ha,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ca(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(fn),m.extend(St),m.extend(Nn),m.extend(dr),m.plugin(be),m.extend(la),m.plugin(f),m.extend(Te),m.extend(da),m.extend(Pe),m.extend(Vn);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"},ma={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 ga=36,fa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ba=fa.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=ga,a=1;for(;n=0;n--,a*=ga){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ya=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=Pa(ma[e]);xa.test(e)?Object.keys(t).forEach(t=>{if(Ia[t]=e,"Noun|Verb"===e){let e=Ea(t,Ta);Ia[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ga="Adjective";var Da={beforeTags:{Determiner:Ga,Possessive:Ga},afterTags:{Adjective:Ga},beforeWords:{seem:Ga,seemed:Ga,seems:Ga,feel:Ga,feels:Ga,felt:Ga,appear:Ga,appears:Ga,appeared:Ga,also:Ga,over:Ga,under:Ga,too:Ga,it:Ga,but:Ga,still:Ga,really:Ga,quite:Ga,well:Ga,very:Ga,deeply:Ga,profoundly:Ga,extremely:Ga,so:Ga,badly:Ga,mostly:Ga,totally:Ga,awfully:Ga,rather:Ga,nothing:Ga,something:Ga,anything:Ga},afterWords:{too:Ga,also:Ga,or:Ga}};const Ca="Gerund";var Oa={beforeTags:{Adverb:Ca,Preposition:Ca,Conjunction:Ca},afterTags:{Adverb:Ca,Possessive:Ca,Person:Ca,Pronoun:Ca,Determiner:Ca,Copula:Ca,Preposition:Ca,Conjunction:Ca,Comparative:Ca},beforeWords:{been:Ca,keep:Ca,continue:Ca,stop:Ca,am:Ca,be:Ca,me:Ca,began:Ca,start:Ca,starts:Ca,started:Ca,stops:Ca,stopped:Ca,help:Ca,helps:Ca,avoid:Ca,avoids:Ca,love:Ca,loves:Ca,loved:Ca,hate:Ca,hates:Ca,hated:Ca},afterWords:{you:Ca,me:Ca,her:Ca,him:Ca,them:Ca,their:Ca,it:Ca,this:Ca,there:Ca,on:Ca,about:Ca,for:Ca}},Va={beforeTags:Object.assign({},Da.beforeTags,Oa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Da.afterTags,Oa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Da.beforeWords,Oa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Da.afterWords,Oa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ba="Singular";var za={beforeTags:{Determiner:Ba,Possessive:Ba,Acronym:Ba,Noun:Ba,Adjective:Ba,PresentTense:Ba,Gerund:Ba,PastTense:Ba,Infinitive:Ba,Date:Ba},afterTags:{Value:Ba,Modal:Ba,Copula:Ba,PresentTense:Ba,PastTense:Ba,Demonym:Ba},beforeWords:{the:Ba,with:Ba,without:Ba,of:Ba,for:Ba,any:Ba,all:Ba,on:Ba,cut:Ba,cuts:Ba,save:Ba,saved:Ba,saves:Ba,make:Ba,makes:Ba,made:Ba,minus:Ba,plus:Ba,than:Ba,another:Ba,versus:Ba,neither:Ba,favorite:Ba,best:Ba,daily:Ba,weekly:Ba,linear:Ba,binary:Ba,mobile:Ba,lexical:Ba,technical:Ba,computer:Ba,scientific:Ba,formal:Ba},afterWords:{of:Ba,system:Ba,aid:Ba,method:Ba,utility:Ba,tool:Ba,reform:Ba,therapy:Ba,philosophy:Ba,room:Ba,authority:Ba,says:Ba,said:Ba,wants:Ba,wanted:Ba}};const $a={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fa={beforeTags:Object.assign({},Da.beforeTags,za.beforeTags,$a.beforeTags),afterTags:Object.assign({},Da.afterTags,za.afterTags),beforeWords:Object.assign({},Da.beforeWords,za.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,za.afterWords)};const Sa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ha={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ma={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},La={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wa={beforeTags:Object.assign({},Da.beforeTags,Sa),afterTags:Object.assign({},Da.afterTags,Ha),beforeWords:Object.assign({},Da.beforeWords,Ma),afterWords:Object.assign({},Da.afterWords,La)};const Ja="Infinitive";var qa={beforeTags:{Modal:Ja,Adverb:Ja,Negative:Ja,Plural:Ja},afterTags:{Determiner:Ja,Adverb:Ja,Possessive:Ja,Preposition:Ja},beforeWords:{i:Ja,we:Ja,you:Ja,they:Ja,to:Ja,please:Ja,will:Ja,have:Ja,had:Ja,would:Ja,could:Ja,should:Ja,do:Ja,did:Ja,does:Ja,can:Ja,must:Ja,us:Ja,me:Ja,he:Ja,she:Ja,it:Ja,being:Ja},afterWords:{the:Ja,me:Ja,you:Ja,him:Ja,her:Ja,them:Ja,it:Ja,a:Ja,an:Ja,up:Ja,down:Ja,by:Ja,out:Ja,off:Ja,under:Ja,when:Ja,all:Ja,to:Ja,because:Ja,although:Ja,before:Ja,how:Ja,otherwise:Ja,together:Ja,though:Ja,yet:Ja}};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Da.beforeTags,qa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,qa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Da.beforeWords,qa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,qa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qa={},_a={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Za={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Ya={beforeTags:Object.assign({},Oa.beforeTags,za.beforeTags,Ua),afterTags:Object.assign({},Oa.afterTags,za.afterTags,Qa),beforeWords:Object.assign({},Oa.beforeWords,za.beforeWords,_a),afterWords:Object.assign({},Oa.afterWords,za.afterWords,Za)},Xa={beforeTags:Object.assign({},qa.beforeTags,za.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qa.afterTags,za.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qa.beforeWords,za.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qa.afterWords,za.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ro={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ao={beforeTags:Object.assign({},to.beforeTags,ro.beforeTags),afterTags:Object.assign({},to.afterTags,ro.afterTags),beforeWords:Object.assign({},to.beforeWords,ro.beforeWords),afterWords:Object.assign({},to.afterWords,ro.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Va,"Adj|Noun":Fa,"Adj|Past":Wa,"Adj|Present":Ra,"Noun|Verb":Xa,"Noun|Gerund":Ya,"Person|Noun":{beforeTags:Object.assign({},za.beforeTags,to.beforeTags),afterTags:Object.assign({},za.afterTags,to.afterTags),beforeWords:Object.assign({},za.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},za.afterWords,to.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,qa.beforeTags),afterTags:Object.assign({},to.afterTags,qa.afterTags),beforeWords:Object.assign({},to.beforeWords,qa.beforeWords),afterWords:Object.assign({},to.afterWords,qa.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const po="Adjective",mo="Infinitive",go="PresentTense",fo="Singular",bo="PastTense",vo="Adverb",yo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",jo="Modal",Eo="Participle";var xo=[null,null,{ea:fo,ia:Po,ic:po,ly:vo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":vo,"'ll":jo,"'re":"Copula",azy:po,eer:Po,end:ko,ped:bo,ffy:po,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:po,mum:po,nes:go,nny:po,ous:po,que:po,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:go,eld:bo,ken:Eo,ven:Eo,ten:Eo,ect:mo,ict:mo,ign:mo,ful:po,bal:po},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:po,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:go,ends:ko,enko:Ao,ette:fo,wner:fo,fies:go,fore:vo,gate:mo,gone:po,ices:yo,ints:yo,ruct:mo,ines:yo,ions:yo,less:po,llen:po,made:po,nsen:Ao,oses:go,ould:jo,some:po,sson:Ao,tion:fo,tage:Po,ique:fo,tive:po,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:po,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:po,nary:po},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:yo,bound:po,ettes:yo,fully:vo,ishes:go,ities:yo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:yo,rough:po,tches:go,tieth:"Ordinal",tures:yo,wards:vo,where:vo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const No="Adjective",Io="Noun",To="Verb";var Go=[null,null,{},{neo:Io,bio:Io,"de-":To,"re-":To,"un-":To},{anti:Io,auto:Io,faux:No,hexa:Io,kilo:Io,mono:Io,nano:Io,octa:Io,poly:Io,semi:No,tele:Io,"pro-":No,"mis-":To,"dis-":To,"pre-":No},{anglo:Io,centi:Io,ethno:Io,ferro:Io,grand:Io,hepta:Io,hydro:Io,intro:Io,macro:Io,micro:Io,milli:Io,nitro:Io,penta:Io,quasi:No,radio:Io,tetra:Io,"omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:Io}];const Do="Adjective",Co="Infinitive",Oo="PresentTense",Vo="Singular",Bo="PastTense",zo="Adverb",$o="Expression",Fo="Actor",So="Verb",Ho="Noun",Mo="LastName";var Lo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Mo],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,Do]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Bo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Bo,"rammed"],[/.[aeiou][sg]hed$/,Bo,"gushed"],[/.[aeiou]red$/,Bo,"hired"],[/.[aeiou]r?ried$/,Bo,"hurried"],[/[^aeiou]ard$/,Vo,"steward"],[/[aeiou][^aeiou]id$/,Do,""],[/.[vrl]id$/,Do,"livid"],[/..led$/,Bo,"hurled"],[/.[iao]sed$/,Bo,""],[/[aeiou]n?[cs]ed$/,Bo,""],[/[aeiou][rl]?[mnf]ed$/,Bo,""],[/[aeiou][ns]?c?ked$/,Bo,"bunked"],[/[aeiou]gned$/,Bo],[/[aeiou][nl]?ged$/,Bo],[/.[tdbwxyz]ed$/,Bo],[/[^aeiou][aeiou][tvx]ed$/,Bo],[/.[cdflmnprstv]ied$/,Bo,"emptied"]],e:[[/.[lnr]ize$/,Co,"antagonize"],[/.[^aeiou]ise$/,Co,"antagonise"],[/.[aeiou]te$/,Co,"bite"],[/.[^aeiou][ai]ble$/,Do,"fixable"],[/.[^aeiou]eable$/,Do,"maleable"],[/.[ts]ive$/,Do,"festive"],[/[a-z]-like$/,Do,"woman-like"]],h:[[/.[^aeiouf]ish$/,Do,"cornish"],[/.v[iy]ch$/,Mo,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,Do,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Mo,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,Do,"familial"],[/.[^aeiou]ful$/,Do,"fitful"],[/.[nrtumcd]al$/,Do,"natal"],[/.[^aeiou][ei]al$/,Do,"familial"]],m:[[/.[^aeiou]ium$/,Vo,"magnesium"],[/[^aeiou]ism$/,Vo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Do,"republican"],[/[^aeiou]ician$/,Fo,"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$/,Co],[/.[^aeiou][ao]pher$/,Fo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Do],[/[aeiou].*ist$/,Do],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,Ho],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,Mo]],y:[[/.[cts]hy$/,Do],[/.[st]ty$/,Do],[/.[tnl]ary$/,Do],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,zo],[/.(gg|bb|zz)ly$/,Do],[/...lly$/,zo],[/.[gk]y$/,Do],[/[bszmp]{2}y$/,Do],[/.[ai]my$/,Do],[/[ea]{2}zy$/,Do],[/.[^aeiou]ity$/,Vo]]};const Wo="Verb",Jo="Noun";var qo={leftTags:[["Adjective",Jo],["Possessive",Jo],["Determiner",Jo],["Adverb",Wo],["Pronoun",Wo],["Value",Jo],["Ordinal",Jo],["Modal",Wo],["Superlative",Jo],["Demonym",Jo],["Honorific","Person"]],leftWords:[["i",Wo],["first",Jo],["it",Wo],["there",Wo],["not",Wo],["because",Jo],["if",Jo],["but",Jo],["who",Wo],["this",Jo],["his",Jo],["when",Jo],["you",Wo],["very","Adjective"],["old",Jo],["never",Wo],["before",Jo],["a","Singular"],["the",Jo],["been",Wo]],rightTags:[["Copula",Jo],["PastTense",Jo],["Conjunction",Jo],["Modal",Jo]],rightWords:[["there",Wo],["me",Wo],["man","Adjective"],["only",Wo],["him",Wo],["it",Wo],["were",Jo],["took",Jo],["himself",Wo],["went",Jo],["who",Jo],["jr","Person"]]},Ko={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"},Uo={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 Zo=/^.([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(Zo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Zo,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Xo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Xo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ri=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 ai=ni({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"}),oi=ni(Qo),ii=ni(Ro),si=ni(Uo),li=ri(ai),ui=ri(oi),ci=ri(ii),hi=ri(si),di=ni(Ko),pi=ni(_o);var mi={fromPast:ai,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:hi,toComparative:di,toSuperlative:pi,fromComparative:ri(di),fromSuperlative:ri(pi)},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),{}),fi=[[/([^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,""]],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(vi[t].forEach(n=>e[n]=t),e),{});var yi=vi,wi=function(e){let t=e.substring(e.length-3);if(!0===yi.hasOwnProperty(t))return yi[t];let n=e.substring(e.length-2);return!0===yi.hasOwnProperty(n)?yi[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 Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[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},Ai=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},ji=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]),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"}],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"]),Ti={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")?xi.has(e)?e.replace(/ically/,"ical"):Ii.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:ji(e,Ni)||e:null};const Di=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ci={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Ci.hasOwnProperty(e))return Ci[e];let t=ji(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"}],Bi={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"},zi=new Set(["terrible","annoying"]),$i=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},Fi=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[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:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:$i,adjToComparative:Fi,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:Gi,adjToAdverb:Oi,adjToNoun:function(e){if(Bi.hasOwnProperty(e))return Bi[e];if(zi.has(e))return null;let t=ji(e,Vi);return t||e+"ness"}}}},Mi=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 Li=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Wi=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(r,"Infinitive","Verb"),Object.assign(s,l),l=Li(a,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ji={two:{models:mi}};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"},Ki=function(e,t){const n={model:t,methods:Hi};let{lex:r,_multi:a}=Hi.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=Ai(e,Ji);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=qi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(a,r,!1),"Adj|Present"===o&&(Ri(a,r,!0),function(e,t,n){let r=$i(e,n);t[r]=t[r]||"Superlative";let a=Fi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(a,Ji,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(a,Ji,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ki(n,t)};let Qi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:pa,models:mi,suffixPatterns:xo,prefixPatterns:Go,endsWith:Lo,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:Ia,clues:ho,uncountable:{},orgWords:gi}};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=Ki(e.one.lexicon,e)).one.lexicon,e),e=Ui(e.two.switches,e),e=Wi(e),e=Mi(e)}(Qi);var _i=Qi;const Zi=/^(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(Zi.test(a.normal)){let e=a.normal.replace(Zi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Xi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const as=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(rs(e.normal)?Xi(e,"Plural","3-plural-guess"):Xi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(r)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ds=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>r.tags.has(e))?null:(os(e,t,n),r.tags.has("Noun")||r.tags.clear(),Xi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!hs[r.normal]?(Xi(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 ms=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 Xi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ps(r.implicit,n.two.suffixPatterns),null!==e))return Xi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const gs=/['‘’‛‵′`´]/,fs=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 Xi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ys=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"]),ws=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ys.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)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};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){let a=e[t-1],o=e[t+1];if(ws(a)||ws(o))return Xi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ks(a)||ks(o))return Xi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Xi(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 Xi(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Es=/^[A-Z-]+$/,xs=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[A-Z]{2,}('s|,)?$/,Is=/([a-z]\.)+[a-z]\.?$/,Ts={I:!0,A:!0};var Gs=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!==Is.test(n)&&!0!==js.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ts.hasOwnProperty(r.text)&&js.test(r.text)?(r.tags.clear(),Xi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Xi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Es.test(r.text)&&r.text.length<=6?(Xi(r,"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},Cs=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||Ds(e[t-1],a),l=l||Ds(e[t+1],o),l=l||Cs(e[t-1],r),l=l||Cs(e[t+1],i),l)return Xi(s,l,"3-[neighbour]"),os(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 Bs=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},zs=function(e,t,n){0===e[t].tags.size&&(Xi(e[t],"Noun","3-[fallback]"),os(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(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Js={tagSwitch:Yi,checkSuffix:ms,checkRegex:bs,checkCase:ds,checkPrefix:vs,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")&&(Xi(o,"Verb","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Xi(o,"Adjective","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")))},checkYear:As},qs={checkAcronym:Gs,neighbours:Os,orgWords:Bs,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?a([s],u,n,null,`3-[variable] (${o})`):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)},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: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 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"]},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},pl={in:!0,by:!0,for:!0};var ml=(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===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 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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>hl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},vl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.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;bl.hasOwnProperty(i)&&(s=bl[i](r,o,t)),s&&(s=vl(s,e),il(n,[a,o],s),fl(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=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)",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:"#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: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:"#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: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"}]),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,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(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]},El=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)},xl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?El(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},Nl={api:function(e){e.prototype.swap=xl}};m.plugin(tl),m.plugin(yl),m.plugin(jl),m.plugin(Nl);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},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{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},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={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Rl=RegExp("("+Object.keys(Kl).join("|")+")"),Ul=RegExp("("+Object.values(Kl).join("|")+")"),Ql=function(e,t){const n=e[t].pre.match(Rl)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Rl,"");let t=e[e.length-1];t.post=t.post.replace(Ul,"")})}(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)}},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",pu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var mu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=pu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[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 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 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")},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:vu(e,t),isSubordinate:bu(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);return t.found?(t.parse()[0]||{}).num: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 Eu=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 Nu=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=>Eu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return Nu(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)}}},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},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},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$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Mu(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},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"],Ru=[[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"]],Uu=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 Ru.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(Uu(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(" ")},_u=function(e){return e.numerator&&e.denominator?`${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(" ")},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},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")}},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},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},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},dc={api:function(e){tc(e),hc(e)}};const pc={people:!0,emails:!0,phoneNumbers:!0,places:!0},mc=function(e={}){return!1!==(e=Object.assign({},pc,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=mc}},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))})},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}},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},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},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},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}=vc(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=>(vc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(vc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(vc(e),e=kc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(vc(e),Pc(e)))}toNegative(e){return Ac(this,e).map(e=>(vc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(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 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)}},Ec=function(e){return e.match("#Honorific+? #Person+")},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 Nc="male",Ic="female",Tc={mr:Nc,mrs:Ic,miss:Ic,madam:Ic,king:Nc,queen:Ic,duke:Nc,duchess:Ic,baron:Nc,baroness:Ic,count:Nc,countess:Ic,prince:Nc,princess:Ic,sire:Nc,dame:Ic,lady:Ic,ayatullah:Nc,congressman:Nc,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 Nc;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 Nc}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 Nc;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=Ec(this);return t=Dc(t,e),new People(this.document,t.pointer)}},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},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)}},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},Fc={api:function(e){Cc(e),Vc(e),Bc(e),$c(e)}},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},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},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"},Rc={conditional:!0},Uc={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$",[Uc]]],"gerund-phrase":[["^#PastTense #Gerund$",[_c]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Uc]],["^have #PastTense #Gerund$",[_c]],["^will have #PastTense #Gerund$",[_c]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[_c]]],"simple-future":[["^will #Adverb? #Infinitive",[Uc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,Qc]]],"past-progressive":[["^(was|were) #Gerund$",[_c,Qc]]],"future-progressive":[["^will be #Gerund$",[Uc,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$",[Uc,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$",[Uc,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)",[Uc,Yc,Rc]],["will be being? (#PastTense|#Participle)",[Uc,Yc,Rc]]],"present-conditional":[["would be #PastTense",[Kc,Rc]]],"past-conditional":[["would have been #PastTense",[_c,Rc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Uc]]],"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,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},ph=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),mh=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"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var bh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:mh(t.adverbs.pre),postAdverbs:mh(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const vh={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,vh).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=ph(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),ph(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},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).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},Nh={infinitive:Eh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Eh(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":Eh,"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 Eh(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)=>(Eh(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$"),Eh(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 Nh.hasOwnProperty(n)?((e=Nh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","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(["lexicon","preTagger","postTagger","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(["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=bh(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)}}};return m.plugin(Sl),m.plugin(su),m.plugin(mu),m.plugin(Tu),m.plugin(dc),m.plugin(gc),m.plugin(jc),m.plugin(Fc),m.plugin(Wh),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]);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.0";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 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;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()),k(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(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=xe(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&&(Et(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&&(Et(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=Et(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(!xt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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;r>2]|=(i.charCodeAt(u)||128)<>6)+14]=8*s,u=0;u>4]+(bn[a]+(0|o[[a,5*a+1,3*a+5,7*a][s]%16+u])))<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+a++%4])|r>>>32-s),t,n];for(a=4;a;)l[--a]=l[a]+s[a]}for(e="";a<32;)e+=(l[a>>3]>>4*(1^7&a++)&15).toString(16);return e}}}};const yn=function(e,t){if(e[0]!==t[0])return!1;let[,n,r]=e,[,a,o]=t;return n<=a&&r>a||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},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}}},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},En=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},Nn=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=xn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=xn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},In.not=function(e){e=xn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=Nn(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=Nn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=Nn(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},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})},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=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},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},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;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===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),1!=(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,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},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)}},hr=function(e){Object.assign(e.prototype,cr)},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 br=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}},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},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},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: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(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})}}}},_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)},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(vn),m.extend(St),m.extend(Tn),m.extend(mr),m.plugin(be),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 ba=36,va="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ya=va.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var wa=function(e){if(void 0!==ya[e])return ya[e];let t=0,n=1,r=ba,a=1;for(;n=0;n--,a*=ba){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ka=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=Aa(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=ja(fa[e]);Ia.test(e)?Object.keys(t).forEach(t=>{if(Ga[t]=e,"Noun|Verb"===e){let e=Na(t,Da);Ga[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ta[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ta[e]="Emoticon"),delete Ta[""],delete Ta.null,delete Ta[" "];const Ca="Adjective";var Oa={beforeTags:{Determiner:Ca,Possessive:Ca},afterTags:{Adjective:Ca},beforeWords:{seem:Ca,seemed:Ca,seems:Ca,feel:Ca,feels:Ca,felt:Ca,appear:Ca,appears:Ca,appeared:Ca,also:Ca,over:Ca,under:Ca,too:Ca,it:Ca,but:Ca,still:Ca,really:Ca,quite:Ca,well:Ca,very:Ca,deeply:Ca,profoundly:Ca,extremely:Ca,so:Ca,badly:Ca,mostly:Ca,totally:Ca,awfully:Ca,rather:Ca,nothing:Ca,something:Ca,anything:Ca},afterWords:{too:Ca,also:Ca,or:Ca}};const Va="Gerund";var Ba={beforeTags:{Adverb:Va,Preposition:Va,Conjunction:Va},afterTags:{Adverb:Va,Possessive:Va,Person:Va,Pronoun:Va,Determiner:Va,Copula:Va,Preposition:Va,Conjunction:Va,Comparative:Va},beforeWords:{been:Va,keep:Va,continue:Va,stop:Va,am:Va,be:Va,me:Va,began:Va,start:Va,starts:Va,started:Va,stops:Va,stopped:Va,help:Va,helps:Va,avoid:Va,avoids:Va,love:Va,loves:Va,loved:Va,hate:Va,hates:Va,hated:Va},afterWords:{you:Va,me:Va,her:Va,him:Va,them:Va,their:Va,it:Va,this:Va,there:Va,on:Va,about:Va,for:Va}},za={beforeTags:Object.assign({},Oa.beforeTags,Ba.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Oa.afterTags,Ba.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Oa.beforeWords,Ba.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Oa.afterWords,Ba.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const $a="Singular";var Fa={beforeTags:{Determiner:$a,Possessive:$a,Acronym:$a,Noun:$a,Adjective:$a,PresentTense:$a,Gerund:$a,PastTense:$a,Infinitive:$a,Date:$a},afterTags:{Value:$a,Modal:$a,Copula:$a,PresentTense:$a,PastTense:$a,Demonym:$a},beforeWords:{the:$a,with:$a,without:$a,of:$a,for:$a,any:$a,all:$a,on:$a,cut:$a,cuts:$a,save:$a,saved:$a,saves:$a,make:$a,makes:$a,made:$a,minus:$a,plus:$a,than:$a,another:$a,versus:$a,neither:$a,favorite:$a,best:$a,daily:$a,weekly:$a,linear:$a,binary:$a,mobile:$a,lexical:$a,technical:$a,computer:$a,scientific:$a,formal:$a},afterWords:{of:$a,system:$a,aid:$a,method:$a,utility:$a,tool:$a,reform:$a,therapy:$a,philosophy:$a,room:$a,authority:$a,says:$a,said:$a,wants:$a,wanted:$a}};const Sa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ha={beforeTags:Object.assign({},Oa.beforeTags,Fa.beforeTags,Sa.beforeTags),afterTags:Object.assign({},Oa.afterTags,Fa.afterTags),beforeWords:Object.assign({},Oa.beforeWords,Fa.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Oa.afterWords,Fa.afterWords)};const Ma={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},La={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Wa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ja={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({},Oa.beforeTags,Ma),afterTags:Object.assign({},Oa.afterTags,La),beforeWords:Object.assign({},Oa.beforeWords,Wa),afterWords:Object.assign({},Oa.afterWords,Ja)};const Ka="Infinitive";var Ra={beforeTags:{Modal:Ka,Adverb:Ka,Negative:Ka,Plural:Ka},afterTags:{Determiner:Ka,Adverb:Ka,Possessive:Ka,Preposition:Ka},beforeWords:{i:Ka,we:Ka,you:Ka,they:Ka,to:Ka,please:Ka,will:Ka,have:Ka,had:Ka,would:Ka,could:Ka,should:Ka,do:Ka,did:Ka,does:Ka,can:Ka,must:Ka,us:Ka,me:Ka,he:Ka,she:Ka,it:Ka,being:Ka},afterWords:{the:Ka,me:Ka,you:Ka,him:Ka,her:Ka,them:Ka,it:Ka,a:Ka,an:Ka,up:Ka,down:Ka,by:Ka,out:Ka,off:Ka,under:Ka,when:Ka,all:Ka,to:Ka,because:Ka,although:Ka,before:Ka,how:Ka,otherwise:Ka,together:Ka,though:Ka,yet:Ka}};const Ua={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Qa={beforeTags:Object.assign({},Oa.beforeTags,Ra.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Oa.afterTags,Ra.afterTags,Ua.afterTags),beforeWords:Object.assign({},Oa.beforeWords,Ra.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Oa.afterWords,Ra.afterWords,{to:void 0})};const _a={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Za={},Ya={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Xa={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var eo={beforeTags:Object.assign({},Ba.beforeTags,Fa.beforeTags,_a),afterTags:Object.assign({},Ba.afterTags,Fa.afterTags,Za),beforeWords:Object.assign({},Ba.beforeWords,Fa.beforeWords,Ya),afterWords:Object.assign({},Ba.afterWords,Fa.afterWords,Xa)},to={beforeTags:Object.assign({},Ra.beforeTags,Fa.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ra.afterTags,Fa.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ra.beforeWords,Fa.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ra.afterWords,Fa.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const no="Person";var ro={beforeTags:{Honorific:no,Person:no,Preposition:no},afterTags:{Person:no,ProperNoun:no,Verb:no},ownTags:{ProperNoun:no},beforeWords:{hi:no,hey:no,yo:no,dear:no,hello:no},afterWords:{said:no,says:no,told:no,tells:no,feels:no,felt:no,seems:no,thinks:no,thought:no,spends:no,spendt:no,plays:no,played:no,sing:no,sang:no,learn:no,learned:no,wants:no,wanted:no}};const ao="Month",oo={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 io={beforeTags:Object.assign({},ro.beforeTags,oo.beforeTags),afterTags:Object.assign({},ro.afterTags,oo.afterTags),beforeWords:Object.assign({},ro.beforeWords,oo.beforeWords),afterWords:Object.assign({},ro.afterWords,oo.afterWords)};const so={Place:"Place"},lo={Place:"Place",Abbreviation:"Place"},uo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},ho={"Adj|Gerund":za,"Adj|Noun":Ha,"Adj|Past":qa,"Adj|Present":Qa,"Noun|Verb":to,"Noun|Gerund":eo,"Person|Noun":{beforeTags:Object.assign({},Fa.beforeTags,ro.beforeTags),afterTags:Object.assign({},Fa.afterTags,ro.afterTags),beforeWords:Object.assign({},Fa.beforeWords,ro.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Fa.afterWords,ro.afterWords)},"Person|Date":io,"Person|Verb":{beforeTags:Object.assign({},ro.beforeTags,Ra.beforeTags),afterTags:Object.assign({},ro.afterTags,Ra.afterTags),beforeWords:Object.assign({},ro.beforeWords,Ra.beforeWords),afterWords:Object.assign({},ro.afterWords,Ra.afterWords)},"Person|Place":{beforeTags:Object.assign({},so,ro.beforeTags),afterTags:Object.assign({},lo,ro.afterTags),beforeWords:Object.assign({},uo,ro.beforeWords),afterWords:Object.assign({},co,ro.afterWords)}},po=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};ho["Plural|Verb"]={beforeWords:po(ho["Noun|Verb"].beforeWords,{}),afterWords:po(ho["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:po(ho["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:po(ho["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var mo=ho;const go="Adjective",fo="Infinitive",bo="PresentTense",vo="Singular",yo="PastTense",wo="Adverb",ko="Plural",Po="Actor",Ao="Verb",jo="Noun",Eo="LastName",xo="Modal",No="Participle";var Io=[null,null,{ea:vo,ia:jo,ic:go,ly:wo,"'n":Ao,"'t":Ao},{oed:yo,ued:yo,xed:yo," so":wo,"'ll":xo,"'re":"Copula",azy:go,eer:jo,end:Ao,ped:yo,ffy:go,ify:fo,ing:"Gerund",ize:fo,ibe:fo,lar:go,mum:go,nes:bo,nny:go,ous:go,que:go,rol:vo,sis:vo,ogy:vo,oid:vo,ian:vo,zes:bo,eld:yo,ken:No,ven:No,ten:No,ect:fo,ict:fo,ign:fo,ful:go,bal:go},{amed:yo,aped:yo,ched:yo,lked:yo,rked:yo,reed:yo,nded:yo,mned:go,cted:yo,dged:yo,ield:vo,akis:Eo,cede:fo,chuk:Eo,czyk:Eo,ects:bo,ends:Ao,enko:Eo,ette:vo,wner:vo,fies:bo,fore:wo,gate:fo,gone:go,ices:ko,ints:ko,ruct:fo,ines:ko,ions:ko,less:go,llen:go,made:go,nsen:Eo,oses:bo,ould:xo,some:go,sson:Eo,tion:vo,tage:jo,ique:vo,tive:go,tors:jo,vice:vo,lier:vo,fier:vo,wned:yo,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:go,vide:fo,ract:fo,duce:fo,pose:fo,eive:fo,lyze:fo,lyse:fo,iant:go,nary:go},{elist:vo,holic:vo,phite:vo,tized:yo,urned:yo,eased:yo,ances:ko,bound:go,ettes:ko,fully:wo,ishes:bo,ities:ko,marek:Eo,nssen:Eo,ology:jo,osome:vo,tment:vo,ports:ko,rough:go,tches:bo,tieth:"Ordinal",tures:ko,wards:wo,where:wo,archy:jo,pathy:jo,opoly:jo,embly:jo,phate:jo,ndent:vo,scent:vo,onist:vo,anist:vo,alist:vo,olist:vo,icist:vo,ounce:fo,iable:go,borne:go,gnant:go,inant:go,igent:go,atory:go,rient:vo,dient:vo},{auskas:Eo,parent:vo,cedent:vo,ionary:vo,cklist:vo,keeper:Po,logist:Po,teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const To="Adjective",Go="Noun",Do="Verb";var Co=[null,null,{},{neo:Go,bio:Go,"de-":Do,"re-":Do,"un-":Do},{anti:Go,auto:Go,faux:To,hexa:Go,kilo:Go,mono:Go,nano:Go,octa:Go,poly:Go,semi:To,tele:Go,"pro-":To,"mis-":Do,"dis-":Do,"pre-":To},{anglo:Go,centi:Go,ethno:Go,ferro:Go,grand:Go,hepta:Go,hydro:Go,intro:Go,macro:Go,micro:Go,milli:Go,nitro:Go,penta:Go,quasi:To,radio:Go,tetra:Go,"omni-":To,"post-":To},{pseudo:To,"extra-":To,"hyper-":To,"inter-":To,"intra-":To,"deca-":To},{electro:Go}];const Oo="Adjective",Vo="Infinitive",Bo="PresentTense",zo="Singular",$o="PastTense",Fo="Adverb",So="Expression",Ho="Actor",Mo="Verb",Lo="Noun",Wo="LastName";var Jo={a:[[/.[aeiou]na$/,Lo,"tuna"],[/.[oau][wvl]ska$/,Wo],[/.[^aeiou]ica$/,zo,"harmonica"],[/^([hyj]a+)+$/,So,"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$/,Wo,"..ovich"],[/^ug?h+$/,So,"ughh"],[/^uh[ -]?oh$/,So,"uhoh"],[/[a-z]-ish$/,Oo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Wo,"polish-male"]],k:[[/^(k){2}$/,So,"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+$/,So,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oo,"republican"],[/[^aeiou]ician$/,Ho,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,So,"noooo"],[/^(yo)+$/,So,"yoo"],[/^wo{2,}[pt]?$/,So,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,zo],[/[^i]fer$/,Vo],[/.[^aeiou][ao]pher$/,Ho],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oo],[/[aeiou].*ist$/,Oo],[/^[a-z]et$/,Mo]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,Mo],[/.[lstrn]us$/,zo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,zo],[/[a-z]'s$/,Lo],[/^yes+$/,So]],v:[[/.[^aeiou][ai][kln]ov$/,Wo]],y:[[/.[cts]hy$/,Oo],[/.[st]ty$/,Oo],[/.[tnl]ary$/,Oo],[/.[oe]ry$/,zo],[/[rdntkbhs]ly$/,Fo],[/.(gg|bb|zz)ly$/,Oo],[/...lly$/,Fo],[/.[gk]y$/,Oo],[/[bszmp]{2}y$/,Oo],[/.[ai]my$/,Oo],[/[ea]{2}zy$/,Oo],[/.[^aeiou]ity$/,zo]]};const qo="Verb",Ko="Noun";var Ro={leftTags:[["Adjective",Ko],["Possessive",Ko],["Determiner",Ko],["Adverb",qo],["Pronoun",qo],["Value",Ko],["Ordinal",Ko],["Modal",qo],["Superlative",Ko],["Demonym",Ko],["Honorific","Person"]],leftWords:[["i",qo],["first",Ko],["it",qo],["there",qo],["not",qo],["because",Ko],["if",Ko],["but",Ko],["who",qo],["this",Ko],["his",Ko],["when",Ko],["you",qo],["very","Adjective"],["old",Ko],["never",qo],["before",Ko],["a","Singular"],["the",Ko],["been",qo]],rightTags:[["Copula",Ko],["PastTense",Ko],["Conjunction",Ko],["Modal",Ko]],rightWords:[["there",qo],["me",qo],["man","Adjective"],["only",qo],["him",qo],["it",qo],["were",Ko],["took",Ko],["himself",qo],["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"},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"},_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"},Zo={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"},Yo={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 ei=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},ni=/^([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(ni);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ni,"")]}(n[0],n[1])})};var ai=function(e={}){return(e=Object.assign({},e)).rules=ri(e.rules),e.rules=ti(e.rules),e.rev&&(e.rev=ri(e.rev),e.rev=ti(e.rev)),e.exceptions=ri(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},oi=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 ii=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,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"}),si=ai(Zo),li=ai(Qo),ui=ai(_o),ci=oi(ii),hi=oi(si),di=oi(li),pi=oi(ui),mi=ai(Uo),gi=ai(Yo);var fi={fromPast:ii,fromPresent:si,fromGerund:li,fromParticiple:ui,toPast:ci,toPresent:hi,toGerund:di,toParticiple:pi,toComparative:mi,toSuperlative:gi,fromComparative:oi(mi),fromSuperlative:oi(gi)},bi=["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,""]],yi=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(wi[t].forEach(n=>e[n]=t),e),{});var ki=wi,Pi=function(e){let t=e.substring(e.length-3);if(!0===ki.hasOwnProperty(t))return ki[t];let n=e.substring(e.length-2);return!0===ki.hasOwnProperty(n)?ki[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ai={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ji=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)),Ai.hasOwnProperty(e))c=Ai[e];else if("Participle"===n)c=ei(l,i);else if("PastTense"===n)c=ei(l,r);else if("PresentTense"===n)c=ei(l,a);else{if("Gerund"!==n)return e;c=ei(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:ei(i,n),PresentTense:ei(i,r),Gerund:ei(i,a),FutureTense:"will "+e},u=ei(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},xi=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 Ni="ically",Ii=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]),Ti=[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"]),Di={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")?Ii.has(e)?e.replace(/ically/,"ical"):Gi.has(e)?null:Di.hasOwnProperty(e)?Di[e]:xi(e,Ti)||e:null};const Oi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Vi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Bi=function(e){if(Vi.hasOwnProperty(e))return Vi[e];let t=xi(e,Oi);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"}],$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"},Fi=new Set(["terrible","annoying"]),Si=function(e,t){const n=t.two.models.toSuperlative;return ei(e,n)},Hi=function(e,t){const n=t.two.models.toComparative;return ei(e,n)};var Mi={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"]}},Li={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===Mi.hasOwnProperty(i)&&Mi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Na,nounToSingular:yi,verbToInfinitive:ji,getTense:Pi,verbConjugate:Ei,adjToSuperlative:Si,adjToComparative:Hi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ei(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ei(e,n)},advToAdjective:Ci,adjToAdverb:Bi,adjToNoun:function(e){if($i.hasOwnProperty(e))return $i[e];if(Fi.has(e))return null;let t=xi(e,zi);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 Ji=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var qi=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=Ji(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ji(r,"Infinitive","Verb"),Object.assign(s,l),l=Ji(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ji(o,"Adjective","Superlative"),Object.assign(s,l),l=Ji(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ki={two:{models:fi}};const Ri={"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:Li};let{lex:r,_multi:a}=Li.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=Ei(e,Ki);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]=Ri[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Qi(a,r,!1),"Adj|Present"===o&&(Qi(a,r,!0),function(e,t,n){let r=Si(e,n);t[r]=t[r]||"Superlative";let a=Hi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ji(a,Ki,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=ji(a,Ki,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ui(n,t)};let Zi={one:{_multiCache:{},lexicon:Ta},two:{irregularPlurals:ga,models:fi,suffixPatterns:Io,prefixPatterns:Co,endsWith:Jo,neighbours:Ro,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:Ga,clues:mo,uncountable:{},orgWords:bi}};Zi=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=qi(e),e=Wi(e)}(Zi);var Yi=Zi;const Xi=/^(under|over|mis|re|un|dis|semi)-?/;var es=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])}},ts=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 ns={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"]),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 os=function(e){if(!e||e.length<=3)return!1;if(rs.has(e))return!0;let t=e[e.length-1];return ns.hasOwnProperty(t)?ns[t].find(t=>e.endsWith(t)):"s"===t&&!as.find(t=>e.endsWith(t))};const is=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ss=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(os(e.normal)?ts(e,"Plural","3-plural-guess"):ts(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&&ts(e,t,"3-verb-tense-guess")}}(r)};const ls=/^\p{Lu}[\p{Ll}'’]/u,us=/[0-9]/,cs=["Date","Month","WeekDay","Unit"],hs=/^[IVXLCDM]{2,}$/,ds=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ps={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===ls.test(o)&&!1===us.test(o)?cs.find(e=>r.tags.has(e))?null:(ss(e,t,n),r.tags.has("Noun")||r.tags.clear(),ts(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&hs.test(o)&&ds.test(o)&&!ps[r.normal]?(ts(r,"RomanNumeral","2-xvii"),!0):null};const gs=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 fs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=gs(r.normal,n.two.suffixPatterns);if(null!==e)return ts(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=gs(r.implicit,n.two.suffixPatterns),null!==e))return ts(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const bs=/['‘’‛‵′`´]/,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 ts(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ks=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!!ks.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},As=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},js=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(Ps(a)||Ps(o))return ts(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(As(a)||As(o))return ts(n,"Year","2-tagYear-close");if(js(e[t-2])||js(e[t+2]))return ts(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 ts(n,"Year","2-tagYear-noun")}}}return null};const xs=/^[A-Z]('s|,)?$/,Ns=/^[A-Z-]+$/,Is=/([A-Z]\.)+[A-Z]?,?$/,Ts=/[A-Z]{2,}('s|,)?$/,Gs=/([a-z]\.)+[a-z]\.?$/,Ds={I:!0,A:!0};var Cs=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||Ds.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Is.test(n)&&!0!==Gs.test(n)&&!0!==xs.test(n)&&!0!==Ts.test(n))}(r,n)?(r.tags.clear(),ts(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ds.hasOwnProperty(r.text)&&xs.test(r.text)?(r.tags.clear(),ts(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ts(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ns.test(r.text)&&r.text.length<=6?(ts(r,"Acronym","3-titlecase-acronym"),!0):null};const Os=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Vs=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||Os(e[t-1],a),l=l||Os(e[t+1],o),l=l||Vs(e[t-1],r),l=l||Vs(e[t+1],i),l)return ts(s,l,"3-[neighbour]"),ss(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 $s=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},Fs=function(e,t,n){0===e[t].tags.size&&(ts(e[t],"Noun","3-[fallback]"),ss(e,t,n),e[t].confidence=.1)};const Ss=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Hs=(e,t,n)=>0!==t||e[1]?null:n;var Ms={"Adj|Gerund":(e,t)=>Ss(e,t),"Adj|Noun":(e,t)=>Ss(e,t),"Adj|Past":(e,t)=>Ss(e,t),"Adj|Present":(e,t)=>Ss(e,t),"Noun|Gerund":(e,t)=>Ss(e,t),"Noun|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ss(e,t),"Person|Verb":(e,t)=>0!==t&&Ss(e,t)};const Ls="undefined"!=typeof process&&process.env?process.env:self.env||{},Ws=/^(under|over|mis|re|un|dis|semi)-?/,Js=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ls.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},qs=(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&&Ls.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Ks={tagSwitch:es,checkSuffix:fs,checkRegex:ys,checkCase:ms,checkPrefix:ws,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")&&(ts(o,"Verb","3-[prefix]"),ts(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ts(o,"Adjective","3-[prefix]"),ts(o,"Prefix","3-[prefix]")))},checkYear:Es},Rs={checkAcronym:Cs,neighbours:Bs,orgWords:$s,nounFallback:Fs,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(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,r){if(!n)return null;const a=r.one.tagSet;let o=Js(e[t+1],n.afterWords);return o=o||Js(e[t-1],n.beforeWords),o=o||qs(e[t-1],n.beforeTags,a),o=o||qs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ms[o]&&(u=Ms[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ls.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)},Zs={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 Ys={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 ul=/'/;var cl=function(e,t){let n=e[t].normal.split(ul)[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 hl=/'/;var dl=function(e,t){let n=e[t].normal.split(hl)[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"]},pl=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},gl={in:!0,by:!0,for:!0};var fl=(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===gl[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 bl=/'/,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)},yl={d:(e,t)=>dl(e,t),t:(e,t)=>pl(e,t),s:(e,t,n)=>fl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):cl(e,t)},wl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var kl={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===bl.test(r[o].normal)&&([,i]=r[o].normal.split(bl));let s=null;yl.hasOwnProperty(i)&&(s=yl[i](r,o,t)),s&&(s=wl(s,e),ll(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=sl.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=il},hooks:["contractionTwo"]};const Pl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Al=["i","we","they"];let jl=[].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: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:"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:Al,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:Al,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Al,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 xl={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:jl}},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)},Il=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},Tl={api:function(e){e.prototype.swap=Il}};m.plugin(rl),m.plugin(kl),m.plugin(xl),m.plugin(Tl);var Gl=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},Dl=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 Cl={this:"Noun",then:"Pivot"};var Ol=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))})},Ml={compute:{chunks:function(e){const{document:t,world:n}=e;Ol(t),Vl(t),$l(e,t,n),Sl(t),Hl(t)}},api:function(e){e.prototype.chunks=Dl,e.prototype.clauses=Gl},hooks:["chunks"]};const Ll=/'s$/;var Wl=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(Ll,""),e.normal=e.normal.replace(Ll,"")})}),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 Jl=/\(/,ql=/\)/,Kl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Jl,"");let t=e[e.length-1];t.post=t.post.replace(ql,"")}),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 Ul={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Ql=RegExp("("+Object.keys(Ul).join("|")+")"),_l=RegExp("("+Object.values(Ul).join("|")+")"),Zl=function(e,t){const n=e[t].pre.match(Ql)[0]||"";if(!n||!Ul[n])return null;const r=Ul[n];for(;t{e[0].pre=e[0].pre.replace(Ql,"");let t=e[e.length-1];t.post=t.post.replace(_l,"")})}(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 Xl=/\./g;var eu=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(Xl,""),e.normal=e.normal.replace(Xl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Xl,""),e.normal=e.normal.replace(Xl,""),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)}},tu=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 nu=(e,t)=>"number"==typeof t?e.eq(t):e,ru=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 au=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=ru(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 nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=nu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=nu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=nu(t,e),new Adjectives(t.document,t.pointer)}};const ou=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},iu=[["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 su=[["emojis","emoji"],["atmentions","atMentions"]];var lu=function(e){iu.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=ou,su.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},uu={api:function(e){lu(e),Wl(e),Rl(e),Yl(e),au(e),tu(e),eu(e)}};const cu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var hu={case:e=>{cu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;cu(e,e=>e.text=n(e.text,t))},whitespace:e=>{cu(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=>{cu(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 du=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),pu="unicode|punctuation|whitespace|acronyms",mu="|case|contractions|parentheses|quotations|emoji|honorifics",gu={light:du(pu),medium:du(pu+mu),heavy:du(pu+mu+"|possessives|adverbs|nouns|verbs")};var fu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=gu[e]),Object.keys(e).forEach(t=>{hu.hasOwnProperty(t)&&hu[t](this,e[t])}),this}}},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 vu=["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 yu=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")},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:wu(e,t),isSubordinate:yu(e),root:t}};const Pu=e=>e.text(),Au=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),ju=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=ku(e);return{root:Pu(t.root),number:ju(t.number),determiner:Pu(t.determiner),adjectives:Au(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const xu={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,xu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",xu),e};const Iu={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,Iu).tag("Singular","toPlural"),e};const Gu=(e,t)=>"number"==typeof t?e.eq(t):e;var Du={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Gu(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 Gu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=ku(e).adjectives;n.found&&(t=t.concat(n))}),Gu(t,e)}toPlural(e){return Gu(this,e).map(e=>Nu(e,ku(e)))}toSingular(e){return Gu(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=Gu(t,e),new Nouns(this.document,t.pointer)}}},Cu=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},Ou=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},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 Fu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Su={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Hu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Mu=function(e){if(!0===Su.hasOwnProperty(e))return Su[e];if("a"===e||"an"===e)return 1;const t=Ou(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=Wu(n),r=Wu(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:Wu(n);let a=r.text("reduced");return Lu.test(a)&&(a=a.replace(Lu,""),r=r.replaceWith(a)),r=Ju.hasOwnProperty(a)?Ju[a]:Wu(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:Wu(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},Ku=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]],Uu=["","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"]],_u=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 Uu[e]&&t.push(Uu[e]),t};var Zu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ku(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(_u(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=Ku(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(" ")},Yu=function(e){return e.numerator&&e.denominator?`${Zu({num:e.numerator})} out of ${Zu({num:e.denominator})}`:""};const Xu={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 ec=e=>{let t=Zu(e).split(" "),n=t[t.length-1];return Xu.hasOwnProperty(n)?t[t.length-1]=Xu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},tc=function(e){if(!e.numerator||!e.denominator)return"";let t=Zu({num:e.numerator}),n=ec({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const nc=(e,t)=>"number"==typeof t?e.eq(t):e;var rc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return nc(this,e).map(qu)}get(e){return nc(this,e).map(qu)}json(e){return nc(this,e).map(t=>{let n=t.toView().json(e)[0],r=qu(t);return n.fraction=r,n},[])}toDecimal(e){return nc(this,e).forEach(e=>{let{decimal:t}=qu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return nc(this,e).forEach(e=>{let t=qu(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 nc(this,e).forEach(e=>{let t=qu(e),n=tc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return nc(this,e).forEach(e=>{let t=qu(e),n=Yu(t);e.replaceWith(n)}),this}toPercentage(e){return nc(this,e).forEach(e=>{let{decimal:t}=qu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Cu(this);return t=nc(t,e),new Fractions(this.document,t.pointer)}};const ac="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var oc=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("("+ac+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+ac+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+ac+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+ac+")"));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) (${ac})`),r=e.has("("+ac+") #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("("+ac+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+ac+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},ic=function(e){if("string"==typeof e)return{num:Mu(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=qu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Mu(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")}},sc=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=Ku(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const lc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},uc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var cc=function(e){let t={suffix:"",prefix:e.prefix};return lc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+lc[e.prefix],t.prefix=""),uc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+uc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},hc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=cc(e);return t+ec(e)+n}if("Ordinal"===t)return e.prefix+sc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=cc(e);return t+Zu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const dc=(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 dc(this,e).map(ic)}get(e){return dc(this,e).map(ic).map(e=>e.num)}json(e){return dc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ic(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=ic(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=hc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=ic(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=hc(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=>ic(t).num===e)}greaterThan(e){return this.filter(t=>ic(t).num>e)}lessThan(e){return this.filter(t=>ic(t).num{let r=ic(n).num;return r>e&&r{let n=ic(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=hc(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=ic(e).num);let t=this.map(t=>{let n=ic(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=hc(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=oc(this);return t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=oc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=oc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},mc={api:function(e){rc(e),pc(e)}};const gc={people:!0,emails:!0,phoneNumbers:!0,places:!0},fc=function(e={}){return!1!==(e=Object.assign({},gc,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=fc}},vc=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))})},yc=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))))))},wc=function(e){let t=e.clauses(),n=yc(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}},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},Pc=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},Ac=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},jc=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}=wc(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=>(wc(e),kc(e)))}toPresentTense(e){return Ec(this,e).map(e=>(wc(e),Pc(e)))}toFutureTense(e){return Ec(this,e).map(e=>(wc(e),e=Ac(e)))}toInfinitive(e){return Ec(this,e).map(e=>(wc(e),jc(e)))}toNegative(e){return Ec(this,e).map(e=>(wc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ec(this,e).map(e=>(wc(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=vc(this);return Ec(t,e)}};Object.assign(e.prototype,t)}},Nc=function(e){return e.match("#Honorific+? #Person+")},Ic=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",Gc="female",Dc={mr:Tc,mrs:Gc,miss:Gc,madam:Gc,king:Tc,queen:Gc,duke:Tc,duchess:Gc,baron:Tc,baroness:Gc,count:Tc,countess:Gc,prince:Tc,princess:Gc,sire:Tc,dame:Gc,lady:Gc,ayatullah:Tc,congressman:Tc,congresswoman:Gc,"first lady":Gc,mx:null};var Cc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Gc;if(n.has("#MaleName"))return Tc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Dc.hasOwnProperty(e))return Dc[e];if(/^her /.test(e))return Gc;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 Gc}return null};const Oc=(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 Oc(this,e).map(Ic)}json(e){return Oc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ic(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Cc(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=Oc(t,e),new People(this.document,t.pointer)}},Bc=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=Bc(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 Fc=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 Sc=function(e){e.prototype.topics=Fc},Hc={api:function(e){Vc(e),zc(e),$c(e),Sc(e)}},Mc=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},Lc=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},Wc=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 Jc=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},qc=function(e){return e.match("#Negative")},Kc=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=Lc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Wc(t,n),auxiliary:Jc(t,n),negative:qc(t),phrasal:Kc(n)}};const Uc={tense:"PresentTense"},Qc={conditional:!0},_c={tense:"FutureTense"},Zc={progressive:!0},Yc={tense:"PastTense"},Xc={complete:!0,progressive:!1},eh={passive:!0},th=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},nh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Uc]],["^wanted to #Infinitive$",[Yc]],["^will want to #Infinitive$",[_c]]],"gerund-phrase":[["^#PastTense #Gerund$",[Yc]],["^#PresentTense #Gerund$",[Uc]],["^#Infinitive #Gerund$",[Uc]],["^will #Infinitive #Gerund$",[_c]],["^have #PastTense #Gerund$",[Yc]],["^will have #PastTense #Gerund$",[Yc]]],"simple-present":[["^#PresentTense$",[Uc]],["^#Infinitive$",[Uc]]],"simple-past":[["^#PastTense$",[Yc]]],"simple-future":[["^will #Adverb? #Infinitive",[_c]]],"present-progressive":[["^(is|are|am) #Gerund$",[Uc,Zc]]],"past-progressive":[["^(was|were) #Gerund$",[Yc,Zc]]],"future-progressive":[["^will be #Gerund$",[_c,Zc]]],"present-perfect":[["^(has|have) #PastTense$",[Yc,Xc]]],"past-perfect":[["^had #PastTense$",[Yc,Xc]],["^had #PastTense to #Infinitive",[Yc,Xc]]],"future-perfect":[["^will have #PastTense$",[_c,Xc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Yc,Zc]]],"past-perfect-progressive":[["^had been #Gerund$",[Yc,Zc]]],"future-perfect-progressive":[["^will have been #Gerund$",[_c,Zc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Yc,eh]],["^(was|were) being (#PastTense|#Participle)",[Yc,eh]],["^(had|have) been (#PastTense|#Participle)",[Yc,eh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Uc,eh]],["^(is|are|am) being (#PastTense|#Participle)",[Uc,eh]],["^has been (#PastTense|#Participle)",[Uc,eh]]],"passive-future":[["will have been (#PastTense|#Participle)",[_c,eh,Qc]],["will be being? (#PastTense|#Participle)",[_c,eh,Qc]]],"present-conditional":[["would be #PastTense",[Uc,Qc]]],"past-conditional":[["would have been #PastTense",[Yc,Qc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[_c]]],"auxiliary-past":[["^did #Infinitive$",[Yc,{plural:!1}]],["^used to #Infinitive$",[Yc,Xc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Uc,Xc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Yc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let rh=[];Object.keys(nh).map(e=>{nh[e].forEach(t=>{rh.push({name:e,match:t[0],data:th(t[1])})})});var ah=rh,oh=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(),ih(r)&&(n.remove(r),r=n.last()),ih(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:sh(t,e)}};const uh=e=>e,ch=(e,t)=>{let n=lh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},hh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=lh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},dh=function(e,t){let n=lh(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},mh=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},gh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),fh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},bh=function(e){return e&&e.isView?e.text("normal"):""},vh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,ph(e))};var yh=function(e){let t=Rc(e);e=e.clone().toView();const n=oh(e,t);return{root:t.root.text(),preAdverbs:fh(t.adverbs.pre),postAdverbs:fh(t.adverbs.post),auxiliary:bh(t.auxiliary),negative:t.negative.found,prefix:bh(t.prefix),infinitive:vh(t.root),grammar:n}};const wh={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,wh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=dh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Ph={tags:!0},Ah={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}=lh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Ph),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ah.simple(e,t),e=Ah.noAux(e,t))},hasHad:e=>(e.replace("has","had",Ph),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}},jh={infinitive:Ah.simple,"simple-present":Ah.simple,"simple-past":uh,"simple-future":Ah.both,"present-progressive":e=>(e.replace("are","were",Ph),e.replace("(is|are|am)","was",Ph),e),"past-progressive":uh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ah.hasHad,"past-perfect":uh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=gh(e)),e.remove("have"),e),"present-perfect-progressive":Ah.hasHad,"past-perfect-progressive":uh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ph),e),"passive-past":e=>(e.replace("have","had",Ph),e),"passive-present":e=>(e.replace("(is|are)","was",Ph),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",Ph),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":uh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ph),e),"auxiliary-past":uh,"auxiliary-present":e=>(e.replace("(do|does)","did",Ph),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ph):(Ah.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":uh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ph),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ah.simple(e,t),gh(e),e)};var Eh=function(e,t,n){return jh.hasOwnProperty(n)?((e=jh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const xh={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,ph(a)),!1===ch(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=hh(e)),o&&(e=e.replace(a,o,xh)).not("#Particle").tag("PresentTense"),e},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===ch(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,xh)).not("#Particle").tag("Gerund"),e},Th={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=lh(e).subject;if(ch(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":Nh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=hh(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":uh,"past-progressive":(e,t)=>{let n=hh(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)=>(Nh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=lh(e).subject;return ch(e)||n.has("i")?((e=mh(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":uh,"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=hh(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":uh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":uh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Ih(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=dh(e);return e.replace(t.auxiliary,n),e}return Ih(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":uh,"modal-infinitive":uh,"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$"),Nh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return ch(e)&&(n="want"),e.replace("(want|wanted|wants)",n,xh),e.remove("will"),e}};var Gh=function(e,t,n){return Th.hasOwnProperty(n)?((e=Th[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Dh={tags:!0},Ch=(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,Dh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Oh=(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,Dh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Vh={infinitive:Ch,"simple-present":Ch,"simple-past":Ch,"simple-future":uh,"present-progressive":Oh,"past-progressive":Oh,"future-progressive":uh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":uh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":uh,"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":uh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":uh,"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":uh,"modal-past":uh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Bh=function(e,t,n){return e.has("will")||e.has("going to")?e:Vh.hasOwnProperty(n)?((e=Vh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const zh={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,ph(a));let s=r(i,e.model).Gerund;return s&&(s=`${hh(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 Fh={tags:!0},Sh=function(e,t){let n=dh(e);return e.prepend(n+" not"),e},Hh=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)},Mh=e=>e.has("(is|was|am|are|will|were|be)"),Lh={"simple-present":(e,t)=>!0===Mh(e)?Hh(e):(e=mh(e,t),e=Sh(e)),"simple-past":(e,t)=>!0===Mh(e)?Hh(e):((e=mh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Mh(e)?Hh(e):Sh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Fh),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=Sh(e)).replace("wants","want",Fh)};var Wh=function(e,t,n){if(e.has("#Negative"))return e;if(Lh.hasOwnProperty(n))return e=Lh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Mh(e)?Hh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var qh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Jh(this,e).map(Rc)}json(e,t){return Jh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=yh(t),n},[])}subjects(e){return Jh(this,e).map(e=>(Rc(e),lh(e).subject))}adverbs(e){return Jh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Jh(this,e).filter(e=>!0!==lh(e).plural)}isPlural(e){return Jh(this,e).filter(e=>!0===lh(e).plural)}isImperative(e){return Jh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return kh(e,t,n.form)})}toPresentTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Gh(e,t,n.form)})}toPastTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Eh(e,t,n.form)})}toFutureTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Bh(e,t,n.form)})}toGerund(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return $h(e,t,n.form)})}conjugate(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(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:Gh(e.clone(),t,n.form).text("normal"),FutureTense:Bh(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 Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Wh(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=Mc(this);return t=Jh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Ml),m.plugin(uu),m.plugin(fu),m.plugin(Du),m.plugin(mc),m.plugin(bc),m.plugin(xc),m.plugin(Hc),m.plugin(qh),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 277d1f740..ae5fd9b20 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.0";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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&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},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var bn=function(e,t){let n=vn(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 yn={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:vn,splitAll:bn}}};var wn=function(e,t){let n=e.concat(t),r=vn(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=>fn(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 Pn=function(e,t){let n=vn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},jn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Nn={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=jn(e,this.document),this.update(e)};var En={methods:yn,api:function(e){Object.assign(e.prototype,Nn)}};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 In=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: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=xn(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 Tn=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 Gn=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 Dn=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 Cn=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=In(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=Tn(a,t.hooks);return o=Gn(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),Dn(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===Cn(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 Vn=/ /,Bn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},zn=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(),Vn.test(t))!function(e,t,n,r){let a=t.split(Vn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),zn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,r))};var Fn=$n;var Sn=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=>Hn({id:e})),t}return[Hn({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},Jn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Kn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Mn.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:Ln(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Wn(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Wn(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},Un=function(e){let t=Wn(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},Qn={text:Rn,txt:Rn,array:Un,flat:Un},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},Zn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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),!Yn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Jn(e))return e.forEach(e=>this.add(qn(e),t)),this;e=qn(e);let n=Hn({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 Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 Jn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Zn(this.json);let e=Wn(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 Zn(this.json),_n(this.json,e)}debug(){return Zn(this.json),_n(this.json,"debug"),this}}const Xn=function(e){let t=Kn(e);return new g$1(t)};Xn.prototype.plugin=function(e){e(this)};var er={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const tr=function(e){if(er.hasOwnProperty(e.id))return er[e.id];if(er.hasOwnProperty(e.is))return er[e.is];let t=e._cache.parents.find(e=>er[e]);return er[t]};var nr=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:tr(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 rr=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=rr(e[t].children),e[t].not=rr(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 or={one:{setTag:Fn,unTag:Sn,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 Xn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return nr(n)}}};const ir=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sr={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||""),ir(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 ir(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 lr=function(e){Object.assign(e.prototype,sr)};var ur={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 cr=new Set(["Auxiliary","Possessive"]);var hr={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(cr.has(e)||!t.hasOwnProperty(n))return 1;if(cr.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:or,api:lr,lib:ur};const dr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,pr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var mr=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 Cr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Or=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Vr=/['’]/,Br=/^[a-z]\.([a-z]\.)+/i,zr=/^[-+.][0-9]/,$r=/^'[0-9]{2}/;var Fr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Cr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!zr.test(e)?"'"===n&&$r.test(e)?(n="",t):"":(n="",t)))).replace(Or,a=>(r=a,Vr.test(a)&&/[sn]['’]$/.test(t)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===Br.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Sr=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 Hr=/([A-Z]\.)+[A-Z]?,?$/,Mr=/^[A-Z]\.,?$/,Lr=/[A-Z]{2,}('s|,)?$/,Wr=/([a-z]\.)+[a-z]\.?$/;var Jr=function(e){return function(e){return!0===Hr.test(e)||!0===Wr.test(e)||!0===Mr.test(e)||!0===Lr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var qr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Sr(r),r=n(r,t),r=Jr(r),e.normal=r};var Kr={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:Pr,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(Gr);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=xr(n),n=Nr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Fr(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})}}}};var Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ur={},Qr={};[[["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=>{Ur[t]=!0,Qr[t]="Abbreviation",void 0!==e[1]&&(Qr[t]=[Qr[t],e[1]])})});var _r=["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 Zr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(Zr).forEach((function(e){Zr[e].split("").forEach((function(t){Yr[t]=e}))}));const Xr=/\//,ea=/[a-z]\.[a-z]/i,ta=/[0-9]/;var na=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])),Xr.test(n)&&!ea.test(n)&&!ta.test(n)){let t=n.split(Xr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ra=/^\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"),ra.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var oa=function(e){let t=0,n=0,r=e.document;for(let e=0;eia(e,na),machine:e=>ia(e,aa),normal:e=>ia(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 ca={safe:!0,min:3};var ha={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=la},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ca,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ua(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(gn),m.extend(St),m.extend(En),m.extend(hr),m.plugin(ve),m.extend(sa),m.plugin(f),m.extend(Te),m.extend(ha),m.extend(Pe),m.extend(On);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"},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",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 ma="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ga=ma.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var fa=function(e){if(void 0!==ga[e])return ga[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 va=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=ya(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=wa(pa[e]);ja.test(e)?Object.keys(t).forEach(t=>{if(Ea[t]=e,"Noun|Verb"===e){let e=Aa(t,xa);Ea[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Na[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Na[e]="Emoticon"),delete Na[""],delete Na.null,delete Na[" "];const Ia="Adjective";var Ta={beforeTags:{Determiner:Ia,Possessive:Ia},afterTags:{Adjective:Ia},beforeWords:{seem:Ia,seemed:Ia,seems:Ia,feel:Ia,feels:Ia,felt:Ia,appear:Ia,appears:Ia,appeared:Ia,also:Ia,over:Ia,under:Ia,too:Ia,it:Ia,but:Ia,still:Ia,really:Ia,quite:Ia,well:Ia,very:Ia,deeply:Ia,profoundly:Ia,extremely:Ia,so:Ia,badly:Ia,mostly:Ia,totally:Ia,awfully:Ia,rather:Ia,nothing:Ia,something:Ia,anything:Ia},afterWords:{too:Ia,also:Ia,or:Ia}};const Ga="Gerund";var Da={beforeTags:{Adverb:Ga,Preposition:Ga,Conjunction:Ga},afterTags:{Adverb:Ga,Possessive:Ga,Person:Ga,Pronoun:Ga,Determiner:Ga,Copula:Ga,Preposition:Ga,Conjunction:Ga,Comparative:Ga},beforeWords:{been:Ga,keep:Ga,continue:Ga,stop:Ga,am:Ga,be:Ga,me:Ga,began:Ga,start:Ga,starts:Ga,started:Ga,stops:Ga,stopped:Ga,help:Ga,helps:Ga,avoid:Ga,avoids:Ga,love:Ga,loves:Ga,loved:Ga,hate:Ga,hates:Ga,hated:Ga},afterWords:{you:Ga,me:Ga,her:Ga,him:Ga,them:Ga,their:Ga,it:Ga,this:Ga,there:Ga,on:Ga,about:Ga,for:Ga}};var Ca={beforeTags:Object.assign({},Ta.beforeTags,Da.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ta.afterTags,Da.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ta.beforeWords,Da.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ta.afterWords,Da.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Oa="Singular";var Va={beforeTags:{Determiner:Oa,Possessive:Oa,Acronym:Oa,Noun:Oa,Adjective:Oa,PresentTense:Oa,Gerund:Oa,PastTense:Oa,Infinitive:Oa,Date:Oa},afterTags:{Value:Oa,Modal:Oa,Copula:Oa,PresentTense:Oa,PastTense:Oa,Demonym:Oa},beforeWords:{the:Oa,with:Oa,without:Oa,of:Oa,for:Oa,any:Oa,all:Oa,on:Oa,cut:Oa,cuts:Oa,save:Oa,saved:Oa,saves:Oa,make:Oa,makes:Oa,made:Oa,minus:Oa,plus:Oa,than:Oa,another:Oa,versus:Oa,neither:Oa,favorite:Oa,best:Oa,daily:Oa,weekly:Oa,linear:Oa,binary:Oa,mobile:Oa,lexical:Oa,technical:Oa,computer:Oa,scientific:Oa,formal:Oa},afterWords:{of:Oa,system:Oa,aid:Oa,method:Oa,utility:Oa,tool:Oa,reform:Oa,therapy:Oa,philosophy:Oa,room:Oa,authority:Oa,says:Oa,said:Oa,wants:Oa,wanted:Oa}};const Ba={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var za={beforeTags:Object.assign({},Ta.beforeTags,Va.beforeTags,Ba.beforeTags),afterTags:Object.assign({},Ta.afterTags,Va.afterTags),beforeWords:Object.assign({},Ta.beforeWords,Va.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ta.afterWords,Va.afterWords)};const $a={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Fa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Sa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ha={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ma={beforeTags:Object.assign({},Ta.beforeTags,$a),afterTags:Object.assign({},Ta.afterTags,Fa),beforeWords:Object.assign({},Ta.beforeWords,Sa),afterWords:Object.assign({},Ta.afterWords,Ha)};const La="Infinitive";var Wa={beforeTags:{Modal:La,Adverb:La,Negative:La,Plural:La},afterTags:{Determiner:La,Adverb:La,Possessive:La,Preposition:La},beforeWords:{i:La,we:La,you:La,they:La,to:La,please:La,will:La,have:La,had:La,would:La,could:La,should:La,do:La,did:La,does:La,can:La,must:La,us:La,me:La,he:La,she:La,it:La,being:La},afterWords:{the:La,me:La,you:La,him:La,her:La,them:La,it:La,a:La,an:La,up:La,down:La,by:La,out:La,off:La,under:La,when:La,all:La,to:La,because:La,although:La,before:La,how:La,otherwise:La,together:La,though:La,yet:La}};const Ja={afterTags:{Noun:"Adjective",Conjunction:void 0}};var qa={beforeTags:Object.assign({},Ta.beforeTags,Wa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ta.afterTags,Wa.afterTags,Ja.afterTags),beforeWords:Object.assign({},Ta.beforeWords,Wa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ta.afterWords,Wa.afterWords,{to:void 0})};const Ka={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Ra={},Ua={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Qa={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var _a={beforeTags:Object.assign({},Da.beforeTags,Va.beforeTags,Ka),afterTags:Object.assign({},Da.afterTags,Va.afterTags,Ra),beforeWords:Object.assign({},Da.beforeWords,Va.beforeWords,Ua),afterWords:Object.assign({},Da.afterWords,Va.afterWords,Qa)};var Za={beforeTags:Object.assign({},Wa.beforeTags,Va.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Wa.afterTags,Va.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Wa.beforeWords,Va.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Wa.afterWords,Va.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Ya="Person";var Xa={beforeTags:{Honorific:Ya,Person:Ya,Preposition:Ya},afterTags:{Person:Ya,ProperNoun:Ya,Verb:Ya},ownTags:{ProperNoun:Ya},beforeWords:{hi:Ya,hey:Ya,yo:Ya,dear:Ya,hello:Ya},afterWords:{said:Ya,says:Ya,told:Ya,tells:Ya,feels:Ya,felt:Ya,seems:Ya,thinks:Ya,thought:Ya,spends:Ya,spendt:Ya,plays:Ya,played:Ya,sing:Ya,sang:Ya,learn:Ya,learned:Ya,wants:Ya,wanted:Ya}};const eo="Month",to={beforeTags:{Date:eo,Value:eo},afterTags:{Date:eo,Value:eo},beforeWords:{by:eo,in:eo,on:eo,during:eo,after:eo,before:eo,between:eo,until:eo,til:eo,sometime:eo,of:eo,this:eo,next:eo,last:eo,previous:eo,following:eo},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Xa.beforeTags,to.beforeTags),afterTags:Object.assign({},Xa.afterTags,to.afterTags),beforeWords:Object.assign({},Xa.beforeWords,to.beforeWords),afterWords:Object.assign({},Xa.afterWords,to.afterWords)};const ro={Place:"Place"},ao={Place:"Place",Abbreviation:"Place"},oo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const so={"Adj|Gerund":Ca,"Adj|Noun":za,"Adj|Past":Ma,"Adj|Present":qa,"Noun|Verb":Za,"Noun|Gerund":_a,"Person|Noun":{beforeTags:Object.assign({},Va.beforeTags,Xa.beforeTags),afterTags:Object.assign({},Va.afterTags,Xa.afterTags),beforeWords:Object.assign({},Va.beforeWords,Xa.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Va.afterWords,Xa.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Xa.beforeTags,Wa.beforeTags),afterTags:Object.assign({},Xa.afterTags,Wa.afterTags),beforeWords:Object.assign({},Xa.beforeWords,Wa.beforeWords),afterWords:Object.assign({},Xa.afterWords,Wa.afterWords)},"Person|Place":{beforeTags:Object.assign({},ro,Xa.beforeTags),afterTags:Object.assign({},ao,Xa.afterTags),beforeWords:Object.assign({},oo,Xa.beforeWords),afterWords:Object.assign({},io,Xa.afterWords)}},lo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};so["Plural|Verb"]={beforeWords:lo(so["Noun|Verb"].beforeWords,{}),afterWords:lo(so["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:lo(so["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:lo(so["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var uo=so;const co="Adjective",ho="Infinitive",po="PresentTense",mo="Singular",go="PastTense",fo="Adverb",vo="Plural",bo="Verb",yo="LastName",wo="Participle";var ko=[null,null,{ea:mo,ia:"Noun",ic:co,ly:fo,"'n":bo,"'t":bo},{oed:go,ued:go,xed:go," so":fo,"'ll":"Modal","'re":"Copula",azy:co,eer:"Noun",end:bo,ped:go,ffy:co,ify:ho,ing:"Gerund",ize:ho,ibe:ho,lar:co,mum:co,nes:po,nny:co,ous:co,que:co,rol:mo,sis:mo,ogy:mo,oid:mo,ian:mo,zes:po,eld:go,ken:wo,ven:wo,ten:wo,ect:ho,ict:ho,ign:ho,ful:co,bal:co},{amed:go,aped:go,ched:go,lked:go,rked:go,reed:go,nded:go,mned:co,cted:go,dged:go,ield:mo,akis:yo,cede:ho,chuk:yo,czyk:yo,ects:po,ends:bo,enko:yo,ette:mo,wner:mo,fies:po,fore:fo,gate:ho,gone:co,ices:vo,ints:vo,ruct:ho,ines:vo,ions:vo,less:co,llen:co,made:co,nsen:yo,oses:po,ould:"Modal",some:co,sson:yo,tion:mo,tage:"Noun",ique:mo,tive:co,tors:"Noun",vice:mo,lier:mo,fier:mo,wned:go,gent:mo,tist:mo,pist:mo,rist:mo,mist:mo,yist:mo,vist:mo,lite:mo,site:mo,rite:mo,mite:mo,bite:mo,mate:mo,date:mo,ndal:mo,vent:mo,uist:mo,gist:mo,note:mo,cide:mo,wide:co,vide:ho,ract:ho,duce:ho,pose:ho,eive:ho,lyze:ho,lyse:ho,iant:co,nary:co},{elist:mo,holic:mo,phite:mo,tized:go,urned:go,eased:go,ances:vo,bound:co,ettes:vo,fully:fo,ishes:po,ities:vo,marek:yo,nssen:yo,ology:"Noun",osome:mo,tment:mo,ports:vo,rough:co,tches:po,tieth:"Ordinal",tures:vo,wards:fo,where:fo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:mo,scent:mo,onist:mo,anist:mo,alist:mo,olist:mo,icist:mo,ounce:ho,iable:co,borne:co,gnant:co,inant:co,igent:co,atory:co,rient:mo,dient:mo},{auskas:yo,parent:mo,cedent:mo,ionary:mo,cklist:mo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:yo,borough:"Place",sdottir:yo}];const Po="Adjective";var Ao=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Po,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Po,tele:"Noun","pro-":Po,"mis-":"Verb","dis-":"Verb","pre-":Po},{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:Po,radio:"Noun",tetra:"Noun","omni-":Po,"post-":Po},{pseudo:Po,"extra-":Po,"hyper-":Po,"inter-":Po,"intra-":Po,"deca-":Po},{electro:"Noun"}];const jo="Adjective",No="Infinitive",Eo="PresentTense",xo="Singular",Io="PastTense",To="Expression",Go="LastName";var Do={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Go],[/.[^aeiou]ica$/,xo,"harmonica"],[/^([hyj]a+)+$/,To,"haha"]],c:[[/.[^aeiou]ic$/,jo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Io,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Io,"rammed"],[/.[aeiou][sg]hed$/,Io,"gushed"],[/.[aeiou]red$/,Io,"hired"],[/.[aeiou]r?ried$/,Io,"hurried"],[/[^aeiou]ard$/,xo,"steward"],[/[aeiou][^aeiou]id$/,jo,""],[/.[vrl]id$/,jo,"livid"],[/..led$/,Io,"hurled"],[/.[iao]sed$/,Io,""],[/[aeiou]n?[cs]ed$/,Io,""],[/[aeiou][rl]?[mnf]ed$/,Io,""],[/[aeiou][ns]?c?ked$/,Io,"bunked"],[/[aeiou]gned$/,Io],[/[aeiou][nl]?ged$/,Io],[/.[tdbwxyz]ed$/,Io],[/[^aeiou][aeiou][tvx]ed$/,Io],[/.[cdflmnprstv]ied$/,Io,"emptied"]],e:[[/.[lnr]ize$/,No,"antagonize"],[/.[^aeiou]ise$/,No,"antagonise"],[/.[aeiou]te$/,No,"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$/,Go,"..ovich"],[/^ug?h+$/,To,"ughh"],[/^uh[ -]?oh$/,To,"uhoh"],[/[a-z]-ish$/,jo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Go,"polish-male"]],k:[[/^(k){2}$/,To,"kkkk"]],l:[[/.[gl]ial$/,jo,"familial"],[/.[^aeiou]ful$/,jo,"fitful"],[/.[nrtumcd]al$/,jo,"natal"],[/.[^aeiou][ei]al$/,jo,"familial"]],m:[[/.[^aeiou]ium$/,xo,"magnesium"],[/[^aeiou]ism$/,xo,"schism"],[/^[hu]m+$/,To,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,jo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,To,"noooo"],[/^(yo)+$/,To,"yoo"],[/^wo{2,}[pt]?$/,To,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,xo],[/[^i]fer$/,No],[/.[^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$/,Eo],[/.[rln]ates$/,Eo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,xo],[/.[aeiou]sks$/,Eo],[/.[aeiou]kes$/,Eo],[/[aeiou][^aeiou]is$/,xo],[/[a-z]'s$/,"Noun"],[/^yes+$/,To]],v:[[/.[^aeiou][ai][kln]ov$/,Go]],y:[[/.[cts]hy$/,jo],[/.[st]ty$/,jo],[/.[tnl]ary$/,jo],[/.[oe]ry$/,xo],[/[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$/,xo]]};const Co="Verb",Oo="Noun";var Vo={leftTags:[["Adjective",Oo],["Possessive",Oo],["Determiner",Oo],["Adverb",Co],["Pronoun",Co],["Value",Oo],["Ordinal",Oo],["Modal",Co],["Superlative",Oo],["Demonym",Oo],["Honorific","Person"]],leftWords:[["i",Co],["first",Oo],["it",Co],["there",Co],["not",Co],["because",Oo],["if",Oo],["but",Oo],["who",Co],["this",Oo],["his",Oo],["when",Oo],["you",Co],["very","Adjective"],["old",Oo],["never",Co],["before",Oo],["a","Singular"],["the",Oo],["been",Co]],rightTags:[["Copula",Oo],["PastTense",Oo],["Conjunction",Oo],["Modal",Oo]],rightWords:[["there",Co],["me",Co],["man","Adjective"],["only",Co],["him",Co],["it",Co],["were",Oo],["took",Oo],["himself",Co],["went",Oo],["who",Oo],["jr","Person"]]},Bo={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"},Fo={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"},So={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 Ho=/^.([0-9]+)/;var Mo=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(Ho);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Ho,"")}(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},Wo=/^([0-9]+)/,Jo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Wo);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Wo,"")]}(n[0],n[1])})};var qo=function(e={}){return(e=Object.assign({},e)).rules=Jo(e.rules),e.rules=Lo(e.rules),e.rev&&(e.rev=Jo(e.rev),e.rev=Lo(e.rev)),e.exceptions=Jo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Ko=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 Ro=qo({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"}),Uo=qo(Fo),Qo=qo(zo),_o=qo($o),Zo=Ko(Ro),Yo=Ko(Uo),Xo=Ko(Qo),ei=Ko(_o),ti=qo(Bo),ni=qo(So);var ri={fromPast:Ro,fromPresent:Uo,fromGerund:Qo,fromParticiple:_o,toPast:Zo,toPresent:Yo,toGerund:Xo,toParticiple:ei,toComparative:ti,toSuperlative:ni,fromComparative:Ko(ti),fromSuperlative:Ko(ni)},ai=["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),{}),oi=[[/([^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 ii=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(si[t].forEach(n=>e[n]=t),e),{});var li=si;var ui=function(e){let t=e.substring(e.length-3);if(!0===li.hasOwnProperty(t))return li[t];let n=e.substring(e.length-2);return!0===li.hasOwnProperty(n)?li[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ci={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=ui(e)),ci.hasOwnProperty(e))c=ci[e];else if("Participle"===n)c=Mo(l,i);else if("PastTense"===n)c=Mo(l,r);else if("PresentTense"===n)c=Mo(l,a);else{if("Gerund"!==n)return e;c=Mo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var di=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:Mo(i,n),PresentTense:Mo(i,r),Gerund:Mo(i,a),FutureTense:"will "+e},u=Mo(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 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 mi="ically",gi=new Set(["analyt"+mi,"chem"+mi,"class"+mi,"clin"+mi,"crit"+mi,"ecolog"+mi,"electr"+mi,"empir"+mi,"frant"+mi,"grammat"+mi,"ident"+mi,"ideolog"+mi,"log"+mi,"mag"+mi,"mathemat"+mi,"mechan"+mi,"med"+mi,"method"+mi,"method"+mi,"mus"+mi,"phys"+mi,"phys"+mi,"polit"+mi,"pract"+mi,"rad"+mi,"satir"+mi,"statist"+mi,"techn"+mi,"technolog"+mi,"theoret"+mi,"typ"+mi,"vert"+mi,"whims"+mi]),fi=[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"}],vi=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"]),bi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var yi=function(e){return e.endsWith("ly")?gi.has(e)?e.replace(/ically/,"ical"):vi.has(e)?null:bi.hasOwnProperty(e)?bi[e]:pi(e,fi)||e:null};const wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ki={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Pi=function(e){if(ki.hasOwnProperty(e))return ki[e];let t=pi(e,wi);return t||e+"ly"};const Ai=[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"},Ni=new Set(["terrible","annoying"]);const Ei=function(e,t){const n=t.two.models.toSuperlative;return Mo(e,n)},xi=function(e,t){const n=t.two.models.toComparative;return Mo(e,n)};var Ii={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 Ti={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===Ii.hasOwnProperty(i)&&Ii[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Aa,nounToSingular:ii,verbToInfinitive:hi,getTense:ui,verbConjugate:di,adjToSuperlative:Ei,adjToComparative:xi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Mo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Mo(e,n)},advToAdjective:yi,adjToAdverb:Pi,adjToNoun:function(e){if(ji.hasOwnProperty(e))return ji[e];if(Ni.has(e))return null;let t=pi(e,Ai);return t||e+"ness"}}}};var Gi=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 Di=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Ci=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=Di(n,"Infinitive","PastTense"),Object.assign(s,l),l=Di(r,"Infinitive","Verb"),Object.assign(s,l),l=Di(a,"Infinitive","Gerund"),Object.assign(s,l),l=Di(o,"Adjective","Superlative"),Object.assign(s,l),l=Di(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Oi={two:{models:ri}};const Vi={"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"},Bi=function(e,t){const n={model:t,methods:Ti};let{lex:r,_multi:a}=Ti.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},zi=function(e,t,n){let r=di(e,Oi);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]=Vi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||zi(a,r,!1),"Adj|Present"===o&&(zi(a,r,!0),function(e,t,n){let r=Ei(e,n);t[r]=t[r]||"Superlative";let a=xi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=hi(a,Oi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=hi(a,Oi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Bi(n,t)};let Fi={one:{_multiCache:{},lexicon:Na},two:{irregularPlurals:da,models:ri,suffixPatterns:ko,prefixPatterns:Ao,endsWith:Do,neighbours:Vo,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:Ea,clues:uo,uncountable:{},orgWords:ai}};Fi=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=Bi(e.one.lexicon,e)).one.lexicon,e),e=$i(e.two.switches,e),e=Ci(e),e=Gi(e)}(Fi);var Si=Fi;const Hi=/^(under|over|mis|re|un|dis|semi)-?/;var Mi=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(Hi.test(a.normal)){let e=a.normal.replace(Hi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Li=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 Wi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Ji=new Set(["formulas","koalas","israelis","menus"]),qi=["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 Ki=function(e){if(!e||e.length<=3)return!1;if(Ji.has(e))return!0;let t=e[e.length-1];return Wi.hasOwnProperty(t)?Wi[t].find(t=>e.endsWith(t)):"s"===t&&!qi.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Ui=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Ki(e.normal)?Li(e,"Plural","3-plural-guess"):Li(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ui(e.normal);t&&Li(e,t,"3-verb-tense-guess")}}(r)};const Qi=/^\p{Lu}[\p{Ll}'’]/u,_i=/[0-9]/,Zi=["Date","Month","WeekDay","Unit"],Yi=/^[IVXLCDM]{2,}$/,Xi=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,es={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===Qi.test(o)&&!1===_i.test(o)?Zi.find(e=>r.tags.has(e))?null:(Ui(e,t,n),r.tags.has("Noun")||r.tags.clear(),Li(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Yi.test(o)&&Xi.test(o)&&!es[r.normal]?(Li(r,"RomanNumeral","2-xvii"),!0):null};const ns=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 rs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ns(r.normal,n.two.suffixPatterns);if(null!==e)return Li(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ns(r.implicit,n.two.suffixPatterns),null!==e))return Li(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const as=/['‘’‛‵′`´]/,os=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 Li(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ls=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"]),us=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ls.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},cs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},hs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ds=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(us(a)||us(o))return Li(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(cs(a)||cs(o))return Li(n,"Year","2-tagYear-close");if(hs(e[t-2])||hs(e[t+2]))return Li(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 Li(n,"Year","2-tagYear-noun")}}}return null};const ps=/^[A-Z]('s|,)?$/,ms=/^[A-Z-]+$/,gs=/([A-Z]\.)+[A-Z]?,?$/,fs=/[A-Z]{2,}('s|,)?$/,vs=/([a-z]\.)+[a-z]\.?$/,bs={I:!0,A:!0};var ys=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===ms.test(n)||n.length>5||bs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==gs.test(n)&&!0!==vs.test(n)&&!0!==ps.test(n)&&!0!==fs.test(n))}(r,n)?(r.tags.clear(),Li(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!bs.hasOwnProperty(r.text)&&ps.test(r.text)?(r.tags.clear(),Li(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Li(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&ms.test(r.text)&&r.text.length<=6?(Li(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},ks=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ps=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||ks(e[t-1],r),l=l||ks(e[t+1],i),l)return Li(s,l,"3-[neighbour]"),Ui(e,t,n),e[t].confidence=.2,!0}return null};const As=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]&&As(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&As(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Ns=function(e,t,n){0===e[t].tags.size&&(Li(e[t],"Noun","3-[fallback]"),Ui(e,t,n),e[t].confidence=.1)};const Es=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,xs=(e,t,n)=>0!==t||e[1]?null:n;var Is={"Adj|Gerund":(e,t)=>Es(e,t),"Adj|Noun":(e,t)=>Es(e,t),"Adj|Past":(e,t)=>Es(e,t),"Adj|Present":(e,t)=>Es(e,t),"Noun|Gerund":(e,t)=>Es(e,t),"Noun|Verb":(e,t)=>Es(e,t)||xs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Es(e,t)||xs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Es(e,t),"Person|Verb":(e,t)=>0!==t&&Es(e,t)};const Ts="undefined"!=typeof process&&process.env?process.env:self.env||{},Gs=/^(under|over|mis|re|un|dis|semi)-?/,Ds=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ts.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Cs=(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&&Ts.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Os={tagSwitch:Mi,checkSuffix:rs,checkRegex:is,checkCase:ts,checkPrefix:ss,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")&&(Li(o,"Verb","3-[prefix]"),Li(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Li(o,"Adjective","3-[prefix]"),Li(o,"Prefix","3-[prefix]")))},checkYear:ds},Vs={checkAcronym:ys,neighbours:Ps,orgWords:js,nounFallback:Ns,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(Gs.test(l)&&!o[l]&&(l=l.replace(Gs,"")),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=Ds(e[t+1],n.afterWords);return o=o||Ds(e[t-1],n.beforeWords),o=o||Cs(e[t-1],n.beforeTags,a),o=o||Cs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Is[o]&&(u=Is[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ts.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Bs=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 Fs={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 Ss={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 _s=/'/;var Zs=function(e,t){let n=e[t].normal.split(_s)[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 Ys=/'/;var Xs=function(e,t){let n=e[t].normal.split(Ys)[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 el=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 tl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},nl={in:!0,by:!0,for:!0};var rl=(e,t)=>{let n=e[t];if(tl.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===nl[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 al=/'/,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"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},il={d:(e,t)=>Xs(e,t),t:(e,t)=>el(e,t),s:(e,t,n)=>rl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Zs(e,t)},sl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ll={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===al.test(r[o].normal)&&([,i]=r[o].normal.split(al));let s=null;il.hasOwnProperty(i)&&(s=il[i](r,o,t)),s&&(s=sl(s,e),Qs(n,[a,o],s),ol(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=Us.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=Rs},hooks:["contractionTwo"]};const ul="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const cl=["i","we","they"];let hl=[].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:ul+" #Person",tag:"Person",reason:"randy-smith"},{match:ul+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${ul}]`,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:cl,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:cl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:cl,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 dl=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(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;dl=dl||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(dl),e.uncache(),e}},model:{two:{matches:hl}},hooks:["postTagger"]};var ml=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")?ml(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=gl}};m.plugin(Js),m.plugin(ll),m.plugin(pl),m.plugin(fl);var vl=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 bl=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 yl={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 Il={compute:{chunks:function(e){const{document:t,world:n}=e;wl(t),kl(t),jl(e,t,n),El(t),xl(t)}},api:function(e){e.prototype.chunks=bl,e.prototype.clauses=vl},hooks:["chunks"]};const Tl=/'s$/;var Gl=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(Tl,""),e.normal=e.normal.replace(Tl,"")})}),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 Dl=/\(/,Cl=/\)/,Ol=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Dl,"");let t=e[e.length-1];t.post=t.post.replace(Cl,"")}),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 Bl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},zl=RegExp("("+Object.keys(Bl).join("|")+")"),$l=RegExp("("+Object.values(Bl).join("|")+")"),Fl=function(e,t){const n=e[t].pre.match(zl)[0]||"";if(!n||!Bl[n])return null;const r=Bl[n];for(;t{e[0].pre=e[0].pre.replace(zl,"");let t=e[e.length-1];t.post=t.post.replace($l,"")})}(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 Hl=/\./g;var Ml=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(Hl,""),e.normal=e.normal.replace(Hl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Hl,""),e.normal=e.normal.replace(Hl,""),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 Ll=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 Wl=(e,t)=>"number"==typeof t?e.eq(t):e,Jl=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 ql=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=Jl(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 Wl(this,e).map(e=>{let n=Jl(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=Jl(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=Jl(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Wl(this,e).map(e=>{let n=Jl(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Wl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Wl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Wl(t,e),new Adjectives(t.document,t.pointer)}};const Kl=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},Rl=[["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 Ul=[["emojis","emoji"],["atmentions","atMentions"]];var Ql=function(e){Rl.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=Kl,Ul.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},_l={api:function(e){Ql(e),Gl(e),Vl(e),Sl(e),ql(e),Ll(e),Ml(e)}};const Zl=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var Yl={case:e=>{Zl(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Zl(e,e=>e.text=n(e.text,t))},whitespace:e=>{Zl(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=>{Zl(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 Xl=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),eu="unicode|punctuation|whitespace|acronyms",tu="|case|contractions|parentheses|quotations|emoji|honorifics",nu={light:Xl(eu),medium:Xl(eu+tu),heavy:Xl(eu+tu+"|possessives|adverbs|nouns|verbs")};var ru={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=nu[e]),Object.keys(e).forEach(t=>{Yl.hasOwnProperty(t)&&Yl[t](this,e[t])}),this}}};var au=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 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 lu=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:su(e,t),isSubordinate:iu(e),root:t}};const uu=e=>e.text(),cu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),hu=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var du=function(e){let t=lu(e);return{root:uu(t.root),number:hu(t.number),determiner:uu(t.determiner),adjectives:cu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const pu={tags:!0};var mu=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,pu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",pu),e};const gu={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,gu).tag("Singular","toPlural"),e};const vu=(e,t)=>"number"==typeof t?e.eq(t):e;var bu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return vu(this,e).map(lu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=du(t)),n},[])}isPlural(e){let t=this.filter(e=>lu(e).isPlural);return vu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=lu(e).adjectives;n.found&&(t=t.concat(n))}),vu(t,e)}toPlural(e){return vu(this,e).map(e=>mu(e,lu(e)))}toSingular(e){return vu(this,e).map(e=>{let t=lu(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=au(this);return t=vu(t,e),new Nouns(this.document,t.pointer)}}};var yu=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(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};var Au=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 Nu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Eu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},xu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Iu=function(e){if(!0===Eu.hasOwnProperty(e))return Eu[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=Gu(n),r=Gu(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:Gu(n);let a=r.text("reduced");return Tu.test(a)&&(a=a.replace(Tu,""),r=r.replaceWith(a)),r=Du.hasOwnProperty(a)?Du[a]:Gu(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:Gu(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 Ou=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 Vu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Bu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],zu=[[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"]],$u=function(e){let t=[];if(e>100)return t;for(let n=0;n=Vu[n][1]&&(e-=Vu[n][1],t.push(Vu[n][0]));return Bu[e]&&t.push(Bu[e]),t};var Fu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ou(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return zu.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($u(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=Ou(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 Su=function(e){if(!e.numerator||!e.denominator)return"";return`${Fu({num:e.numerator})} out of ${Fu({num:e.denominator})}`};const Hu={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 Mu=e=>{let t=Fu(e).split(" "),n=t[t.length-1];return Hu.hasOwnProperty(n)?t[t.length-1]=Hu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Lu=function(e){if(!e.numerator||!e.denominator)return"";let t=Fu({num:e.numerator}),n=Mu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Wu=(e,t)=>"number"==typeof t?e.eq(t):e;var Ju=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Wu(this,e).map(Cu)}get(e){return Wu(this,e).map(Cu)}json(e){return Wu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Cu(t);return n.fraction=r,n},[])}toDecimal(e){return Wu(this,e).forEach(e=>{let{decimal:t}=Cu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Wu(this,e).forEach(e=>{let t=Cu(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 Wu(this,e).forEach(e=>{let t=Cu(e),n=Lu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Wu(this,e).forEach(e=>{let t=Cu(e),n=Su(t);e.replaceWith(n)}),this}toPercentage(e){return Wu(this,e).forEach(e=>{let{decimal:t}=Cu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=yu(this);return t=Wu(t,e),new Fractions(this.document,t.pointer)}};const qu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Ku=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("("+qu+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+qu+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+qu+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+qu+")"));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) (${qu})`),r=e.has("("+qu+") #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("("+qu+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+qu+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Ru=function(e){if("string"==typeof e)return{num:Iu(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=Cu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Iu(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 Uu=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=Ou(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Qu={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},_u={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var Zu=function(e){let t={suffix:"",prefix:e.prefix};return Qu.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Qu[e.prefix],t.prefix=""),_u.hasOwnProperty(e.suffix)&&(t.suffix+=" "+_u[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Yu=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Zu(e);return t+Mu(e)+n}if("Ordinal"===t)return e.prefix+Uu(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Zu(e);return t+Fu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Xu=(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 Xu(this,e).map(Ru)}get(e){return Xu(this,e).map(Ru).map(e=>e.num)}json(e){return Xu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ru(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=Ru(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Yu(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=Ru(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Yu(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=Ru(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Yu(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=>Ru(t).num===e)}greaterThan(e){return this.filter(t=>Ru(t).num>e)}lessThan(e){return this.filter(t=>Ru(t).num{let r=Ru(n).num;return r>e&&r{let n=Ru(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=Yu(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=Ru(e).num);let t=this.map(t=>{let n=Ru(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=Yu(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=Ku(this);return t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Ku(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Ku(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=Xu(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var tc={api:function(e){Ju(e),ec(e)}};const nc={people:!0,emails:!0,phoneNumbers:!0,places:!0},rc=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 ac={api:function(e){e.prototype.redact=rc}};var 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))})};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 sc=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 lc=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 uc=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 hc=function(e){return e.verbs().toInfinitive(),e};const dc=(e,t)=>"number"==typeof t?e.eq(t):e;var pc={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}=sc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return dc(this,e).map(e=>(sc(e),lc(e)))}toPresentTense(e){return dc(this,e).map(e=>(sc(e),uc(e)))}toFutureTense(e){return dc(this,e).map(e=>(sc(e),e=cc(e)))}toInfinitive(e){return dc(this,e).map(e=>(sc(e),hc(e)))}toNegative(e){return dc(this,e).map(e=>(sc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return dc(this,e).map(e=>(sc(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 dc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return dc(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=dc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=oc(this);return dc(t,e)}};Object.assign(e.prototype,t)}};var mc=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 fc="male",vc="female",bc={mr:fc,mrs:vc,miss:vc,madam:vc,king:fc,queen:vc,duke:fc,duchess:vc,baron:fc,baroness:vc,count:fc,countess:vc,prince:fc,princess:vc,sire:fc,dame:vc,lady:vc,ayatullah:fc,congressman:fc,congresswoman:vc,"first lady":vc,mx:null};var yc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return vc;if(n.has("#MaleName"))return fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),bc.hasOwnProperty(e))return bc[e];if(/^her /.test(e))return vc;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 vc}return null};const wc=(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 wc(this,e).map(gc)}json(e){return wc(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:yc(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=mc(this);return t=wc(t,e),new People(this.document,t.pointer)}};var Pc=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 Ac=function(e){e.prototype.places=function(t){let n=Pc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var jc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Nc=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 Ec=function(e){e.prototype.topics=Nc};var xc={api:function(e){kc(e),Ac(e),jc(e),Ec(e)}};var Ic=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 Tc=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 Gc=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 Dc=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},Cc=function(e){return e.match("#Negative")},Oc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Vc=function(e){let t=e.clone();t.contractions().expand();const n=Tc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Gc(t,n),auxiliary:Dc(t,n),negative:Cc(t),phrasal:Oc(n)}};const Bc={tense:"PresentTense"},zc={conditional:!0},$c={tense:"FutureTense"},Fc={progressive:!0},Sc={tense:"PastTense"},Hc={complete:!0,progressive:!1},Mc={passive:!0},Lc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Wc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Bc]],["^wanted to #Infinitive$",[Sc]],["^will want to #Infinitive$",[$c]]],"gerund-phrase":[["^#PastTense #Gerund$",[Sc]],["^#PresentTense #Gerund$",[Bc]],["^#Infinitive #Gerund$",[Bc]],["^will #Infinitive #Gerund$",[$c]],["^have #PastTense #Gerund$",[Sc]],["^will have #PastTense #Gerund$",[Sc]]],"simple-present":[["^#PresentTense$",[Bc]],["^#Infinitive$",[Bc]]],"simple-past":[["^#PastTense$",[Sc]]],"simple-future":[["^will #Adverb? #Infinitive",[$c]]],"present-progressive":[["^(is|are|am) #Gerund$",[Bc,Fc]]],"past-progressive":[["^(was|were) #Gerund$",[Sc,Fc]]],"future-progressive":[["^will be #Gerund$",[$c,Fc]]],"present-perfect":[["^(has|have) #PastTense$",[Sc,Hc]]],"past-perfect":[["^had #PastTense$",[Sc,Hc]],["^had #PastTense to #Infinitive",[Sc,Hc]]],"future-perfect":[["^will have #PastTense$",[$c,Hc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Sc,Fc]]],"past-perfect-progressive":[["^had been #Gerund$",[Sc,Fc]]],"future-perfect-progressive":[["^will have been #Gerund$",[$c,Fc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Sc,Mc]],["^(was|were) being (#PastTense|#Participle)",[Sc,Mc]],["^(had|have) been (#PastTense|#Participle)",[Sc,Mc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Bc,Mc]],["^(is|are|am) being (#PastTense|#Participle)",[Bc,Mc]],["^has been (#PastTense|#Participle)",[Bc,Mc]]],"passive-future":[["will have been (#PastTense|#Participle)",[$c,Mc,zc]],["will be being? (#PastTense|#Participle)",[$c,Mc,zc]]],"present-conditional":[["would be #PastTense",[Bc,zc]]],"past-conditional":[["would have been #PastTense",[Sc,zc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[$c]]],"auxiliary-past":[["^did #Infinitive$",[Sc,{plural:!1}]],["^used to #Infinitive$",[Sc,Hc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Bc,Hc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Sc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Jc=[];Object.keys(Wc).map(e=>{Wc[e].forEach(t=>{Jc.push({name:e,match:t[0],data:Lc(t[1])})})});var qc=Jc;var Kc=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(),Rc(r)&&(n.remove(r),r=n.last()),Rc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Uc(t,e)}};const _c=e=>e,Zc=(e,t)=>{let n=Qc(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Yc=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Qc(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Xc=function(e,t){let n=Qc(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},th=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"),rh=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},ah=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,eh(e))};var ih=function(e){let t=Vc(e);e=e.clone().toView();const n=Kc(e,t);return{root:t.root.text(),preAdverbs:rh(t.adverbs.pre),postAdverbs:rh(t.adverbs.post),auxiliary:ah(t.auxiliary),negative:t.negative.found,prefix:ah(t.prefix),infinitive:oh(t.root),grammar:n}};const sh={tags:!0};var lh=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,sh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Xc(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const uh={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,eh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Qc(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,uh),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",uh),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}},hh={infinitive:ch.simple,"simple-present":ch.simple,"simple-past":_c,"simple-future":ch.both,"present-progressive":e=>(e.replace("are","were",uh),e.replace("(is|are|am)","was",uh),e),"past-progressive":_c,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":ch.hasHad,"past-perfect":_c,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=nh(e)),e.remove("have"),e),"present-perfect-progressive":ch.hasHad,"past-perfect-progressive":_c,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",uh),e),"passive-past":e=>(e.replace("have","had",uh),e),"passive-present":e=>(e.replace("(is|are)","was",uh),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",uh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":_c,"auxiliary-future":e=>(e.replace("(is|are|am)","was",uh),e),"auxiliary-past":_c,"auxiliary-present":e=>(e.replace("(do|does)","did",uh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",uh):(ch.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":_c,"want-infinitive":e=>(e.replace("(want|wants)","wanted",uh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ch.simple(e,t),nh(e),e)};var dh=function(e,t,n){return hh.hasOwnProperty(n)?((e=hh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const ph={tags:!0},mh=(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===Zc(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Yc(e)),o&&(e=e.replace(a,o,ph)).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,eh(a)),!1===Zc(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,ph)).not("#Particle").tag("Gerund"),e},fh={infinitive:mh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return mh(e,t);{let t=Qc(e).subject;if(Zc(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,ph)}return e},"simple-past":mh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Yc(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else mh(e,t),e=e.remove("will");return e},"present-progressive":_c,"past-progressive":(e,t)=>{let n=Yc(e);return e.replace("(were|was)",n,ph)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(mh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Qc(e).subject;return Zc(e)||n.has("i")?((e=th(e,t)).remove("had"),e):(e.replace("had","has",ph),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":_c,"past-perfect-progressive":e=>e.replace("had","has",ph),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Yc(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,ph),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":_c,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":_c,"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=Xc(e);return e.replace(t.auxiliary,n),e}return gh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":_c,"modal-infinitive":_c,"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,ph))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),mh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Zc(e)&&(n="want"),e.replace("(want|wanted|wants)",n,ph),e.remove("will"),e}};var vh=function(e,t,n){return fh.hasOwnProperty(n)?((e=fh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const bh={tags:!0},yh=(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,bh)).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,eh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,bh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},kh={infinitive:yh,"simple-present":yh,"simple-past":yh,"simple-future":_c,"present-progressive":wh,"past-progressive":wh,"future-progressive":_c,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":_c,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":_c,"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":_c,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":_c,"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":_c,"modal-past":_c,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),yh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Ph=function(e,t,n){return e.has("will")||e.has("going to")?e:kh.hasOwnProperty(n)?((e=kh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Ah={tags:!0};var jh=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=`${Yc(e)} ${s}`,e.replace(a,s,Ah)),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 Nh={tags:!0},Eh=function(e,t){let n=Xc(e);return e.prepend(n+" not"),e},xh=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)},Ih=e=>e.has("(is|was|am|are|will|were|be)"),Th={"simple-present":(e,t)=>!0===Ih(e)?xh(e):(e=th(e,t),e=Eh(e)),"simple-past":(e,t)=>!0===Ih(e)?xh(e):((e=th(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Ih(e)?xh(e):Eh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Nh),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=Eh(e)).replace("wants","want",Nh)};var Gh=function(e,t,n){if(e.has("#Negative"))return e;if(Th.hasOwnProperty(n))return e=Th[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Ih(e)?xh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Dh=(e,t)=>"number"==typeof t?e.eq(t):e;var Ch={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Dh(this,e).map(Vc)}json(e,t){return Dh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=ih(t),n},[])}subjects(e){return Dh(this,e).map(e=>(Vc(e),Qc(e).subject))}adverbs(e){return Dh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Dh(this,e).filter(e=>!0!==Qc(e).plural)}isPlural(e){return Dh(this,e).filter(e=>!0===Qc(e).plural)}isImperative(e){return Dh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return lh(e,t,n.form)})}toPresentTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return vh(e,t,n.form)})}toPastTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return dh(e,t,n.form)})}toFutureTense(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return Ph(e,t,n.form)})}toGerund(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return jh(e,t,n.form)})}conjugate(e){return Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:lh(e.clone(),t,n.form).text("normal"),PastTense:dh(e.clone(),t,n.form).text("normal"),PresentTense:vh(e.clone(),t,n.form).text("normal"),FutureTense:Ph(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 Dh(this,e).map(e=>{let t=Vc(e),n=Kc(e,t);return Gh(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=Ic(this);return t=Dh(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Il),m.plugin(_l),m.plugin(ru),m.plugin(bu),m.plugin(tc),m.plugin(ac),m.plugin(pc),m.plugin(xc),m.plugin(Ch);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]);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.0";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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&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;r>2]|=(i.charCodeAt(u)||128)<>6)+14]=8*s,u=0;u>4]+(fn[a]+(0|o[[a,5*a+1,3*a+5,7*a][s]%16+u])))<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+a++%4])|r>>>32-s),t,n];for(a=4;a;)l[--a]=l[a]+s[a]}for(e="";a<32;)e+=(l[a>>3]>>4*(1^7&a++)&15).toString(16);return e}}}};const bn=function(e,t){if(e[0]!==t[0])return!1;let[,n,r]=e,[,a,o]=t;return n<=a&&r>a||a<=n&&o>n},yn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var wn=function(e,t){let n=yn(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 kn={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:yn,splitAll:wn}}};var Pn=function(e,t){let n=e.concat(t),r=yn(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=>bn(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 jn=function(e,t){let n=yn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=Nn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=Nn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=Nn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=An(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Pn(e,[t])}),e=En(e,this.document),this.update(e)};var In={methods:kn,api:function(e){Object.assign(e.prototype,xn)}};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 Gn=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: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=Tn(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 Dn=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 Cn=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 On=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 Vn=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=Gn(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=Dn(a,t.hooks);return o=Cn(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),On(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===Vn(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=/ /,$n=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(/^#/,""),Fn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nSn(e,t,n,r))};var Hn=Sn;var Mn=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=>Ln({id:e})),t}return[Ln({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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),Rn=e=>(e=e||"").trim(),Un=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:Jn(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=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},Qn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return qn(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},_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},Zn={text:Qn,txt:Qn,array:_n,flat:_n},Yn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Qn(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Xn=e=>{qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},er=/\//;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=Rn(e),!er.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)||Ln({});return new g$1(t)}add(e,t={}){if(Kn(e))return e.forEach(e=>this.add(Rn(e),t)),this;e=Rn(e);let n=Ln({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Rn(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 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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(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 Xn(this.json),Yn(this.json,e)}debug(){return Xn(this.json),Yn(this.json,"debug"),this}}const tr=function(e){let t=Un(e);return new g$1(t)};tr.prototype.plugin=function(e){e(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(e){if(nr.hasOwnProperty(e.id))return nr[e.id];if(nr.hasOwnProperty(e.is))return nr[e.is];let t=e._cache.parents.find(e=>nr[e]);return nr[t]};var ar=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:rr(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 or=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=or(e[t].children),e[t].not=or(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 sr={one:{setTag:Hn,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=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 tr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ar(n)}}};const lr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ur={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||""),lr(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 lr(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 cr=function(e){Object.assign(e.prototype,ur)};var hr={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 dr=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(dr.has(e)||!t.hasOwnProperty(n))return 1;if(dr.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:sr,api:cr,lib:hr};const mr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var fr=function(e){let t=[],n=e.split(gr);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 Vr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Br=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,zr=/['’]/,$r=/^[a-z]\.([a-z]\.)+/i,Fr=/^[-+.][0-9]/,Sr=/^'[0-9]{2}/;var Hr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Vr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fr.test(e)?"'"===n&&Sr.test(e)?(n="",t):"":(n="",t)))).replace(Br,a=>(r=a,zr.test(a)&&/[sn]['’]$/.test(t)&&!1===zr.test(n)?(r=r.replace(zr,""),"'"):!0===$r.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Mr=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 Lr=/([A-Z]\.)+[A-Z]?,?$/,Wr=/^[A-Z]\.,?$/,Jr=/[A-Z]{2,}('s|,)?$/,qr=/([a-z]\.)+[a-z]\.?$/;var Kr=function(e){return function(e){return!0===Lr.test(e)||!0===qr.test(e)||!0===Wr.test(e)||!0===Jr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Rr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Mr(r),r=n(r,t),r=Kr(r),e.normal=r};var Ur={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:jr,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(Cr);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=Tr(n),n=xr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Hr(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=>{Rr(e,t)}),n})}}}};var Qr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let _r={},Zr={};[[["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=>{_r[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])})});var Yr=["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 Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},ea={};Object.keys(Xr).forEach((function(e){Xr[e].split("").forEach((function(t){ea[t]=e}))}));const ta=/\//,na=/[a-z]\.[a-z]/i,ra=/[0-9]/;var aa=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])),ta.test(n)&&!na.test(n)&&!ra.test(n)){let t=n.split(ta);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const oa=/^\p{Letter}+-\p{Letter}+$/u;var ia=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"),oa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var sa=function(e){let t=0,n=0,r=e.document;for(let e=0;ela(e,aa),machine:e=>la(e,ia),normal:e=>la(e,Rr),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 da={safe:!0,min:3};var pa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ca},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},da,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ha(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(vn),m.extend(St),m.extend(In),m.extend(pr),m.plugin(ve),m.extend(ua),m.plugin(f),m.extend(Te),m.extend(pa),m.extend(Pe),m.extend(Bn);var ma={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"},ga={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 fa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",va=fa.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ba=function(e){if(void 0!==va[e])return va[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 ya=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=Pa(ga[e]);Ea.test(e)?Object.keys(t).forEach(t=>{if(Ia[t]=e,"Noun|Verb"===e){let e=Na(t,Ta);Ia[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{xa[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","xa[e]="Emoticon"),delete xa[""],delete xa.null,delete xa[" "];const Ga="Adjective";var Da={beforeTags:{Determiner:Ga,Possessive:Ga},afterTags:{Adjective:Ga},beforeWords:{seem:Ga,seemed:Ga,seems:Ga,feel:Ga,feels:Ga,felt:Ga,appear:Ga,appears:Ga,appeared:Ga,also:Ga,over:Ga,under:Ga,too:Ga,it:Ga,but:Ga,still:Ga,really:Ga,quite:Ga,well:Ga,very:Ga,deeply:Ga,profoundly:Ga,extremely:Ga,so:Ga,badly:Ga,mostly:Ga,totally:Ga,awfully:Ga,rather:Ga,nothing:Ga,something:Ga,anything:Ga},afterWords:{too:Ga,also:Ga,or:Ga}};const Ca="Gerund";var Oa={beforeTags:{Adverb:Ca,Preposition:Ca,Conjunction:Ca},afterTags:{Adverb:Ca,Possessive:Ca,Person:Ca,Pronoun:Ca,Determiner:Ca,Copula:Ca,Preposition:Ca,Conjunction:Ca,Comparative:Ca},beforeWords:{been:Ca,keep:Ca,continue:Ca,stop:Ca,am:Ca,be:Ca,me:Ca,began:Ca,start:Ca,starts:Ca,started:Ca,stops:Ca,stopped:Ca,help:Ca,helps:Ca,avoid:Ca,avoids:Ca,love:Ca,loves:Ca,loved:Ca,hate:Ca,hates:Ca,hated:Ca},afterWords:{you:Ca,me:Ca,her:Ca,him:Ca,them:Ca,their:Ca,it:Ca,this:Ca,there:Ca,on:Ca,about:Ca,for:Ca}};var Va={beforeTags:Object.assign({},Da.beforeTags,Oa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Da.afterTags,Oa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Da.beforeWords,Oa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Da.afterWords,Oa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ba="Singular";var za={beforeTags:{Determiner:Ba,Possessive:Ba,Acronym:Ba,Noun:Ba,Adjective:Ba,PresentTense:Ba,Gerund:Ba,PastTense:Ba,Infinitive:Ba,Date:Ba},afterTags:{Value:Ba,Modal:Ba,Copula:Ba,PresentTense:Ba,PastTense:Ba,Demonym:Ba},beforeWords:{the:Ba,with:Ba,without:Ba,of:Ba,for:Ba,any:Ba,all:Ba,on:Ba,cut:Ba,cuts:Ba,save:Ba,saved:Ba,saves:Ba,make:Ba,makes:Ba,made:Ba,minus:Ba,plus:Ba,than:Ba,another:Ba,versus:Ba,neither:Ba,favorite:Ba,best:Ba,daily:Ba,weekly:Ba,linear:Ba,binary:Ba,mobile:Ba,lexical:Ba,technical:Ba,computer:Ba,scientific:Ba,formal:Ba},afterWords:{of:Ba,system:Ba,aid:Ba,method:Ba,utility:Ba,tool:Ba,reform:Ba,therapy:Ba,philosophy:Ba,room:Ba,authority:Ba,says:Ba,said:Ba,wants:Ba,wanted:Ba}};const $a={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fa={beforeTags:Object.assign({},Da.beforeTags,za.beforeTags,$a.beforeTags),afterTags:Object.assign({},Da.afterTags,za.afterTags),beforeWords:Object.assign({},Da.beforeWords,za.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,za.afterWords)};const Sa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ha={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ma={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},La={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wa={beforeTags:Object.assign({},Da.beforeTags,Sa),afterTags:Object.assign({},Da.afterTags,Ha),beforeWords:Object.assign({},Da.beforeWords,Ma),afterWords:Object.assign({},Da.afterWords,La)};const Ja="Infinitive";var qa={beforeTags:{Modal:Ja,Adverb:Ja,Negative:Ja,Plural:Ja},afterTags:{Determiner:Ja,Adverb:Ja,Possessive:Ja,Preposition:Ja},beforeWords:{i:Ja,we:Ja,you:Ja,they:Ja,to:Ja,please:Ja,will:Ja,have:Ja,had:Ja,would:Ja,could:Ja,should:Ja,do:Ja,did:Ja,does:Ja,can:Ja,must:Ja,us:Ja,me:Ja,he:Ja,she:Ja,it:Ja,being:Ja},afterWords:{the:Ja,me:Ja,you:Ja,him:Ja,her:Ja,them:Ja,it:Ja,a:Ja,an:Ja,up:Ja,down:Ja,by:Ja,out:Ja,off:Ja,under:Ja,when:Ja,all:Ja,to:Ja,because:Ja,although:Ja,before:Ja,how:Ja,otherwise:Ja,together:Ja,though:Ja,yet:Ja}};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Da.beforeTags,qa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,qa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Da.beforeWords,qa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,qa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qa={},_a={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Za={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Ya={beforeTags:Object.assign({},Oa.beforeTags,za.beforeTags,Ua),afterTags:Object.assign({},Oa.afterTags,za.afterTags,Qa),beforeWords:Object.assign({},Oa.beforeWords,za.beforeWords,_a),afterWords:Object.assign({},Oa.afterWords,za.afterWords,Za)};var Xa={beforeTags:Object.assign({},qa.beforeTags,za.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qa.afterTags,za.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qa.beforeWords,za.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qa.afterWords,za.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ro={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ao={beforeTags:Object.assign({},to.beforeTags,ro.beforeTags),afterTags:Object.assign({},to.afterTags,ro.afterTags),beforeWords:Object.assign({},to.beforeWords,ro.beforeWords),afterWords:Object.assign({},to.afterWords,ro.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const uo={"Adj|Gerund":Va,"Adj|Noun":Fa,"Adj|Past":Wa,"Adj|Present":Ra,"Noun|Verb":Xa,"Noun|Gerund":Ya,"Person|Noun":{beforeTags:Object.assign({},za.beforeTags,to.beforeTags),afterTags:Object.assign({},za.afterTags,to.afterTags),beforeWords:Object.assign({},za.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},za.afterWords,to.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,qa.beforeTags),afterTags:Object.assign({},to.afterTags,qa.afterTags),beforeWords:Object.assign({},to.beforeWords,qa.beforeWords),afterWords:Object.assign({},to.afterWords,qa.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const po="Adjective",mo="Infinitive",go="PresentTense",fo="Singular",vo="PastTense",bo="Adverb",yo="Plural",wo="Verb",ko="LastName",Po="Participle";var Ao=[null,null,{ea:fo,ia:"Noun",ic:po,ly:bo,"'n":wo,"'t":wo},{oed:vo,ued:vo,xed:vo," so":bo,"'ll":"Modal","'re":"Copula",azy:po,eer:"Noun",end:wo,ped:vo,ffy:po,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:po,mum:po,nes:go,nny:po,ous:po,que:po,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:go,eld:vo,ken:Po,ven:Po,ten:Po,ect:mo,ict:mo,ign:mo,ful:po,bal:po},{amed:vo,aped:vo,ched:vo,lked:vo,rked:vo,reed:vo,nded:vo,mned:po,cted:vo,dged:vo,ield:fo,akis:ko,cede:mo,chuk:ko,czyk:ko,ects:go,ends:wo,enko:ko,ette:fo,wner:fo,fies:go,fore:bo,gate:mo,gone:po,ices:yo,ints:yo,ruct:mo,ines:yo,ions:yo,less:po,llen:po,made:po,nsen:ko,oses:go,ould:"Modal",some:po,sson:ko,tion:fo,tage:"Noun",ique:fo,tive:po,tors:"Noun",vice:fo,lier:fo,fier:fo,wned:vo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:po,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:po,nary:po},{elist:fo,holic:fo,phite:fo,tized:vo,urned:vo,eased:vo,ances:yo,bound:po,ettes:yo,fully:bo,ishes:go,ities:yo,marek:ko,nssen:ko,ology:"Noun",osome:fo,tment:fo,ports:yo,rough:po,tches:go,tieth:"Ordinal",tures:yo,wards:bo,where:bo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:fo,dient:fo},{auskas:ko,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:ko,borough:"Place",sdottir:ko}];const jo="Adjective";var No=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:jo,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:jo,tele:"Noun","pro-":jo,"mis-":"Verb","dis-":"Verb","pre-":jo},{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:jo,radio:"Noun",tetra:"Noun","omni-":jo,"post-":jo},{pseudo:jo,"extra-":jo,"hyper-":jo,"inter-":jo,"intra-":jo,"deca-":jo},{electro:"Noun"}];const Eo="Adjective",xo="Infinitive",Io="PresentTense",To="Singular",Go="PastTense",Do="Expression",Co="LastName";var Oo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Co],[/.[^aeiou]ica$/,To,"harmonica"],[/^([hyj]a+)+$/,Do,"haha"]],c:[[/.[^aeiou]ic$/,Eo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Go,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Go,"rammed"],[/.[aeiou][sg]hed$/,Go,"gushed"],[/.[aeiou]red$/,Go,"hired"],[/.[aeiou]r?ried$/,Go,"hurried"],[/[^aeiou]ard$/,To,"steward"],[/[aeiou][^aeiou]id$/,Eo,""],[/.[vrl]id$/,Eo,"livid"],[/..led$/,Go,"hurled"],[/.[iao]sed$/,Go,""],[/[aeiou]n?[cs]ed$/,Go,""],[/[aeiou][rl]?[mnf]ed$/,Go,""],[/[aeiou][ns]?c?ked$/,Go,"bunked"],[/[aeiou]gned$/,Go],[/[aeiou][nl]?ged$/,Go],[/.[tdbwxyz]ed$/,Go],[/[^aeiou][aeiou][tvx]ed$/,Go],[/.[cdflmnprstv]ied$/,Go,"emptied"]],e:[[/.[lnr]ize$/,xo,"antagonize"],[/.[^aeiou]ise$/,xo,"antagonise"],[/.[aeiou]te$/,xo,"bite"],[/.[^aeiou][ai]ble$/,Eo,"fixable"],[/.[^aeiou]eable$/,Eo,"maleable"],[/.[ts]ive$/,Eo,"festive"],[/[a-z]-like$/,Eo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Eo,"cornish"],[/.v[iy]ch$/,Co,"..ovich"],[/^ug?h+$/,Do,"ughh"],[/^uh[ -]?oh$/,Do,"uhoh"],[/[a-z]-ish$/,Eo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Co,"polish-male"]],k:[[/^(k){2}$/,Do,"kkkk"]],l:[[/.[gl]ial$/,Eo,"familial"],[/.[^aeiou]ful$/,Eo,"fitful"],[/.[nrtumcd]al$/,Eo,"natal"],[/.[^aeiou][ei]al$/,Eo,"familial"]],m:[[/.[^aeiou]ium$/,To,"magnesium"],[/[^aeiou]ism$/,To,"schism"],[/^[hu]m+$/,Do,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Eo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Do,"noooo"],[/^(yo)+$/,Do,"yoo"],[/^wo{2,}[pt]?$/,Do,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,To],[/[^i]fer$/,xo],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Eo],[/[aeiou].*ist$/,Eo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Io],[/.[rln]ates$/,Io],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,To],[/.[aeiou]sks$/,Io],[/.[aeiou]kes$/,Io],[/[aeiou][^aeiou]is$/,To],[/[a-z]'s$/,"Noun"],[/^yes+$/,Do]],v:[[/.[^aeiou][ai][kln]ov$/,Co]],y:[[/.[cts]hy$/,Eo],[/.[st]ty$/,Eo],[/.[tnl]ary$/,Eo],[/.[oe]ry$/,To],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Eo],[/...lly$/,"Adverb"],[/.[gk]y$/,Eo],[/[bszmp]{2}y$/,Eo],[/.[ai]my$/,Eo],[/[ea]{2}zy$/,Eo],[/.[^aeiou]ity$/,To]]};const Vo="Verb",Bo="Noun";var zo={leftTags:[["Adjective",Bo],["Possessive",Bo],["Determiner",Bo],["Adverb",Vo],["Pronoun",Vo],["Value",Bo],["Ordinal",Bo],["Modal",Vo],["Superlative",Bo],["Demonym",Bo],["Honorific","Person"]],leftWords:[["i",Vo],["first",Bo],["it",Vo],["there",Vo],["not",Vo],["because",Bo],["if",Bo],["but",Bo],["who",Vo],["this",Bo],["his",Bo],["when",Bo],["you",Vo],["very","Adjective"],["old",Bo],["never",Vo],["before",Bo],["a","Singular"],["the",Bo],["been",Vo]],rightTags:[["Copula",Bo],["PastTense",Bo],["Conjunction",Bo],["Modal",Bo]],rightWords:[["there",Vo],["me",Vo],["man","Adjective"],["only",Vo],["him",Vo],["it",Vo],["were",Bo],["took",Bo],["himself",Vo],["went",Bo],["who",Bo],["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"},Fo={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"},So={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"},Ho={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],r=n.match(Lo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Lo,"")}(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},qo=/^([0-9]+)/,Ko=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 r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(qo,"")]}(n[0],n[1])})};var Ro=function(e={}){return(e=Object.assign({},e)).rules=Ko(e.rules),e.rules=Jo(e.rules),e.rev&&(e.rev=Ko(e.rev),e.rev=Jo(e.rev)),e.exceptions=Ko(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Uo=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 Qo=Ro({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=Ro(Ho),Zo=Ro(Fo),Yo=Ro(So),Xo=Uo(Qo),ei=Uo(_o),ti=Uo(Zo),ni=Uo(Yo),ri=Ro($o),ai=Ro(Mo);var oi={fromPast:Qo,fromPresent:_o,fromGerund:Zo,fromParticiple:Yo,toPast:Xo,toPresent:ei,toGerund:ti,toParticiple:ni,toComparative:ri,toSuperlative:ai,fromComparative:Uo(ri),fromSuperlative:Uo(ai)},ii=["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),{}),si=[[/([^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 li=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(ui[t].forEach(n=>e[n]=t),e),{});var ci=ui;var hi=function(e){let t=e.substring(e.length-3);if(!0===ci.hasOwnProperty(t))return ci[t];let n=e.substring(e.length-2);return!0===ci.hasOwnProperty(n)?ci[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const di={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var pi=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=hi(e)),di.hasOwnProperty(e))c=di[e];else if("Participle"===n)c=Wo(l,i);else if("PastTense"===n)c=Wo(l,r);else if("PresentTense"===n)c=Wo(l,a);else{if("Gerund"!==n)return e;c=Wo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var 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:Wo(i,n),PresentTense:Wo(i,r),Gerund:Wo(i,a),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 gi=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 fi="ically",vi=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]),bi=[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"}],yi=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"]),wi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var ki=function(e){return e.endsWith("ly")?vi.has(e)?e.replace(/ically/,"ical"):yi.has(e)?null:wi.hasOwnProperty(e)?wi[e]:gi(e,bi)||e:null};const Pi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ai={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var ji=function(e){if(Ai.hasOwnProperty(e))return Ai[e];let t=gi(e,Pi);return t||e+"ly"};const Ni=[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"}],Ei={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"},xi=new Set(["terrible","annoying"]);const Ii=function(e,t){const n=t.two.models.toSuperlative;return Wo(e,n)},Ti=function(e,t){const n=t.two.models.toComparative;return Wo(e,n)};var Gi={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 Di={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===Gi.hasOwnProperty(i)&&Gi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Na,nounToSingular:li,verbToInfinitive:pi,getTense:hi,verbConjugate:mi,adjToSuperlative:Ii,adjToComparative:Ti,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:ki,adjToAdverb:ji,adjToNoun:function(e){if(Ei.hasOwnProperty(e))return Ei[e];if(xi.has(e))return null;let t=gi(e,Ni);return t||e+"ness"}}}};var Ci=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 Oi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Vi=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=Oi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Oi(r,"Infinitive","Verb"),Object.assign(s,l),l=Oi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Oi(o,"Adjective","Superlative"),Object.assign(s,l),l=Oi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Bi={two:{models:oi}};const zi={"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:Di};let{lex:r,_multi:a}=Di.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Fi=function(e,t,n){let r=mi(e,Bi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Si=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=zi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Fi(a,r,!1),"Adj|Present"===o&&(Fi(a,r,!0),function(e,t,n){let r=Ii(e,n);t[r]=t[r]||"Superlative";let a=Ti(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=pi(a,Bi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=pi(a,Bi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=$i(n,t)};let Hi={one:{_multiCache:{},lexicon:xa},two:{irregularPlurals:ma,models:oi,suffixPatterns:Ao,prefixPatterns:No,endsWith:Oo,neighbours:zo,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:Ia,clues:ho,uncountable:{},orgWords:ii}};Hi=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=Si(e.two.switches,e),e=Vi(e),e=Ci(e)}(Hi);var Mi=Hi;const Li=/^(under|over|mis|re|un|dis|semi)-?/;var Wi=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(Li.test(a.normal)){let e=a.normal.replace(Li,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Ji=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 qi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Ki=new Set(["formulas","koalas","israelis","menus"]),Ri=["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 Ui=function(e){if(!e||e.length<=3)return!1;if(Ki.has(e))return!0;let t=e[e.length-1];return qi.hasOwnProperty(t)?qi[t].find(t=>e.endsWith(t)):"s"===t&&!Ri.find(t=>e.endsWith(t))};const Qi=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var _i=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Ui(e.normal)?Ji(e,"Plural","3-plural-guess"):Ji(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=hi(e.normal);t&&Ji(e,t,"3-verb-tense-guess")}}(r)};const Zi=/^\p{Lu}[\p{Ll}'’]/u,Yi=/[0-9]/,Xi=["Date","Month","WeekDay","Unit"],es=/^[IVXLCDM]{2,}$/,ts=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ns={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var rs=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===Zi.test(o)&&!1===Yi.test(o)?Xi.find(e=>r.tags.has(e))?null:(_i(e,t,n),r.tags.has("Noun")||r.tags.clear(),Ji(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&es.test(o)&&ts.test(o)&&!ns[r.normal]?(Ji(r,"RomanNumeral","2-xvii"),!0):null};const as=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 os=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=as(r.normal,n.two.suffixPatterns);if(null!==e)return Ji(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=as(r.implicit,n.two.suffixPatterns),null!==e))return Ji(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const is=/['‘’‛‵′`´]/,ss=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 Ji(r,e,"2-prefix"),r.confidence=.5,!0}return null};const cs=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"]),hs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!cs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},ds=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ms=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(hs(a)||hs(o))return Ji(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ds(a)||ds(o))return Ji(n,"Year","2-tagYear-close");if(ps(e[t-2])||ps(e[t+2]))return Ji(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 Ji(n,"Year","2-tagYear-noun")}}}return null};const gs=/^[A-Z]('s|,)?$/,fs=/^[A-Z-]+$/,vs=/([A-Z]\.)+[A-Z]?,?$/,bs=/[A-Z]{2,}('s|,)?$/,ys=/([a-z]\.)+[a-z]\.?$/,ws={I:!0,A:!0};var ks=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===fs.test(n)||n.length>5||ws.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==vs.test(n)&&!0!==ys.test(n)&&!0!==gs.test(n)&&!0!==bs.test(n))}(r,n)?(r.tags.clear(),Ji(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!ws.hasOwnProperty(r.text)&&gs.test(r.text)?(r.tags.clear(),Ji(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Ji(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&fs.test(r.text)&&r.text.length<=6?(Ji(r,"Acronym","3-titlecase-acronym"),!0):null};const Ps=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},As=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: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||Ps(e[t-1],a),l=l||Ps(e[t+1],o),l=l||As(e[t-1],r),l=l||As(e[t+1],i),l)return Ji(s,l,"3-[neighbour]"),_i(e,t,n),e[t].confidence=.2,!0}return null};const Ns=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 Es=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]&&Ns(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ns(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var xs=function(e,t,n){0===e[t].tags.size&&(Ji(e[t],"Noun","3-[fallback]"),_i(e,t,n),e[t].confidence=.1)};const Is=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ts=(e,t,n)=>0!==t||e[1]?null:n;var Gs={"Adj|Gerund":(e,t)=>Is(e,t),"Adj|Noun":(e,t)=>Is(e,t),"Adj|Past":(e,t)=>Is(e,t),"Adj|Present":(e,t)=>Is(e,t),"Noun|Gerund":(e,t)=>Is(e,t),"Noun|Verb":(e,t)=>Is(e,t)||Ts(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Is(e,t)||Ts(e,t,"PresentTense"),"Person|Noun":(e,t)=>Is(e,t),"Person|Verb":(e,t)=>0!==t&&Is(e,t)};const Ds="undefined"!=typeof process&&process.env?process.env:self.env||{},Cs=/^(under|over|mis|re|un|dis|semi)-?/,Os=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ds.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Vs=(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&&Ds.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Bs={tagSwitch:Wi,checkSuffix:os,checkRegex:ls,checkCase:rs,checkPrefix:us,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")&&(Ji(o,"Verb","3-[prefix]"),Ji(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Ji(o,"Adjective","3-[prefix]"),Ji(o,"Prefix","3-[prefix]")))},checkYear:ms},zs={checkAcronym:ks,neighbours:js,orgWords:Es,nounFallback:xs,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(Cs.test(l)&&!o[l]&&(l=l.replace(Cs,"")),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=Os(e[t+1],n.afterWords);return o=o||Os(e[t-1],n.beforeWords),o=o||Vs(e[t-1],n.beforeTags,a),o=o||Vs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Gs[o]&&(u=Gs[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ds.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},$s=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 Hs={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: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 Ys=/'/;var Xs=function(e,t){let n=e[t].normal.split(Ys)[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 el=/'/;var tl=function(e,t){let n=e[t].normal.split(el)[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 nl=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},al={in:!0,by:!0,for:!0};var ol=(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 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===al[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 il=/'/,sl=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)},ll={d:(e,t)=>tl(e,t),t:(e,t)=>nl(e,t),s:(e,t,n)=>ol(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Xs(e,t)},ul=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var cl={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===il.test(r[o].normal)&&([,i]=r[o].normal.split(il));let s=null;ll.hasOwnProperty(i)&&(s=ll[i](r,o,t)),s&&(s=ul(s,e),Zs(n,[a,o],s),sl(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=_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=Qs},hooks:["contractionTwo"]};const hl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const dl=["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:"#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:hl+" #Person",tag:"Person",reason:"randy-smith"},{match:hl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${hl}]`,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:dl,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:dl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:dl,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 ml=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:r}=t;ml=ml||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(ml),e.uncache(),e}},model:{two:{matches:pl}},hooks:["postTagger"]};var fl=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 vl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?fl(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 bl={api:function(e){e.prototype.swap=vl}};m.plugin(Ks),m.plugin(cl),m.plugin(gl),m.plugin(bl);var yl=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 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 kl={this:"Noun",then:"Pivot"};var Pl=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 Gl={compute:{chunks:function(e){const{document:t,world:n}=e;Pl(t),Al(t),El(e,t,n),Il(t),Tl(t)}},api:function(e){e.prototype.chunks=wl,e.prototype.clauses=yl},hooks:["chunks"]};const Dl=/'s$/;var Cl=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(Dl,""),e.normal=e.normal.replace(Dl,"")})}),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 Ol=/\(/,Vl=/\)/,Bl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Ol,"");let t=e[e.length-1];t.post=t.post.replace(Vl,"")}),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={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Fl=RegExp("("+Object.keys($l).join("|")+")"),Sl=RegExp("("+Object.values($l).join("|")+")"),Hl=function(e,t){const n=e[t].pre.match(Fl)[0]||"";if(!n||!$l[n])return null;const r=$l[n];for(;t{e[0].pre=e[0].pre.replace(Fl,"");let t=e[e.length-1];t.post=t.post.replace(Sl,"")})}(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 Ll=/\./g;var Wl=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(Ll,""),e.normal=e.normal.replace(Ll,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Ll,""),e.normal=e.normal.replace(Ll,""),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 Jl=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 ql=(e,t)=>"number"==typeof t?e.eq(t):e,Kl=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 Rl=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=Kl(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 ql(this,e).map(e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return ql(this,e).map(e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return ql(this,e).map(e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return ql(this,e).map(e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=ql(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=ql(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=ql(t,e),new Adjectives(t.document,t.pointer)}};const Ul=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},Ql=[["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 _l=[["emojis","emoji"],["atmentions","atMentions"]];var Zl=function(e){Ql.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=Ul,_l.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},Yl={api:function(e){Zl(e),Cl(e),zl(e),Ml(e),Rl(e),Jl(e),Wl(e)}};const Xl=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var eu={case:e=>{Xl(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Xl(e,e=>e.text=n(e.text,t))},whitespace:e=>{Xl(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=>{Xl(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 tu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),nu="unicode|punctuation|whitespace|acronyms",ru="|case|contractions|parentheses|quotations|emoji|honorifics",au={light:tu(nu),medium:tu(nu+ru),heavy:tu(nu+ru+"|possessives|adverbs|nouns|verbs")};var ou={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=au[e]),Object.keys(e).forEach(t=>{eu.hasOwnProperty(t)&&eu[t](this,e[t])}),this}}};var iu=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 su=["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 lu=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 cu=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:uu(e,t),isSubordinate:lu(e),root:t}};const hu=e=>e.text(),du=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 mu=function(e){let t=cu(e);return{root:hu(t.root),number:pu(t.number),determiner:hu(t.determiner),adjectives:du(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const gu={tags:!0};var fu=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,gu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",gu),e};const vu={tags:!0};var bu=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,vu).tag("Singular","toPlural"),e};const yu=(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 yu(this,e).map(cu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=mu(t)),n},[])}isPlural(e){let t=this.filter(e=>cu(e).isPlural);return yu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=cu(e).adjectives;n.found&&(t=t.concat(n))}),yu(t,e)}toPlural(e){return yu(this,e).map(e=>fu(e,cu(e)))}toSingular(e){return yu(this,e).map(e=>{let t=cu(e);return bu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=iu(this);return t=yu(t,e),new Nouns(this.document,t.pointer)}}};var ku=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 Pu=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(Au.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Au.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Au.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Nu=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 xu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Iu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Tu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Gu=function(e){if(!0===Iu.hasOwnProperty(e))return Iu[e];if("a"===e||"an"===e)return 1;const t=Pu(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=Cu(n),r=Cu(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:Cu(n);let a=r.text("reduced");return Du.test(a)&&(a=a.replace(Du,""),r=r.replaceWith(a)),r=Ou.hasOwnProperty(a)?Ou[a]:Cu(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:Cu(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 Bu=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 zu=[["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"],Fu=[[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"]],Su=function(e){let t=[];if(e>100)return t;for(let n=0;n=zu[n][1]&&(e-=zu[n][1],t.push(zu[n][0]));return $u[e]&&t.push($u[e]),t};var Hu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Bu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Fu.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(Su(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=Bu(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 Mu=function(e){if(!e.numerator||!e.denominator)return"";return`${Hu({num:e.numerator})} out of ${Hu({num:e.denominator})}`};const Lu={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 Wu=e=>{let t=Hu(e).split(" "),n=t[t.length-1];return Lu.hasOwnProperty(n)?t[t.length-1]=Lu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Ju=function(e){if(!e.numerator||!e.denominator)return"";let t=Hu({num:e.numerator}),n=Wu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const qu=(e,t)=>"number"==typeof t?e.eq(t):e;var Ku=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return qu(this,e).map(Vu)}get(e){return qu(this,e).map(Vu)}json(e){return qu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Vu(t);return n.fraction=r,n},[])}toDecimal(e){return qu(this,e).forEach(e=>{let{decimal:t}=Vu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return qu(this,e).forEach(e=>{let t=Vu(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 qu(this,e).forEach(e=>{let t=Vu(e),n=Ju(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return qu(this,e).forEach(e=>{let t=Vu(e),n=Mu(t);e.replaceWith(n)}),this}toPercentage(e){return qu(this,e).forEach(e=>{let{decimal:t}=Vu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=ku(this);return t=qu(t,e),new Fractions(this.document,t.pointer)}};const Ru="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Uu=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("("+Ru+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ru+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ru+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ru+")"));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) (${Ru})`),r=e.has("("+Ru+") #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("("+Ru+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ru+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Qu=function(e){if("string"==typeof e)return{num:Gu(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=Vu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Gu(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 _u=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=Bu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Zu={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Yu={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var Xu=function(e){let t={suffix:"",prefix:e.prefix};return Zu.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Zu[e.prefix],t.prefix=""),Yu.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Yu[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var ec=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Xu(e);return t+Wu(e)+n}if("Ordinal"===t)return e.prefix+_u(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Xu(e);return t+Hu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const tc=(e,t)=>"number"==typeof t?e.eq(t):e;var nc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return tc(this,e).map(Qu)}get(e){return tc(this,e).map(Qu).map(e=>e.num)}json(e){return tc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Qu(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=Qu(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=ec(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=Qu(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=ec(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=Qu(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=ec(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=Qu(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=ec(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=Qu(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=ec(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=>Qu(t).num===e)}greaterThan(e){return this.filter(t=>Qu(t).num>e)}lessThan(e){return this.filter(t=>Qu(t).num{let r=Qu(n).num;return r>e&&r{let n=Qu(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=ec(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=Qu(e).num);let t=this.map(t=>{let n=Qu(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=ec(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=Uu(this);return t=tc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Uu(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=tc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Uu(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=tc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var rc={api:function(e){Ku(e),nc(e)}};const ac={people:!0,emails:!0,phoneNumbers:!0,places:!0},oc=function(e={}){return!1!==(e=Object.assign({},ac,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 ic={api:function(e){e.prototype.redact=oc}};var sc=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 lc=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 uc=function(e){let t=e.clauses(),n=lc(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 cc=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 hc=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 dc=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 mc=(e,t)=>"number"==typeof t?e.eq(t):e;var gc={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}=uc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return mc(this,e).map(e=>(uc(e),cc(e)))}toPresentTense(e){return mc(this,e).map(e=>(uc(e),hc(e)))}toFutureTense(e){return mc(this,e).map(e=>(uc(e),e=dc(e)))}toInfinitive(e){return mc(this,e).map(e=>(uc(e),pc(e)))}toNegative(e){return mc(this,e).map(e=>(uc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return mc(this,e).map(e=>(uc(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 mc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return mc(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=mc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=sc(this);return mc(t,e)}};Object.assign(e.prototype,t)}};var fc=function(e){return e.match("#Honorific+? #Person+")};var vc=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 bc="male",yc="female",wc={mr:bc,mrs:yc,miss:yc,madam:yc,king:bc,queen:yc,duke:bc,duchess:yc,baron:bc,baroness:yc,count:bc,countess:yc,prince:bc,princess:yc,sire:bc,dame:yc,lady:yc,ayatullah:bc,congressman:bc,congresswoman:yc,"first lady":yc,mx:null};var kc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return yc;if(n.has("#MaleName"))return bc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),wc.hasOwnProperty(e))return wc[e];if(/^her /.test(e))return yc;if(/^his /.test(e))return bc}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 bc;if(n&&!t)return yc}return null};const Pc=(e,t)=>"number"==typeof t?e.eq(t):e;var Ac=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Pc(this,e).map(vc)}json(e){return Pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=vc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:kc(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=fc(this);return t=Pc(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 Nc=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 Ec=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const xc=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 Ic=function(e){e.prototype.topics=xc};var Tc={api:function(e){Ac(e),Nc(e),Ec(e),Ic(e)}};var Gc=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 Dc=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 Cc=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 Oc=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},Vc=function(e){return e.match("#Negative")},Bc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var zc=function(e){let t=e.clone();t.contractions().expand();const n=Dc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Cc(t,n),auxiliary:Oc(t,n),negative:Vc(t),phrasal:Bc(n)}};const $c={tense:"PresentTense"},Fc={conditional:!0},Sc={tense:"FutureTense"},Hc={progressive:!0},Mc={tense:"PastTense"},Lc={complete:!0,progressive:!1},Wc={passive:!0},Jc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},qc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[$c]],["^wanted to #Infinitive$",[Mc]],["^will want to #Infinitive$",[Sc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Mc]],["^#PresentTense #Gerund$",[$c]],["^#Infinitive #Gerund$",[$c]],["^will #Infinitive #Gerund$",[Sc]],["^have #PastTense #Gerund$",[Mc]],["^will have #PastTense #Gerund$",[Mc]]],"simple-present":[["^#PresentTense$",[$c]],["^#Infinitive$",[$c]]],"simple-past":[["^#PastTense$",[Mc]]],"simple-future":[["^will #Adverb? #Infinitive",[Sc]]],"present-progressive":[["^(is|are|am) #Gerund$",[$c,Hc]]],"past-progressive":[["^(was|were) #Gerund$",[Mc,Hc]]],"future-progressive":[["^will be #Gerund$",[Sc,Hc]]],"present-perfect":[["^(has|have) #PastTense$",[Mc,Lc]]],"past-perfect":[["^had #PastTense$",[Mc,Lc]],["^had #PastTense to #Infinitive",[Mc,Lc]]],"future-perfect":[["^will have #PastTense$",[Sc,Lc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Mc,Hc]]],"past-perfect-progressive":[["^had been #Gerund$",[Mc,Hc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Sc,Hc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Mc,Wc]],["^(was|were) being (#PastTense|#Participle)",[Mc,Wc]],["^(had|have) been (#PastTense|#Participle)",[Mc,Wc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[$c,Wc]],["^(is|are|am) being (#PastTense|#Participle)",[$c,Wc]],["^has been (#PastTense|#Participle)",[$c,Wc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Sc,Wc,Fc]],["will be being? (#PastTense|#Participle)",[Sc,Wc,Fc]]],"present-conditional":[["would be #PastTense",[$c,Fc]]],"past-conditional":[["would have been #PastTense",[Mc,Fc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Sc]]],"auxiliary-past":[["^did #Infinitive$",[Mc,{plural:!1}]],["^used to #Infinitive$",[Mc,Lc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[$c,Lc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Mc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Kc=[];Object.keys(qc).map(e=>{qc[e].forEach(t=>{Kc.push({name:e,match:t[0],data:Jc(t[1])})})});var Rc=Kc;var Uc=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(),Qc(r)&&(n.remove(r),r=n.last()),Qc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:_c(t,e)}};const Yc=e=>e,Xc=(e,t)=>{let n=Zc(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},eh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Zc(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},th=function(e,t){let n=Zc(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},nh=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},rh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,nh(e)),r&&e.replace(t.root,r),e},ah=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),oh=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},ih=function(e){return e&&e.isView?e.text("normal"):""},sh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,nh(e))};var lh=function(e){let t=zc(e);e=e.clone().toView();const n=Uc(e,t);return{root:t.root.text(),preAdverbs:oh(t.adverbs.pre),postAdverbs:oh(t.adverbs.post),auxiliary:ih(t.auxiliary),negative:t.negative.found,prefix:ih(t.prefix),infinitive:sh(t.root),grammar:n}};const uh={tags:!0};var ch=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,nh(r)),i&&e.replace(r,i,uh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=th(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const hh={tags:!0},dh={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,nh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Zc(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,hh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=dh.simple(e,t),e=dh.noAux(e,t))},hasHad:e=>(e.replace("has","had",hh),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,nh(a)),n(o,e.model).Participle}},ph={infinitive:dh.simple,"simple-present":dh.simple,"simple-past":Yc,"simple-future":dh.both,"present-progressive":e=>(e.replace("are","were",hh),e.replace("(is|are|am)","was",hh),e),"past-progressive":Yc,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":dh.hasHad,"past-perfect":Yc,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=ah(e)),e.remove("have"),e),"present-perfect-progressive":dh.hasHad,"past-perfect-progressive":Yc,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",hh),e),"passive-past":e=>(e.replace("have","had",hh),e),"passive-present":e=>(e.replace("(is|are)","was",hh),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",hh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Yc,"auxiliary-future":e=>(e.replace("(is|are|am)","was",hh),e),"auxiliary-past":Yc,"auxiliary-present":e=>(e.replace("(do|does)","did",hh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",hh):(dh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Yc,"want-infinitive":e=>(e.replace("(want|wants)","wanted",hh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),dh.simple(e,t),ah(e),e)};var mh=function(e,t,n){return ph.hasOwnProperty(n)?((e=ph[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const gh={tags:!0},fh=(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,nh(a)),!1===Xc(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=eh(e)),o&&(e=e.replace(a,o,gh)).not("#Particle").tag("PresentTense"),e},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,nh(a)),!1===Xc(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,gh)).not("#Particle").tag("Gerund"),e},bh={infinitive:fh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return fh(e,t);{let t=Zc(e).subject;if(Xc(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,gh)}return e},"simple-past":fh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=eh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else fh(e,t),e=e.remove("will");return e},"present-progressive":Yc,"past-progressive":(e,t)=>{let n=eh(e);return e.replace("(were|was)",n,gh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(fh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Zc(e).subject;return Xc(e)||n.has("i")?((e=rh(e,t)).remove("had"),e):(e.replace("had","has",gh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Yc,"past-perfect-progressive":e=>e.replace("had","has",gh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=eh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,gh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Yc,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Yc,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(vh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=th(e);return e.replace(t.auxiliary,n),e}return vh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Yc,"modal-infinitive":Yc,"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,nh(r)),a&&(e=e.replace(t.root,a,gh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),fh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Xc(e)&&(n="want"),e.replace("(want|wanted|wants)",n,gh),e.remove("will"),e}};var yh=function(e,t,n){return bh.hasOwnProperty(n)?((e=bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const wh={tags:!0},kh=(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,nh(r)),o&&(e=e.replace(r,o,wh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Ph=(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,nh(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},Ah={infinitive:kh,"simple-present":kh,"simple-past":kh,"simple-future":Yc,"present-progressive":Ph,"past-progressive":Ph,"future-progressive":Yc,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Yc,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Yc,"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":Yc,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Yc,"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":Yc,"modal-past":Yc,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),kh(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:Ah.hasOwnProperty(n)?((e=Ah[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Nh={tags:!0};var Eh=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,nh(a));let s=r(i,e.model).Gerund;return s&&(s=`${eh(e)} ${s}`,e.replace(a,s,Nh)),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 xh={tags:!0},Ih=function(e,t){let n=th(e);return e.prepend(n+" not"),e},Th=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)},Gh=e=>e.has("(is|was|am|are|will|were|be)"),Dh={"simple-present":(e,t)=>!0===Gh(e)?Th(e):(e=rh(e,t),e=Ih(e)),"simple-past":(e,t)=>!0===Gh(e)?Th(e):((e=rh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Gh(e)?Th(e):Ih(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",xh),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=Ih(e)).replace("wants","want",xh)};var Ch=function(e,t,n){if(e.has("#Negative"))return e;if(Dh.hasOwnProperty(n))return e=Dh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Gh(e)?Th(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Oh=(e,t)=>"number"==typeof t?e.eq(t):e;var Vh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Oh(this,e).map(zc)}json(e,t){return Oh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=lh(t),n},[])}subjects(e){return Oh(this,e).map(e=>(zc(e),Zc(e).subject))}adverbs(e){return Oh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Oh(this,e).filter(e=>!0!==Zc(e).plural)}isPlural(e){return Oh(this,e).filter(e=>!0===Zc(e).plural)}isImperative(e){return Oh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return ch(e,t,n.form)})}toPresentTense(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return yh(e,t,n.form)})}toPastTense(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return mh(e,t,n.form)})}toFutureTense(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return jh(e,t,n.form)})}toGerund(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return Eh(e,t,n.form)})}conjugate(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:ch(e.clone(),t,n.form).text("normal"),PastTense:mh(e.clone(),t,n.form).text("normal"),PresentTense:yh(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 Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return Ch(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=Gc(this);return t=Oh(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Gl),m.plugin(Yl),m.plugin(ou),m.plugin(wu),m.plugin(rc),m.plugin(ic),m.plugin(gc),m.plugin(Tc),m.plugin(Vh);export{m as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index ef39f3704..381a72ed1 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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;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,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(I(t.update([u]).firstTerm()),k(d,u,h,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 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,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 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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),he(n[i],e,s,c.length)):de.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),he(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 Le=Object.assign({},ze,Ve,Je);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var Me=function(e){Object.assign(e.prototype,Le)};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 dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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:Me,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=/^#./,Lt=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 Mt={html:function(e){let{starts:t,ends:n}=Lt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Yt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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},yn=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=yn(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},wn={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:yn,splitAll:vn}}},kn=function(e,t){let n=e.concat(t),a=yn(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=>bn(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},An=function(e,t){let n=yn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},jn={union:function(e){e=En(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)}};jn.and=jn.union,jn.intersection=function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},jn.not=function(e){e=En(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},jn.difference=jn.not,jn.complement=function(){let e=this.all(),t=Pn(e.fullPointer,this.fullPointer);return t=In(t,this.document),this.toView(t)},jn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=kn(e,[t])}),e=In(e,this.document),this.update(e)};var Gn={methods:wn,api:function(e){Object.assign(e.prototype,jn)}};const Nn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(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=Nn(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},xn=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})},Tn=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)})},Cn=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},On=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=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 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=xn(r,t.hooks);return o=Tn(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),Cn(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===On(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 zn=/ /,Vn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(),zn.test(t))!function(e,t,n,a){let r=t.split(zn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Fn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;n$n(e,t,n,a))};var Sn=$n,Hn=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=>Jn({id:e})),t}return[Jn({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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),qn=e=>(e=e||"").trim(),Rn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Mn(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=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):(Wn(t=e).forEach(Jn),t);var t},Un=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Wn(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},Qn=function(e){let t=Wn(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},Zn={text:Un,txt:Un,array:Qn,flat:Qn},_n=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Un(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Yn=e=>{Wn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Xn=/\//;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),!Xn.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)||Jn({});return new g$1(t)}add(e,t={}){if(Kn(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 Wn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Wn(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 Wn(this.json)}fillDown(){var e;return e=this.json,Wn(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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Yn(this.json);let e=Wn(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 Yn(this.json),_n(this.json,e)}debug(){return Yn(this.json),_n(this.json,"debug"),this}}const ea=function(e){let t=Rn(e);return new g$1(t)};ea.prototype.plugin=function(e){e(this)};var ta={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const na=function(e){if(ta.hasOwnProperty(e.id))return ta[e.id];if(ta.hasOwnProperty(e.is))return ta[e.is];let t=e._cache.parents.find(e=>ta[e]);return ta[t]};var aa=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:na(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 ra=function(e){return e?"string"==typeof e?[e]:e:[]};var oa=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=ra(e[t].children),e[t].not=ra(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ia={one:{setTag:Sn,unTag:Hn,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=oa(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 ea(t).cache().fillDown().out("array")}(Object.assign({},t,e));return aa(n)}}};const sa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var la={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||""),sa(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 sa(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)}},ua=function(e){Object.assign(e.prototype,la)},ca={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 da=new Set(["Auxiliary","Possessive"]);var ha={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(da.has(e)||!t.hasOwnProperty(n))return 1;if(da.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:ia,api:ua,lib:ca};const ga=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ma=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var pa=function(e){let t=[],n=e.split(ma);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 Oa=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ba=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,za=/['’]/,Va=/^[a-z]\.([a-z]\.)+/i,Fa=/^[-+.][0-9]/,$a=/^'[0-9]{2}/;var Sa=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Oa,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fa.test(e)?"'"===n&&$a.test(e)?(n="",t):"":(n="",t)))).replace(Ba,r=>(a=r,za.test(r)&&/[sn]['’]$/.test(t)&&!1===za.test(n)?(a=a.replace(za,""),"'"):!0===Va.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},Ha=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 Ja=/([A-Z]\.)+[A-Z]?,?$/,La=/^[A-Z]\.,?$/,Ma=/[A-Z]{2,}('s|,)?$/,Wa=/([a-z]\.)+[a-z]\.?$/;var Ka=function(e){return function(e){return!0===Ja.test(e)||!0===Wa.test(e)||!0===La.test(e)||!0===Ma.test(e)}(e)&&(e=e.replace(/\./g,"")),e},qa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ha(a),a=n(a,t),a=Ka(a),e.normal=a},Ra={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:Aa,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(Ta);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=Na(n),n=ja(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Sa(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})}}}},Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},Za={};[[["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=>{Qa[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])})});var _a=["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 Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){Xa[t]=e}))}));const er=/\//,tr=/[a-z]\.[a-z]/i,nr=/[0-9]/;var ar=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])),er.test(n)&&!tr.test(n)&&!nr.test(n)){let t=n.split(er);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const rr=/^\p{Letter}+-\p{Letter}+$/u;var or=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"),rr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ir=function(e){let t=0,n=0,a=e.document;for(let e=0;esr(e,ar),machine:e=>sr(e,or),normal:e=>sr(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 dr={safe:!0,min:3};var hr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ur},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},dr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=cr(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(fn),m.extend(St),m.extend(Gn),m.extend(ha),m.plugin(be),m.extend(lr),m.plugin(f),m.extend(De),m.extend(hr),m.extend(Pe),m.extend(Bn);var gr={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"},mr={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 pr=36,fr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",br=fr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var yr=function(e){if(void 0!==br[e])return br[e];let t=0,n=1,a=pr,r=1;for(;n=0;n--,r*=pr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},vr=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=kr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Pr(mr[e]);jr.test(e)?Object.keys(t).forEach(t=>{if(Nr[t]=e,"Noun|Verb"===e){let e=Ir(t,Dr);Nr[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 xr="Adjective";var Tr={beforeTags:{Determiner:xr,Possessive:xr},afterTags:{Adjective:xr},beforeWords:{seem:xr,seemed:xr,seems:xr,feel:xr,feels:xr,felt:xr,appear:xr,appears:xr,appeared:xr,also:xr,over:xr,under:xr,too:xr,it:xr,but:xr,still:xr,really:xr,quite:xr,well:xr,very:xr,deeply:xr,profoundly:xr,extremely:xr,so:xr,badly:xr,mostly:xr,totally:xr,awfully:xr,rather:xr,nothing:xr,something:xr,anything:xr},afterWords:{too:xr,also:xr,or:xr}};const Cr="Gerund";var Or={beforeTags:{Adverb:Cr,Preposition:Cr,Conjunction:Cr},afterTags:{Adverb:Cr,Possessive:Cr,Person:Cr,Pronoun:Cr,Determiner:Cr,Copula:Cr,Preposition:Cr,Conjunction:Cr,Comparative:Cr},beforeWords:{been:Cr,keep:Cr,continue:Cr,stop:Cr,am:Cr,be:Cr,me:Cr,began:Cr,start:Cr,starts:Cr,started:Cr,stops:Cr,stopped:Cr,help:Cr,helps:Cr,avoid:Cr,avoids:Cr,love:Cr,loves:Cr,loved:Cr,hate:Cr,hates:Cr,hated:Cr},afterWords:{you:Cr,me:Cr,her:Cr,him:Cr,them:Cr,their:Cr,it:Cr,this:Cr,there:Cr,on:Cr,about:Cr,for:Cr}},Br={beforeTags:Object.assign({},Tr.beforeTags,Or.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Tr.afterTags,Or.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Tr.beforeWords,Or.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Tr.afterWords,Or.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const zr="Singular";var Vr={beforeTags:{Determiner:zr,Possessive:zr,Acronym:zr,Noun:zr,Adjective:zr,PresentTense:zr,Gerund:zr,PastTense:zr,Infinitive:zr,Date:zr},afterTags:{Value:zr,Modal:zr,Copula:zr,PresentTense:zr,PastTense:zr,Demonym:zr},beforeWords:{the:zr,with:zr,without:zr,of:zr,for:zr,any:zr,all:zr,on:zr,cut:zr,cuts:zr,save:zr,saved:zr,saves:zr,make:zr,makes:zr,made:zr,minus:zr,plus:zr,than:zr,another:zr,versus:zr,neither:zr,favorite:zr,best:zr,daily:zr,weekly:zr,linear:zr,binary:zr,mobile:zr,lexical:zr,technical:zr,computer:zr,scientific:zr,formal:zr},afterWords:{of:zr,system:zr,aid:zr,method:zr,utility:zr,tool:zr,reform:zr,therapy:zr,philosophy:zr,room:zr,authority:zr,says:zr,said:zr,wants:zr,wanted:zr}};const Fr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var $r={beforeTags:Object.assign({},Tr.beforeTags,Vr.beforeTags,Fr.beforeTags),afterTags:Object.assign({},Tr.afterTags,Vr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Vr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,Vr.afterWords)};const Sr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Hr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Jr={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 Mr={beforeTags:Object.assign({},Tr.beforeTags,Sr),afterTags:Object.assign({},Tr.afterTags,Hr),beforeWords:Object.assign({},Tr.beforeWords,Jr),afterWords:Object.assign({},Tr.afterWords,Lr)};const Wr="Infinitive";var Kr={beforeTags:{Modal:Wr,Adverb:Wr,Negative:Wr,Plural:Wr},afterTags:{Determiner:Wr,Adverb:Wr,Possessive:Wr,Preposition:Wr},beforeWords:{i:Wr,we:Wr,you:Wr,they:Wr,to:Wr,please:Wr,will:Wr,have:Wr,had:Wr,would:Wr,could:Wr,should:Wr,do:Wr,did:Wr,does:Wr,can:Wr,must:Wr,us:Wr,me:Wr,he:Wr,she:Wr,it:Wr,being:Wr},afterWords:{the:Wr,me:Wr,you:Wr,him:Wr,her:Wr,them:Wr,it:Wr,a:Wr,an:Wr,up:Wr,down:Wr,by:Wr,out:Wr,off:Wr,under:Wr,when:Wr,all:Wr,to:Wr,because:Wr,although:Wr,before:Wr,how:Wr,otherwise:Wr,together:Wr,though:Wr,yet:Wr}};const qr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Rr={beforeTags:Object.assign({},Tr.beforeTags,Kr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Tr.afterTags,Kr.afterTags,qr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Kr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,Kr.afterWords,{to:void 0})};const Ur={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qr={},Zr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},_r={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Yr={beforeTags:Object.assign({},Or.beforeTags,Vr.beforeTags,Ur),afterTags:Object.assign({},Or.afterTags,Vr.afterTags,Qr),beforeWords:Object.assign({},Or.beforeWords,Vr.beforeWords,Zr),afterWords:Object.assign({},Or.afterWords,Vr.afterWords,_r)},Xr={beforeTags:Object.assign({},Kr.beforeTags,Vr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Kr.afterTags,Vr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Kr.beforeWords,Vr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Kr.afterWords,Vr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ao={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ro={beforeTags:Object.assign({},to.beforeTags,ao.beforeTags),afterTags:Object.assign({},to.afterTags,ao.afterTags),beforeWords:Object.assign({},to.beforeWords,ao.beforeWords),afterWords:Object.assign({},to.afterWords,ao.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},uo={"Adj|Gerund":Br,"Adj|Noun":$r,"Adj|Past":Mr,"Adj|Present":Rr,"Noun|Verb":Xr,"Noun|Gerund":Yr,"Person|Noun":{beforeTags:Object.assign({},Vr.beforeTags,to.beforeTags),afterTags:Object.assign({},Vr.afterTags,to.afterTags),beforeWords:Object.assign({},Vr.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Vr.afterWords,to.afterWords)},"Person|Date":ro,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,Kr.beforeTags),afterTags:Object.assign({},to.afterTags,Kr.afterTags),beforeWords:Object.assign({},to.beforeWords,Kr.beforeWords),afterWords:Object.assign({},to.afterWords,Kr.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const go="Adjective",mo="Infinitive",po="PresentTense",fo="Singular",bo="PastTense",yo="Adverb",vo="Plural",wo="Actor",ko="Verb",Po="Noun",Ao="LastName",Eo="Modal",Io="Participle";var jo=[null,null,{ea:fo,ia:Po,ic:go,ly:yo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":yo,"'ll":Eo,"'re":"Copula",azy:go,eer:Po,end:ko,ped:bo,ffy:go,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:go,mum:go,nes:po,nny:go,ous:go,que:go,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:po,eld:bo,ken:Io,ven:Io,ten:Io,ect:mo,ict:mo,ign:mo,ful:go,bal:go},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:go,cted:bo,dged:bo,ield:fo,akis:Ao,cede:mo,chuk:Ao,czyk:Ao,ects:po,ends:ko,enko:Ao,ette:fo,wner:fo,fies:po,fore:yo,gate:mo,gone:go,ices:vo,ints:vo,ruct:mo,ines:vo,ions:vo,less:go,llen:go,made:go,nsen:Ao,oses:po,ould:Eo,some:go,sson:Ao,tion:fo,tage:Po,ique:fo,tive:go,tors:Po,vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:go,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:go,nary:go},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:vo,bound:go,ettes:vo,fully:yo,ishes:po,ities:vo,marek:Ao,nssen:Ao,ology:Po,osome:fo,tment:fo,ports:vo,rough:go,tches:po,tieth:"Ordinal",tures:vo,wards:yo,where:yo,archy:Po,pathy:Po,opoly:Po,embly:Po,phate:Po,ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:go,borne:go,gnant:go,inant:go,igent:go,atory:go,rient:fo,dient:fo},{auskas:Ao,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:wo,logist:wo,teenth:"Value"},{opoulos:Ao,borough:"Place",sdottir:Ao}];const Go="Adjective",No="Noun",Do="Verb";var xo=[null,null,{},{neo:No,bio:No,"de-":Do,"re-":Do,"un-":Do},{anti:No,auto:No,faux:Go,hexa:No,kilo:No,mono:No,nano:No,octa:No,poly:No,semi:Go,tele:No,"pro-":Go,"mis-":Do,"dis-":Do,"pre-":Go},{anglo:No,centi:No,ethno:No,ferro:No,grand:No,hepta:No,hydro:No,intro:No,macro:No,micro:No,milli:No,nitro:No,penta:No,quasi:Go,radio:No,tetra:No,"omni-":Go,"post-":Go},{pseudo:Go,"extra-":Go,"hyper-":Go,"inter-":Go,"intra-":Go,"deca-":Go},{electro:No}];const To="Adjective",Co="Infinitive",Oo="PresentTense",Bo="Singular",zo="PastTense",Vo="Adverb",Fo="Expression",$o="Actor",So="Verb",Ho="Noun",Jo="LastName";var Lo={a:[[/.[aeiou]na$/,Ho,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,Bo,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,To]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,zo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,zo,"rammed"],[/.[aeiou][sg]hed$/,zo,"gushed"],[/.[aeiou]red$/,zo,"hired"],[/.[aeiou]r?ried$/,zo,"hurried"],[/[^aeiou]ard$/,Bo,"steward"],[/[aeiou][^aeiou]id$/,To,""],[/.[vrl]id$/,To,"livid"],[/..led$/,zo,"hurled"],[/.[iao]sed$/,zo,""],[/[aeiou]n?[cs]ed$/,zo,""],[/[aeiou][rl]?[mnf]ed$/,zo,""],[/[aeiou][ns]?c?ked$/,zo,"bunked"],[/[aeiou]gned$/,zo],[/[aeiou][nl]?ged$/,zo],[/.[tdbwxyz]ed$/,zo],[/[^aeiou][aeiou][tvx]ed$/,zo],[/.[cdflmnprstv]ied$/,zo,"emptied"]],e:[[/.[lnr]ize$/,Co,"antagonize"],[/.[^aeiou]ise$/,Co,"antagonise"],[/.[aeiou]te$/,Co,"bite"],[/.[^aeiou][ai]ble$/,To,"fixable"],[/.[^aeiou]eable$/,To,"maleable"],[/.[ts]ive$/,To,"festive"],[/[a-z]-like$/,To,"woman-like"]],h:[[/.[^aeiouf]ish$/,To,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,To,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Fo,"kkkk"]],l:[[/.[gl]ial$/,To,"familial"],[/.[^aeiou]ful$/,To,"fitful"],[/.[nrtumcd]al$/,To,"natal"],[/.[^aeiou][ei]al$/,To,"familial"]],m:[[/.[^aeiou]ium$/,Bo,"magnesium"],[/[^aeiou]ism$/,Bo,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,To,"republican"],[/[^aeiou]ician$/,$o,"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$/,Bo],[/[^i]fer$/,Co],[/.[^aeiou][ao]pher$/,$o],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,To],[/[aeiou].*ist$/,To],[/^[a-z]et$/,So]],s:[[/.[^aeiou]ises$/,Oo],[/.[rln]ates$/,Oo],[/.[^z]ens$/,So],[/.[lstrn]us$/,Bo],[/.[aeiou]sks$/,Oo],[/.[aeiou]kes$/,Oo],[/[aeiou][^aeiou]is$/,Bo],[/[a-z]'s$/,Ho],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,To],[/.[st]ty$/,To],[/.[tnl]ary$/,To],[/.[oe]ry$/,Bo],[/[rdntkbhs]ly$/,Vo],[/.(gg|bb|zz)ly$/,To],[/...lly$/,Vo],[/.[gk]y$/,To],[/[bszmp]{2}y$/,To],[/.[ai]my$/,To],[/[ea]{2}zy$/,To],[/.[^aeiou]ity$/,Bo]]};const Mo="Verb",Wo="Noun";var Ko={leftTags:[["Adjective",Wo],["Possessive",Wo],["Determiner",Wo],["Adverb",Mo],["Pronoun",Mo],["Value",Wo],["Ordinal",Wo],["Modal",Mo],["Superlative",Wo],["Demonym",Wo],["Honorific","Person"]],leftWords:[["i",Mo],["first",Wo],["it",Mo],["there",Mo],["not",Mo],["because",Wo],["if",Wo],["but",Wo],["who",Mo],["this",Wo],["his",Wo],["when",Wo],["you",Mo],["very","Adjective"],["old",Wo],["never",Mo],["before",Wo],["a","Singular"],["the",Wo],["been",Mo]],rightTags:[["Copula",Wo],["PastTense",Wo],["Conjunction",Wo],["Modal",Wo]],rightWords:[["there",Mo],["me",Mo],["man","Adjective"],["only",Mo],["him",Mo],["it",Mo],["were",Wo],["took",Wo],["himself",Mo],["went",Wo],["who",Wo],["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"},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"},Uo={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 _o=/^.([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],a=n.match(_o);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(_o,"")}(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},ei=/^([0-9]+)/,ti=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ei);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ei,"")]}(n[0],n[1])})};var ni=function(e={}){return(e=Object.assign({},e)).rules=ti(e.rules),e.rules=Xo(e.rules),e.rev&&(e.rev=ti(e.rev),e.rev=Xo(e.rev)),e.exceptions=ti(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ai=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 ri=ni({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"}),oi=ni(Qo),ii=ni(Ro),si=ni(Uo),li=ai(ri),ui=ai(oi),ci=ai(ii),di=ai(si),hi=ni(qo),gi=ni(Zo);var mi={fromPast:ri,fromPresent:oi,fromGerund:ii,fromParticiple:si,toPast:li,toPresent:ui,toGerund:ci,toParticiple:di,toComparative:hi,toSuperlative:gi,fromComparative:ai(hi),fromSuperlative:ai(gi)},pi=["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),{}),fi=[[/([^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,""]],bi=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 vi=yi,wi=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 ki={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Pi=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=wi(e)),ki.hasOwnProperty(e))c=ki[e];else if("Participle"===n)c=Yo(l,i);else if("PastTense"===n)c=Yo(l,a);else if("PresentTense"===n)c=Yo(l,r);else{if("Gerund"!==n)return e;c=Yo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ai=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:Yo(i,n),PresentTense:Yo(i,a),Gerund:Yo(i,r),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},Ei=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",ji=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"}],Ni=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"]),Di={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var xi=function(e){return e.endsWith("ly")?ji.has(e)?e.replace(/ically/,"ical"):Ni.has(e)?null:Di.hasOwnProperty(e)?Di[e]:Ei(e,Gi)||e:null};const Ti=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ci={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Ci.hasOwnProperty(e))return Ci[e];let t=Ei(e,Ti);return t||e+"ly"};const Bi=[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"},Vi=new Set(["terrible","annoying"]),Fi=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},$i=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Si={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"]}},Hi={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===Si.hasOwnProperty(i)&&Si[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Ir,nounToSingular:bi,verbToInfinitive:Pi,getTense:wi,verbConjugate:Ai,adjToSuperlative:Fi,adjToComparative:$i,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:xi,adjToAdverb:Oi,adjToNoun:function(e){if(zi.hasOwnProperty(e))return zi[e];if(Vi.has(e))return null;let t=Ei(e,Bi);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 Li=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Mi=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=Li(n,"Infinitive","PastTense"),Object.assign(s,l),l=Li(a,"Infinitive","Verb"),Object.assign(s,l),l=Li(r,"Infinitive","Gerund"),Object.assign(s,l),l=Li(o,"Adjective","Superlative"),Object.assign(s,l),l=Li(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Wi={two:{models:mi}};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"},qi=function(e,t){const n={model:t,methods:Hi};let{lex:a,_multi:r}=Hi.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=Ai(e,Wi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Ui=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Ki[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(r,a,!1),"Adj|Present"===o&&(Ri(r,a,!0),function(e,t,n){let a=Fi(e,n);t[a]=t[a]||"Superlative";let r=$i(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Pi(r,Wi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Pi(r,Wi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=qi(n,t)};let Qi={one:{_multiCache:{},lexicon:Gr},two:{irregularPlurals:gr,models:mi,suffixPatterns:jo,prefixPatterns:xo,endsWith:Lo,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:Nr,clues:ho,uncountable:{},orgWords:pi}};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=qi(e.one.lexicon,e)).one.lexicon,e),e=Ui(e.two.switches,e),e=Mi(e),e=Ji(e)}(Qi);var Zi=Qi;const _i=/^(under|over|mis|re|un|dis|semi)-?/;var Yi=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(_i.test(r.normal)){let e=r.normal.replace(_i,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},Xi=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 es={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ts=new Set(["formulas","koalas","israelis","menus"]),ns=["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(ts.has(e))return!0;let t=e[e.length-1];return es.hasOwnProperty(t)?es[t].find(t=>e.endsWith(t)):"s"===t&&!ns.find(t=>e.endsWith(t))};const rs=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var os=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(as(e.normal)?Xi(e,"Plural","3-plural-guess"):Xi(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=wi(e.normal);t&&Xi(e,t,"3-verb-tense-guess")}}(a)};const is=/^\p{Lu}[\p{Ll}'’]/u,ss=/[0-9]/,ls=["Date","Month","WeekDay","Unit"],us=/^[IVXLCDM]{2,}$/,cs=/^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 hs=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===is.test(o)&&!1===ss.test(o)?ls.find(e=>a.tags.has(e))?null:(os(e,t,n),a.tags.has("Noun")||a.tags.clear(),Xi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&us.test(o)&&cs.test(o)&&!ds[a.normal]?(Xi(a,"RomanNumeral","2-xvii"),!0):null};const gs=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 ms=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=gs(a.normal,n.two.suffixPatterns);if(null!==e)return Xi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=gs(a.implicit,n.two.suffixPatterns),null!==e))return Xi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ps=/['‘’‛‵′`´]/,fs=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 Xi(a,e,"2-prefix"),a.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"]),ws=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")},ks=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var As=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(ws(r)||ws(o))return Xi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(ks(r)||ks(o))return Xi(n,"Year","2-tagYear-close");if(Ps(e[t-2])||Ps(e[t+2]))return Xi(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 Xi(n,"Year","2-tagYear-noun")}}}return null};const Es=/^[A-Z]('s|,)?$/,Is=/^[A-Z-]+$/,js=/([A-Z]\.)+[A-Z]?,?$/,Gs=/[A-Z]{2,}('s|,)?$/,Ns=/([a-z]\.)+[a-z]\.?$/,Ds={I:!0,A:!0};var xs=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||Ds.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==js.test(n)&&!0!==Ns.test(n)&&!0!==Es.test(n)&&!0!==Gs.test(n))}(a,n)?(a.tags.clear(),Xi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ds.hasOwnProperty(a.text)&&Es.test(a.text)?(a.tags.clear(),Xi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Xi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Is.test(a.text)&&a.text.length<=6?(Xi(a,"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},Cs=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||Ts(e[t-1],r),l=l||Ts(e[t+1],o),l=l||Cs(e[t-1],a),l=l||Cs(e[t+1],i),l)return Xi(s,l,"3-[neighbour]"),os(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 zs=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]&&Bs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Bs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Vs=function(e,t,n){0===e[t].tags.size&&(Xi(e[t],"Noun","3-[fallback]"),os(e,t,n),e[t].confidence=.1)};const Fs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,$s=(e,t,n)=>0!==t||e[1]?null:n;var Ss={"Adj|Gerund":(e,t)=>Fs(e,t),"Adj|Noun":(e,t)=>Fs(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)||$s(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Fs(e,t)||$s(e,t,"PresentTense"),"Person|Noun":(e,t)=>Fs(e,t),"Person|Verb":(e,t)=>0!==t&&Fs(e,t)};const Hs="undefined"!=typeof process&&process.env?process.env:self.env||{},Js=/^(under|over|mis|re|un|dis|semi)-?/,Ls=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Hs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ms=(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&&Hs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},Ws={tagSwitch:Yi,checkSuffix:ms,checkRegex:bs,checkCase:hs,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")&&(Xi(o,"Verb","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Xi(o,"Adjective","3-[prefix]"),Xi(o,"Prefix","3-[prefix]")))},checkYear:As},Ks={checkAcronym:xs,neighbours:Os,orgWords:zs,nounFallback:Vs,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(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,a){if(!n)return null;const r=a.one.tagSet;let o=Ls(e[t+1],n.afterWords);return o=o||Ls(e[t-1],n.beforeWords),o=o||Ms(e[t-1],n.beforeTags,r),o=o||Ms(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Ss[o]&&(u=Ss[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Hs.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)},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: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 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 a=e[t+1];if(a&&a.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"]},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 hl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},gl={in:!0,by:!0,for:!0};var ml=(e,t)=>{let n=e[t];if(hl.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===gl[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 pl=/'/,fl=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)},bl={d:(e,t)=>cl(e,t),t:(e,t)=>dl(e,t),s:(e,t,n)=>ml(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},yl=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((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===pl.test(a[o].normal)&&([,i]=a[o].normal.split(pl));let s=null;bl.hasOwnProperty(i)&&(s=bl[i](a,o,t)),s&&(s=yl(s,e),il(n,[r,o],s),fl(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=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=rl},hooks:["contractionTwo"]};const wl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",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:"#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: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:"#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: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"}]),Al=null;var El={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;Al=Al||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(Al),e.uncache(),e}},model:{two:{matches:Pl}},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)},jl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Il(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},Gl={api:function(e){e.prototype.swap=jl}};return m.plugin(tl),m.plugin(vl),m.plugin(El),m.plugin(Gl),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]);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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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;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,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(I(t.update([u]).firstTerm()),k(d,u,h,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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),he(n[i],e,s,c.length)):de.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),he(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 dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Yt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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;a>2]|=(i.charCodeAt(u)||128)<>6)+14]=8*s,u=0;u>4]+(bn[r]+(0|o[[r,5*r+1,3*r+5,7*r][s]%16+u])))<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+r++%4])|a>>>32-s),t,n];for(r=4;r;)l[--r]=l[r]+s[r]}for(e="";r<32;)e+=(l[r>>3]>>4*(1^7&r++)&15).toString(16);return e}}}};const vn=function(e,t){if(e[0]!==t[0])return!1;let[,n,a]=e,[,r,o]=t;return n<=r&&a>r||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},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}}},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},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},Gn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Nn={union:function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=Gn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=jn(e,this);let t=In(this.fullPointer,e.fullPointer);return t=Gn(t,this.document),this.toView(t)},Nn.not=function(e){e=jn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Gn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=En(e.fullPointer,this.fullPointer);return t=Gn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=Gn(e,this.document),this.update(e)};var Dn={methods:Pn,api:function(e){Object.assign(e.prototype,Nn)}};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},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})},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=>0===e.wants.length||e.wants.filter(e=>a.has(e)).length>=e.minWant)})},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},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;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===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),1!=(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,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},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)}},da=function(e){Object.assign(e.prototype,ca)},ha={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:da,lib:ha};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}},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},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},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=Na(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})}}}},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)},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=dr},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=hr(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=36,yr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",vr=yr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var wr=function(e){if(void 0!==vr[e])return vr[e];let t=0,n=1,a=br,r=1;for(;n=0;n--,r*=br){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},kr=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=Ar(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Er(fr[e]);Nr.test(e)?Object.keys(t).forEach(t=>{if(xr[t]=e,"Noun|Verb"===e){let e=Gr(t,Tr);xr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Dr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Dr[e]="Emoticon"),delete Dr[""],delete Dr.null,delete Dr[" "];const Cr="Adjective";var Or={beforeTags:{Determiner:Cr,Possessive:Cr},afterTags:{Adjective:Cr},beforeWords:{seem:Cr,seemed:Cr,seems:Cr,feel:Cr,feels:Cr,felt:Cr,appear:Cr,appears:Cr,appeared:Cr,also:Cr,over:Cr,under:Cr,too:Cr,it:Cr,but:Cr,still:Cr,really:Cr,quite:Cr,well:Cr,very:Cr,deeply:Cr,profoundly:Cr,extremely:Cr,so:Cr,badly:Cr,mostly:Cr,totally:Cr,awfully:Cr,rather:Cr,nothing:Cr,something:Cr,anything:Cr},afterWords:{too:Cr,also:Cr,or:Cr}};const Br="Gerund";var zr={beforeTags:{Adverb:Br,Preposition:Br,Conjunction:Br},afterTags:{Adverb:Br,Possessive:Br,Person:Br,Pronoun:Br,Determiner:Br,Copula:Br,Preposition:Br,Conjunction:Br,Comparative:Br},beforeWords:{been:Br,keep:Br,continue:Br,stop:Br,am:Br,be:Br,me:Br,began:Br,start:Br,starts:Br,started:Br,stops:Br,stopped:Br,help:Br,helps:Br,avoid:Br,avoids:Br,love:Br,loves:Br,loved:Br,hate:Br,hates:Br,hated:Br},afterWords:{you:Br,me:Br,her:Br,him:Br,them:Br,their:Br,it:Br,this:Br,there:Br,on:Br,about:Br,for:Br}},Vr={beforeTags:Object.assign({},Or.beforeTags,zr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Or.afterTags,zr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Or.beforeWords,zr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Or.afterWords,zr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Fr="Singular";var $r={beforeTags:{Determiner:Fr,Possessive:Fr,Acronym:Fr,Noun:Fr,Adjective:Fr,PresentTense:Fr,Gerund:Fr,PastTense:Fr,Infinitive:Fr,Date:Fr},afterTags:{Value:Fr,Modal:Fr,Copula:Fr,PresentTense:Fr,PastTense:Fr,Demonym:Fr},beforeWords:{the:Fr,with:Fr,without:Fr,of:Fr,for:Fr,any:Fr,all:Fr,on:Fr,cut:Fr,cuts:Fr,save:Fr,saved:Fr,saves:Fr,make:Fr,makes:Fr,made:Fr,minus:Fr,plus:Fr,than:Fr,another:Fr,versus:Fr,neither:Fr,favorite:Fr,best:Fr,daily:Fr,weekly:Fr,linear:Fr,binary:Fr,mobile:Fr,lexical:Fr,technical:Fr,computer:Fr,scientific:Fr,formal:Fr},afterWords:{of:Fr,system:Fr,aid:Fr,method:Fr,utility:Fr,tool:Fr,reform:Fr,therapy:Fr,philosophy:Fr,room:Fr,authority:Fr,says:Fr,said:Fr,wants:Fr,wanted:Fr}};const Sr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Hr={beforeTags:Object.assign({},Or.beforeTags,$r.beforeTags,Sr.beforeTags),afterTags:Object.assign({},Or.afterTags,$r.afterTags),beforeWords:Object.assign({},Or.beforeWords,$r.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Or.afterWords,$r.afterWords)};const Jr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Mr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Lr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Wr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Kr={beforeTags:Object.assign({},Or.beforeTags,Jr),afterTags:Object.assign({},Or.afterTags,Mr),beforeWords:Object.assign({},Or.beforeWords,Lr),afterWords:Object.assign({},Or.afterWords,Wr)};const qr="Infinitive";var Rr={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 Ur={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Qr={beforeTags:Object.assign({},Or.beforeTags,Rr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Or.afterTags,Rr.afterTags,Ur.afterTags),beforeWords:Object.assign({},Or.beforeWords,Rr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Or.afterWords,Rr.afterWords,{to:void 0})};const Zr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},_r={},Yr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Xr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var eo={beforeTags:Object.assign({},zr.beforeTags,$r.beforeTags,Zr),afterTags:Object.assign({},zr.afterTags,$r.afterTags,_r),beforeWords:Object.assign({},zr.beforeWords,$r.beforeWords,Yr),afterWords:Object.assign({},zr.afterWords,$r.afterWords,Xr)},to={beforeTags:Object.assign({},Rr.beforeTags,$r.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Rr.afterTags,$r.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Rr.beforeWords,$r.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Rr.afterWords,$r.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const no="Person";var ao={beforeTags:{Honorific:no,Person:no,Preposition:no},afterTags:{Person:no,ProperNoun:no,Verb:no},ownTags:{ProperNoun:no},beforeWords:{hi:no,hey:no,yo:no,dear:no,hello:no},afterWords:{said:no,says:no,told:no,tells:no,feels:no,felt:no,seems:no,thinks:no,thought:no,spends:no,spendt:no,plays:no,played:no,sing:no,sang:no,learn:no,learned:no,wants:no,wanted:no}};const ro="Month",oo={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 io={beforeTags:Object.assign({},ao.beforeTags,oo.beforeTags),afterTags:Object.assign({},ao.afterTags,oo.afterTags),beforeWords:Object.assign({},ao.beforeWords,oo.beforeWords),afterWords:Object.assign({},ao.afterWords,oo.afterWords)};const so={Place:"Place"},lo={Place:"Place",Abbreviation:"Place"},uo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},ho={"Adj|Gerund":Vr,"Adj|Noun":Hr,"Adj|Past":Kr,"Adj|Present":Qr,"Noun|Verb":to,"Noun|Gerund":eo,"Person|Noun":{beforeTags:Object.assign({},$r.beforeTags,ao.beforeTags),afterTags:Object.assign({},$r.afterTags,ao.afterTags),beforeWords:Object.assign({},$r.beforeWords,ao.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},$r.afterWords,ao.afterWords)},"Person|Date":io,"Person|Verb":{beforeTags:Object.assign({},ao.beforeTags,Rr.beforeTags),afterTags:Object.assign({},ao.afterTags,Rr.afterTags),beforeWords:Object.assign({},ao.beforeWords,Rr.beforeWords),afterWords:Object.assign({},ao.afterWords,Rr.afterWords)},"Person|Place":{beforeTags:Object.assign({},so,ao.beforeTags),afterTags:Object.assign({},lo,ao.afterTags),beforeWords:Object.assign({},uo,ao.beforeWords),afterWords:Object.assign({},co,ao.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)};ho["Plural|Verb"]={beforeWords:go(ho["Noun|Verb"].beforeWords,{}),afterWords:go(ho["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:go(ho["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:go(ho["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var mo=ho;const po="Adjective",fo="Infinitive",bo="PresentTense",yo="Singular",vo="PastTense",wo="Adverb",ko="Plural",Po="Actor",Ao="Verb",Eo="Noun",Io="LastName",jo="Modal",Go="Participle";var No=[null,null,{ea:yo,ia:Eo,ic:po,ly:wo,"'n":Ao,"'t":Ao},{oed:vo,ued:vo,xed:vo," so":wo,"'ll":jo,"'re":"Copula",azy:po,eer:Eo,end:Ao,ped:vo,ffy:po,ify:fo,ing:"Gerund",ize:fo,ibe:fo,lar:po,mum:po,nes:bo,nny:po,ous:po,que:po,rol:yo,sis:yo,ogy:yo,oid:yo,ian:yo,zes:bo,eld:vo,ken:Go,ven:Go,ten:Go,ect:fo,ict:fo,ign:fo,ful:po,bal:po},{amed:vo,aped:vo,ched:vo,lked:vo,rked:vo,reed:vo,nded:vo,mned:po,cted:vo,dged:vo,ield:yo,akis:Io,cede:fo,chuk:Io,czyk:Io,ects:bo,ends:Ao,enko:Io,ette:yo,wner:yo,fies:bo,fore:wo,gate:fo,gone:po,ices:ko,ints:ko,ruct:fo,ines:ko,ions:ko,less:po,llen:po,made:po,nsen:Io,oses:bo,ould:jo,some:po,sson:Io,tion:yo,tage:Eo,ique:yo,tive:po,tors:Eo,vice:yo,lier:yo,fier:yo,wned:vo,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:po,vide:fo,ract:fo,duce:fo,pose:fo,eive:fo,lyze:fo,lyse:fo,iant:po,nary:po},{elist:yo,holic:yo,phite:yo,tized:vo,urned:vo,eased:vo,ances:ko,bound:po,ettes:ko,fully:wo,ishes:bo,ities:ko,marek:Io,nssen:Io,ology:Eo,osome:yo,tment:yo,ports:ko,rough:po,tches:bo,tieth:"Ordinal",tures:ko,wards:wo,where:wo,archy:Eo,pathy:Eo,opoly:Eo,embly:Eo,phate:Eo,ndent:yo,scent:yo,onist:yo,anist:yo,alist:yo,olist:yo,icist:yo,ounce:fo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:yo,dient:yo},{auskas:Io,parent:yo,cedent:yo,ionary:yo,cklist:yo,keeper:Po,logist:Po,teenth:"Value"},{opoulos:Io,borough:"Place",sdottir:Io}];const Do="Adjective",xo="Noun",To="Verb";var Co=[null,null,{},{neo:xo,bio:xo,"de-":To,"re-":To,"un-":To},{anti:xo,auto:xo,faux:Do,hexa:xo,kilo:xo,mono:xo,nano:xo,octa:xo,poly:xo,semi:Do,tele:xo,"pro-":Do,"mis-":To,"dis-":To,"pre-":Do},{anglo:xo,centi:xo,ethno:xo,ferro:xo,grand:xo,hepta:xo,hydro:xo,intro:xo,macro:xo,micro:xo,milli:xo,nitro:xo,penta:xo,quasi:Do,radio:xo,tetra:xo,"omni-":Do,"post-":Do},{pseudo:Do,"extra-":Do,"hyper-":Do,"inter-":Do,"intra-":Do,"deca-":Do},{electro:xo}];const Oo="Adjective",Bo="Infinitive",zo="PresentTense",Vo="Singular",Fo="PastTense",$o="Adverb",So="Expression",Ho="Actor",Jo="Verb",Mo="Noun",Lo="LastName";var Wo={a:[[/.[aeiou]na$/,Mo,"tuna"],[/.[oau][wvl]ska$/,Lo],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,So,"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$/,Lo,"..ovich"],[/^ug?h+$/,So,"ughh"],[/^uh[ -]?oh$/,So,"uhoh"],[/[a-z]-ish$/,Oo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Lo,"polish-male"]],k:[[/^(k){2}$/,So,"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+$/,So,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oo,"republican"],[/[^aeiou]ician$/,Ho,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,So,"noooo"],[/^(yo)+$/,So,"yoo"],[/^wo{2,}[pt]?$/,So,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Vo],[/[^i]fer$/,Bo],[/.[^aeiou][ao]pher$/,Ho],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oo],[/[aeiou].*ist$/,Oo],[/^[a-z]et$/,Jo]],s:[[/.[^aeiou]ises$/,zo],[/.[rln]ates$/,zo],[/.[^z]ens$/,Jo],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,zo],[/.[aeiou]kes$/,zo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,Mo],[/^yes+$/,So]],v:[[/.[^aeiou][ai][kln]ov$/,Lo]],y:[[/.[cts]hy$/,Oo],[/.[st]ty$/,Oo],[/.[tnl]ary$/,Oo],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,$o],[/.(gg|bb|zz)ly$/,Oo],[/...lly$/,$o],[/.[gk]y$/,Oo],[/[bszmp]{2}y$/,Oo],[/.[ai]my$/,Oo],[/[ea]{2}zy$/,Oo],[/.[^aeiou]ity$/,Vo]]};const Ko="Verb",qo="Noun";var Ro={leftTags:[["Adjective",qo],["Possessive",qo],["Determiner",qo],["Adverb",Ko],["Pronoun",Ko],["Value",qo],["Ordinal",qo],["Modal",Ko],["Superlative",qo],["Demonym",qo],["Honorific","Person"]],leftWords:[["i",Ko],["first",qo],["it",Ko],["there",Ko],["not",Ko],["because",qo],["if",qo],["but",qo],["who",Ko],["this",qo],["his",qo],["when",qo],["you",Ko],["very","Adjective"],["old",qo],["never",Ko],["before",qo],["a","Singular"],["the",qo],["been",Ko]],rightTags:[["Copula",qo],["PastTense",qo],["Conjunction",qo],["Modal",qo]],rightWords:[["there",Ko],["me",Ko],["man","Adjective"],["only",Ko],["him",Ko],["it",Ko],["were",qo],["took",qo],["himself",Ko],["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"},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"},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"},_o={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"},Yo={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 ei=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(Xo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Xo,"")}(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},ni=/^([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(ni);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ni,"")]}(n[0],n[1])})};var ri=function(e={}){return(e=Object.assign({},e)).rules=ai(e.rules),e.rules=ti(e.rules),e.rev&&(e.rev=ai(e.rev),e.rev=ti(e.rev)),e.exceptions=ai(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},oi=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 ii=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"}),si=ri(_o),li=ri(Qo),ui=ri(Zo),ci=oi(ii),di=oi(si),hi=oi(li),gi=oi(ui),mi=ri(Uo),pi=ri(Yo);var fi={fromPast:ii,fromPresent:si,fromGerund:li,fromParticiple:ui,toPast:ci,toPresent:di,toGerund:hi,toParticiple:gi,toComparative:mi,toSuperlative:pi,fromComparative:oi(mi),fromSuperlative:oi(pi)},bi=["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,""]],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(wi[t].forEach(n=>e[n]=t),e),{});var ki=wi,Pi=function(e){let t=e.substring(e.length-3);if(!0===ki.hasOwnProperty(t))return ki[t];let n=e.substring(e.length-2);return!0===ki.hasOwnProperty(n)?ki[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ai={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ei=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=Pi(e)),Ai.hasOwnProperty(e))c=Ai[e];else if("Participle"===n)c=ei(l,i);else if("PastTense"===n)c=ei(l,a);else if("PresentTense"===n)c=ei(l,r);else{if("Gerund"!==n)return e;c=ei(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ii=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:ei(i,n),PresentTense:ei(i,a),Gerund:ei(i,r),FutureTense:"will "+e},u=ei(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},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 Gi="ically",Ni=new Set(["analyt"+Gi,"chem"+Gi,"class"+Gi,"clin"+Gi,"crit"+Gi,"ecolog"+Gi,"electr"+Gi,"empir"+Gi,"frant"+Gi,"grammat"+Gi,"ident"+Gi,"ideolog"+Gi,"log"+Gi,"mag"+Gi,"mathemat"+Gi,"mechan"+Gi,"med"+Gi,"method"+Gi,"method"+Gi,"mus"+Gi,"phys"+Gi,"phys"+Gi,"polit"+Gi,"pract"+Gi,"rad"+Gi,"satir"+Gi,"statist"+Gi,"techn"+Gi,"technolog"+Gi,"theoret"+Gi,"typ"+Gi,"vert"+Gi,"whims"+Gi]),Di=[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"]),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")?Ni.has(e)?e.replace(/ically/,"ical"):xi.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:ji(e,Di)||e:null};const Oi=[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=ji(e,Oi);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"}],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"},$i=new Set(["terrible","annoying"]),Si=function(e,t){const n=t.two.models.toSuperlative;return ei(e,n)},Hi=function(e,t){const n=t.two.models.toComparative;return ei(e,n)};var Ji={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"]}},Mi={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===Ji.hasOwnProperty(i)&&Ji[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Gr,nounToSingular:vi,verbToInfinitive:Ei,getTense:Pi,verbConjugate:Ii,adjToSuperlative:Si,adjToComparative:Hi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ei(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ei(e,n)},advToAdjective:Ci,adjToAdverb:zi,adjToNoun:function(e){if(Fi.hasOwnProperty(e))return Fi[e];if($i.has(e))return null;let t=ji(e,Vi);return t||e+"ness"}}}},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,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Ki=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=Wi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Wi(a,"Infinitive","Verb"),Object.assign(s,l),l=Wi(r,"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:fi}};const Ri={"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:a,_multi:r}=Mi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Qi=function(e,t,n){let a=Ii(e,qi);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]=Ri[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Qi(r,a,!1),"Adj|Present"===o&&(Qi(r,a,!0),function(e,t,n){let a=Si(e,n);t[a]=t[a]||"Superlative";let r=Hi(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ei(r,qi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ei(r,qi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Ui(n,t)};let _i={one:{_multiCache:{},lexicon:Dr},two:{irregularPlurals:pr,models:fi,suffixPatterns:No,prefixPatterns:Co,endsWith:Wo,neighbours:Ro,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:xr,clues:mo,uncountable:{},orgWords:bi}};_i=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=Ki(e),e=Li(e)}(_i);var Yi=_i;const Xi=/^(under|over|mis|re|un|dis|semi)-?/;var es=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(Xi.test(r.normal)){let e=r.normal.replace(Xi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},ts=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 ns={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"]),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 os=function(e){if(!e||e.length<=3)return!1;if(as.has(e))return!0;let t=e[e.length-1];return ns.hasOwnProperty(t)?ns[t].find(t=>e.endsWith(t)):"s"===t&&!rs.find(t=>e.endsWith(t))};const is=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ss=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(os(e.normal)?ts(e,"Plural","3-plural-guess"):ts(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Pi(e.normal);t&&ts(e,t,"3-verb-tense-guess")}}(a)};const ls=/^\p{Lu}[\p{Ll}'’]/u,us=/[0-9]/,cs=["Date","Month","WeekDay","Unit"],ds=/^[IVXLCDM]{2,}$/,hs=/^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 ms=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===ls.test(o)&&!1===us.test(o)?cs.find(e=>a.tags.has(e))?null:(ss(e,t,n),a.tags.has("Noun")||a.tags.clear(),ts(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&ds.test(o)&&hs.test(o)&&!gs[a.normal]?(ts(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 fs=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 ts(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=ps(a.implicit,n.two.suffixPatterns),null!==e))return ts(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const bs=/['‘’‛‵′`´]/,ys=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 ts(a,e,"2-prefix"),a.confidence=.5,!0}return null};const ks=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!!ks.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},As=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Es=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Is=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(Ps(r)||Ps(o))return ts(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(As(r)||As(o))return ts(n,"Year","2-tagYear-close");if(Es(e[t-2])||Es(e[t+2]))return ts(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 ts(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Gs=/^[A-Z-]+$/,Ns=/([A-Z]\.)+[A-Z]?,?$/,Ds=/[A-Z]{2,}('s|,)?$/,xs=/([a-z]\.)+[a-z]\.?$/,Ts={I:!0,A:!0};var Cs=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===Gs.test(n)||n.length>5||Ts.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ns.test(n)&&!0!==xs.test(n)&&!0!==js.test(n)&&!0!==Ds.test(n))}(a,n)?(a.tags.clear(),ts(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ts.hasOwnProperty(a.text)&&js.test(a.text)?(a.tags.clear(),ts(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(ts(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Gs.test(a.text)&&a.text.length<=6?(ts(a,"Acronym","3-titlecase-acronym"),!0):null};const Os=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: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||Os(e[t-1],r),l=l||Os(e[t+1],o),l=l||Bs(e[t-1],a),l=l||Bs(e[t+1],i),l)return ts(s,l,"3-[neighbour]"),ss(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 Fs=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]&&Vs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Vs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},$s=function(e,t,n){0===e[t].tags.size&&(ts(e[t],"Noun","3-[fallback]"),ss(e,t,n),e[t].confidence=.1)};const Ss=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Hs=(e,t,n)=>0!==t||e[1]?null:n;var Js={"Adj|Gerund":(e,t)=>Ss(e,t),"Adj|Noun":(e,t)=>Ss(e,t),"Adj|Past":(e,t)=>Ss(e,t),"Adj|Present":(e,t)=>Ss(e,t),"Noun|Gerund":(e,t)=>Ss(e,t),"Noun|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ss(e,t),"Person|Verb":(e,t)=>0!==t&&Ss(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 a=t[n];return a&&Ms.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ks=(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&&Ms.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},qs={tagSwitch:es,checkSuffix:fs,checkRegex:vs,checkCase:ms,checkPrefix:ws,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")&&(ts(o,"Verb","3-[prefix]"),ts(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(ts(o,"Adjective","3-[prefix]"),ts(o,"Prefix","3-[prefix]")))},checkYear:Is},Rs={checkAcronym:Cs,neighbours:zs,orgWords:Fs,nounFallback:$s,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(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=Ws(e[t+1],n.afterWords);return o=o||Ws(e[t-1],n.beforeWords),o=o||Ks(e[t-1],n.beforeTags,r),o=o||Ks(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Js[o]&&(u=Js[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Ms.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)},_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 Ys={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 ul=/'/;var cl=function(e,t){let n=e[t].normal.split(ul)[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 hl=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"]},gl=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 fl=(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 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 bl=/'/,yl=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)=>gl(e,t),s:(e,t,n)=>fl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):cl(e,t)},wl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var kl={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===bl.test(a[o].normal)&&([,i]=a[o].normal.split(bl));let s=null;vl.hasOwnProperty(i)&&(s=vl[i](a,o,t)),s&&(s=wl(s,e),ll(n,[r,o],s),yl(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=sl.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=il},hooks:["contractionTwo"]};const Pl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Al=["i","we","they"];let El=[].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: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:"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:Al,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:Al,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Al,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"}]),Il=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:a}=t;Il=Il||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(Il),e.uncache(),e}},model:{two:{matches:El}},hooks:["postTagger"]},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)},Nl=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},Dl={api:function(e){e.prototype.swap=Nl}};return m.plugin(al),m.plugin(kl),m.plugin(jl),m.plugin(Dl),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 cb70666f5..c30a0f6b7 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.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=(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 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,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}};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 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 Le=Object.assign({},ze,Ve,Je);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var Me=function(e){Object.assign(e.prototype,Le)};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:Me,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=/^#./,Lt=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 Mt={html:function(e){let{starts:t,ends:n}=Lt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Yt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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 gn={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},bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var yn=function(e,t){let n=bn(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 vn={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:bn,splitAll:yn}}};var wn=function(e,t){let n=e.concat(t),a=bn(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=>fn(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 Pn=function(e,t){let n=bn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>fn(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},En=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},In={union:function(e){e=An(e,this);let t=wn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=An(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},In.not=function(e){e=An(e,this);let t=kn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=kn(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=wn(e,[t])}),e=En(e,this.document),this.update(e)};var jn={methods:vn,api:function(e){Object.assign(e.prototype,In)}};const Nn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Gn=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(Nn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Nn(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=Nn(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 Dn=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 xn=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 Tn=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 Cn=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=Gn(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=Dn(r,t.hooks);return o=xn(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),Tn(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===Cn(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 Bn=/ /,zn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Vn=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(),Bn.test(t))!function(e,t,n,a){let r=t.split(Bn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Vn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nFn(e,t,n,a))};var $n=Fn;var Sn=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=>Hn({id:e})),t}return[Hn({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},Wn=e=>"[object Array]"===Object.prototype.toString.call(e),Kn=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:Ln(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=Hn({});return e.forEach(e=>{if((e=Hn(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):(Mn(t=e).forEach(Hn),t);var t},Rn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Mn(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},Un=function(e){let t=Mn(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},Qn={text:Rn,txt:Rn,array:Un,flat:Un},Zn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Rn(e,!0)),null):Qn.hasOwnProperty(t)?Qn[t](e):e},_n=e=>{Mn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Yn=/\//;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=Kn(e),!Yn.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)||Hn({});return new g$1(t)}add(e,t={}){if(Wn(e))return e.forEach(e=>this.add(Kn(e),t)),this;e=Kn(e);let n=Hn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Kn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Mn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Mn(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 Mn(this.json)}fillDown(){var e;return e=this.json,Mn(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 Wn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){_n(this.json);let e=Mn(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 _n(this.json),Zn(this.json,e)}debug(){return _n(this.json),Zn(this.json,"debug"),this}}const Xn=function(e){let t=qn(e);return new g$1(t)};Xn.prototype.plugin=function(e){e(this)};var ea={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ta=function(e){if(ea.hasOwnProperty(e.id))return ea[e.id];if(ea.hasOwnProperty(e.is))return ea[e.is];let t=e._cache.parents.find(e=>ea[e]);return ea[t]};var na=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:ta(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 aa=function(e){return e?"string"==typeof e?[e]:e:[]};var ra=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=aa(e[t].children),e[t].not=aa(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 oa={one:{setTag:$n,unTag:Sn,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=ra(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 Xn(t).cache().fillDown().out("array")}(Object.assign({},t,e));return na(n)}}};const ia=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var sa={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||""),ia(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 ia(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 la=function(e){Object.assign(e.prototype,sa)};var ua={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 ca=new Set(["Auxiliary","Possessive"]);var ha={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(ca.has(e)||!t.hasOwnProperty(n))return 1;if(ca.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:oa,api:la,lib:ua};const da=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ga=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var ma=function(e){let t=[],n=e.split(ga);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 Ca=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Oa=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ba=/['’]/,za=/^[a-z]\.([a-z]\.)+/i,Va=/^[-+.][0-9]/,Fa=/^'[0-9]{2}/;var $a=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ca,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Va.test(e)?"'"===n&&Fa.test(e)?(n="",t):"":(n="",t)))).replace(Oa,r=>(a=r,Ba.test(r)&&/[sn]['’]$/.test(t)&&!1===Ba.test(n)?(a=a.replace(Ba,""),"'"):!0===za.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Sa=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 Ha=/([A-Z]\.)+[A-Z]?,?$/,Ja=/^[A-Z]\.,?$/,La=/[A-Z]{2,}('s|,)?$/,Ma=/([a-z]\.)+[a-z]\.?$/;var Wa=function(e){return function(e){return!0===Ha.test(e)||!0===Ma.test(e)||!0===Ja.test(e)||!0===La.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ka=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Sa(a),a=n(a,t),a=Wa(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:Pa,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(xa);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=Na(n),n=Ia(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=$a(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=>{Ka(e,t)}),n})}}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ua={},Qa={};[[["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=>{Ua[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])})});var Za=["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 _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},Ya={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Ya[t]=e}))}));const Xa=/\//,er=/[a-z]\.[a-z]/i,tr=/[0-9]/;var nr=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])),Xa.test(n)&&!er.test(n)&&!tr.test(n)){let t=n.split(Xa);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ar=/^\p{Letter}+-\p{Letter}+$/u;var rr=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"),ar.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var or=function(e){let t=0,n=0,a=e.document;for(let e=0;eir(e,nr),machine:e=>ir(e,rr),normal:e=>ir(e,Ka),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 cr={safe:!0,min:3};var hr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=lr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},cr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=ur(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(pn),m.extend(St),m.extend(jn),m.extend(ha),m.plugin(be),m.extend(sr),m.plugin(f),m.extend(De),m.extend(hr),m.extend(Pe),m.extend(On);var dr={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"},gr={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 mr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",pr=mr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var fr=function(e){if(void 0!==pr[e])return pr[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 br=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=vr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=wr(gr[e]);Er.test(e)?Object.keys(t).forEach(t=>{if(jr[t]=e,"Noun|Verb"===e){let e=Ar(t,Nr);jr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ir[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ir[e]="Emoticon"),delete Ir[""],delete Ir.null,delete Ir[" "];const Gr="Adjective";var Dr={beforeTags:{Determiner:Gr,Possessive:Gr},afterTags:{Adjective:Gr},beforeWords:{seem:Gr,seemed:Gr,seems:Gr,feel:Gr,feels:Gr,felt:Gr,appear:Gr,appears:Gr,appeared:Gr,also:Gr,over:Gr,under:Gr,too:Gr,it:Gr,but:Gr,still:Gr,really:Gr,quite:Gr,well:Gr,very:Gr,deeply:Gr,profoundly:Gr,extremely:Gr,so:Gr,badly:Gr,mostly:Gr,totally:Gr,awfully:Gr,rather:Gr,nothing:Gr,something:Gr,anything:Gr},afterWords:{too:Gr,also:Gr,or:Gr}};const xr="Gerund";var Tr={beforeTags:{Adverb:xr,Preposition:xr,Conjunction:xr},afterTags:{Adverb:xr,Possessive:xr,Person:xr,Pronoun:xr,Determiner:xr,Copula:xr,Preposition:xr,Conjunction:xr,Comparative:xr},beforeWords:{been:xr,keep:xr,continue:xr,stop:xr,am:xr,be:xr,me:xr,began:xr,start:xr,starts:xr,started:xr,stops:xr,stopped:xr,help:xr,helps:xr,avoid:xr,avoids:xr,love:xr,loves:xr,loved:xr,hate:xr,hates:xr,hated:xr},afterWords:{you:xr,me:xr,her:xr,him:xr,them:xr,their:xr,it:xr,this:xr,there:xr,on:xr,about:xr,for:xr}};var Cr={beforeTags:Object.assign({},Dr.beforeTags,Tr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Dr.afterTags,Tr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Dr.beforeWords,Tr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Dr.afterWords,Tr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Or="Singular";var Br={beforeTags:{Determiner:Or,Possessive:Or,Acronym:Or,Noun:Or,Adjective:Or,PresentTense:Or,Gerund:Or,PastTense:Or,Infinitive:Or,Date:Or},afterTags:{Value:Or,Modal:Or,Copula:Or,PresentTense:Or,PastTense:Or,Demonym:Or},beforeWords:{the:Or,with:Or,without:Or,of:Or,for:Or,any:Or,all:Or,on:Or,cut:Or,cuts:Or,save:Or,saved:Or,saves:Or,make:Or,makes:Or,made:Or,minus:Or,plus:Or,than:Or,another:Or,versus:Or,neither:Or,favorite:Or,best:Or,daily:Or,weekly:Or,linear:Or,binary:Or,mobile:Or,lexical:Or,technical:Or,computer:Or,scientific:Or,formal:Or},afterWords:{of:Or,system:Or,aid:Or,method:Or,utility:Or,tool:Or,reform:Or,therapy:Or,philosophy:Or,room:Or,authority:Or,says:Or,said:Or,wants:Or,wanted:Or}};const zr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Vr={beforeTags:Object.assign({},Dr.beforeTags,Br.beforeTags,zr.beforeTags),afterTags:Object.assign({},Dr.afterTags,Br.afterTags),beforeWords:Object.assign({},Dr.beforeWords,Br.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Dr.afterWords,Br.afterWords)};const Fr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},$r={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Sr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Hr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Jr={beforeTags:Object.assign({},Dr.beforeTags,Fr),afterTags:Object.assign({},Dr.afterTags,$r),beforeWords:Object.assign({},Dr.beforeWords,Sr),afterWords:Object.assign({},Dr.afterWords,Hr)};const Lr="Infinitive";var Mr={beforeTags:{Modal:Lr,Adverb:Lr,Negative:Lr,Plural:Lr},afterTags:{Determiner:Lr,Adverb:Lr,Possessive:Lr,Preposition:Lr},beforeWords:{i:Lr,we:Lr,you:Lr,they:Lr,to:Lr,please:Lr,will:Lr,have:Lr,had:Lr,would:Lr,could:Lr,should:Lr,do:Lr,did:Lr,does:Lr,can:Lr,must:Lr,us:Lr,me:Lr,he:Lr,she:Lr,it:Lr,being:Lr},afterWords:{the:Lr,me:Lr,you:Lr,him:Lr,her:Lr,them:Lr,it:Lr,a:Lr,an:Lr,up:Lr,down:Lr,by:Lr,out:Lr,off:Lr,under:Lr,when:Lr,all:Lr,to:Lr,because:Lr,although:Lr,before:Lr,how:Lr,otherwise:Lr,together:Lr,though:Lr,yet:Lr}};const Wr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Kr={beforeTags:Object.assign({},Dr.beforeTags,Mr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Dr.afterTags,Mr.afterTags,Wr.afterTags),beforeWords:Object.assign({},Dr.beforeWords,Mr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Dr.afterWords,Mr.afterWords,{to:void 0})};const qr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Rr={},Ur={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Qr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Zr={beforeTags:Object.assign({},Tr.beforeTags,Br.beforeTags,qr),afterTags:Object.assign({},Tr.afterTags,Br.afterTags,Rr),beforeWords:Object.assign({},Tr.beforeWords,Br.beforeWords,Ur),afterWords:Object.assign({},Tr.afterWords,Br.afterWords,Qr)};var _r={beforeTags:Object.assign({},Mr.beforeTags,Br.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Mr.afterTags,Br.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Mr.beforeWords,Br.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Mr.afterWords,Br.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const Yr="Person";var Xr={beforeTags:{Honorific:Yr,Person:Yr,Preposition:Yr},afterTags:{Person:Yr,ProperNoun:Yr,Verb:Yr},ownTags:{ProperNoun:Yr},beforeWords:{hi:Yr,hey:Yr,yo:Yr,dear:Yr,hello:Yr},afterWords:{said:Yr,says:Yr,told:Yr,tells:Yr,feels:Yr,felt:Yr,seems:Yr,thinks:Yr,thought:Yr,spends:Yr,spendt:Yr,plays:Yr,played:Yr,sing:Yr,sang:Yr,learn:Yr,learned:Yr,wants:Yr,wanted:Yr}};const eo="Month",to={beforeTags:{Date:eo,Value:eo},afterTags:{Date:eo,Value:eo},beforeWords:{by:eo,in:eo,on:eo,during:eo,after:eo,before:eo,between:eo,until:eo,til:eo,sometime:eo,of:eo,this:eo,next:eo,last:eo,previous:eo,following:eo},afterWords:{sometime:eo,in:eo,of:eo,until:eo,the:eo}};var no={beforeTags:Object.assign({},Xr.beforeTags,to.beforeTags),afterTags:Object.assign({},Xr.afterTags,to.afterTags),beforeWords:Object.assign({},Xr.beforeWords,to.beforeWords),afterWords:Object.assign({},Xr.afterWords,to.afterWords)};const ao={Place:"Place"},ro={Place:"Place",Abbreviation:"Place"},oo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},io={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const so={"Adj|Gerund":Cr,"Adj|Noun":Vr,"Adj|Past":Jr,"Adj|Present":Kr,"Noun|Verb":_r,"Noun|Gerund":Zr,"Person|Noun":{beforeTags:Object.assign({},Br.beforeTags,Xr.beforeTags),afterTags:Object.assign({},Br.afterTags,Xr.afterTags),beforeWords:Object.assign({},Br.beforeWords,Xr.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Br.afterWords,Xr.afterWords)},"Person|Date":no,"Person|Verb":{beforeTags:Object.assign({},Xr.beforeTags,Mr.beforeTags),afterTags:Object.assign({},Xr.afterTags,Mr.afterTags),beforeWords:Object.assign({},Xr.beforeWords,Mr.beforeWords),afterWords:Object.assign({},Xr.afterWords,Mr.afterWords)},"Person|Place":{beforeTags:Object.assign({},ao,Xr.beforeTags),afterTags:Object.assign({},ro,Xr.afterTags),beforeWords:Object.assign({},oo,Xr.beforeWords),afterWords:Object.assign({},io,Xr.afterWords)}},lo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};so["Plural|Verb"]={beforeWords:lo(so["Noun|Verb"].beforeWords,{}),afterWords:lo(so["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:lo(so["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:lo(so["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var uo=so;const co="Adjective",ho="Infinitive",go="PresentTense",mo="Singular",po="PastTense",fo="Adverb",bo="Plural",yo="Verb",vo="LastName",wo="Participle";var ko=[null,null,{ea:mo,ia:"Noun",ic:co,ly:fo,"'n":yo,"'t":yo},{oed:po,ued:po,xed:po," so":fo,"'ll":"Modal","'re":"Copula",azy:co,eer:"Noun",end:yo,ped:po,ffy:co,ify:ho,ing:"Gerund",ize:ho,ibe:ho,lar:co,mum:co,nes:go,nny:co,ous:co,que:co,rol:mo,sis:mo,ogy:mo,oid:mo,ian:mo,zes:go,eld:po,ken:wo,ven:wo,ten:wo,ect:ho,ict:ho,ign:ho,ful:co,bal:co},{amed:po,aped:po,ched:po,lked:po,rked:po,reed:po,nded:po,mned:co,cted:po,dged:po,ield:mo,akis:vo,cede:ho,chuk:vo,czyk:vo,ects:go,ends:yo,enko:vo,ette:mo,wner:mo,fies:go,fore:fo,gate:ho,gone:co,ices:bo,ints:bo,ruct:ho,ines:bo,ions:bo,less:co,llen:co,made:co,nsen:vo,oses:go,ould:"Modal",some:co,sson:vo,tion:mo,tage:"Noun",ique:mo,tive:co,tors:"Noun",vice:mo,lier:mo,fier:mo,wned:po,gent:mo,tist:mo,pist:mo,rist:mo,mist:mo,yist:mo,vist:mo,lite:mo,site:mo,rite:mo,mite:mo,bite:mo,mate:mo,date:mo,ndal:mo,vent:mo,uist:mo,gist:mo,note:mo,cide:mo,wide:co,vide:ho,ract:ho,duce:ho,pose:ho,eive:ho,lyze:ho,lyse:ho,iant:co,nary:co},{elist:mo,holic:mo,phite:mo,tized:po,urned:po,eased:po,ances:bo,bound:co,ettes:bo,fully:fo,ishes:go,ities:bo,marek:vo,nssen:vo,ology:"Noun",osome:mo,tment:mo,ports:bo,rough:co,tches:go,tieth:"Ordinal",tures:bo,wards:fo,where:fo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:mo,scent:mo,onist:mo,anist:mo,alist:mo,olist:mo,icist:mo,ounce:ho,iable:co,borne:co,gnant:co,inant:co,igent:co,atory:co,rient:mo,dient:mo},{auskas:vo,parent:mo,cedent:mo,ionary:mo,cklist:mo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:vo,borough:"Place",sdottir:vo}];const Po="Adjective";var Ao=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Po,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Po,tele:"Noun","pro-":Po,"mis-":"Verb","dis-":"Verb","pre-":Po},{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:Po,radio:"Noun",tetra:"Noun","omni-":Po,"post-":Po},{pseudo:Po,"extra-":Po,"hyper-":Po,"inter-":Po,"intra-":Po,"deca-":Po},{electro:"Noun"}];const Eo="Adjective",Io="Infinitive",jo="PresentTense",No="Singular",Go="PastTense",Do="Expression",xo="LastName";var To={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,xo],[/.[^aeiou]ica$/,No,"harmonica"],[/^([hyj]a+)+$/,Do,"haha"]],c:[[/.[^aeiou]ic$/,Eo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Go,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Go,"rammed"],[/.[aeiou][sg]hed$/,Go,"gushed"],[/.[aeiou]red$/,Go,"hired"],[/.[aeiou]r?ried$/,Go,"hurried"],[/[^aeiou]ard$/,No,"steward"],[/[aeiou][^aeiou]id$/,Eo,""],[/.[vrl]id$/,Eo,"livid"],[/..led$/,Go,"hurled"],[/.[iao]sed$/,Go,""],[/[aeiou]n?[cs]ed$/,Go,""],[/[aeiou][rl]?[mnf]ed$/,Go,""],[/[aeiou][ns]?c?ked$/,Go,"bunked"],[/[aeiou]gned$/,Go],[/[aeiou][nl]?ged$/,Go],[/.[tdbwxyz]ed$/,Go],[/[^aeiou][aeiou][tvx]ed$/,Go],[/.[cdflmnprstv]ied$/,Go,"emptied"]],e:[[/.[lnr]ize$/,Io,"antagonize"],[/.[^aeiou]ise$/,Io,"antagonise"],[/.[aeiou]te$/,Io,"bite"],[/.[^aeiou][ai]ble$/,Eo,"fixable"],[/.[^aeiou]eable$/,Eo,"maleable"],[/.[ts]ive$/,Eo,"festive"],[/[a-z]-like$/,Eo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Eo,"cornish"],[/.v[iy]ch$/,xo,"..ovich"],[/^ug?h+$/,Do,"ughh"],[/^uh[ -]?oh$/,Do,"uhoh"],[/[a-z]-ish$/,Eo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,xo,"polish-male"]],k:[[/^(k){2}$/,Do,"kkkk"]],l:[[/.[gl]ial$/,Eo,"familial"],[/.[^aeiou]ful$/,Eo,"fitful"],[/.[nrtumcd]al$/,Eo,"natal"],[/.[^aeiou][ei]al$/,Eo,"familial"]],m:[[/.[^aeiou]ium$/,No,"magnesium"],[/[^aeiou]ism$/,No,"schism"],[/^[hu]m+$/,Do,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Eo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Do,"noooo"],[/^(yo)+$/,Do,"yoo"],[/^wo{2,}[pt]?$/,Do,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,No],[/[^i]fer$/,Io],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Eo],[/[aeiou].*ist$/,Eo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,jo],[/.[rln]ates$/,jo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,No],[/.[aeiou]sks$/,jo],[/.[aeiou]kes$/,jo],[/[aeiou][^aeiou]is$/,No],[/[a-z]'s$/,"Noun"],[/^yes+$/,Do]],v:[[/.[^aeiou][ai][kln]ov$/,xo]],y:[[/.[cts]hy$/,Eo],[/.[st]ty$/,Eo],[/.[tnl]ary$/,Eo],[/.[oe]ry$/,No],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Eo],[/...lly$/,"Adverb"],[/.[gk]y$/,Eo],[/[bszmp]{2}y$/,Eo],[/.[ai]my$/,Eo],[/[ea]{2}zy$/,Eo],[/.[^aeiou]ity$/,No]]};const Co="Verb",Oo="Noun";var Bo={leftTags:[["Adjective",Oo],["Possessive",Oo],["Determiner",Oo],["Adverb",Co],["Pronoun",Co],["Value",Oo],["Ordinal",Oo],["Modal",Co],["Superlative",Oo],["Demonym",Oo],["Honorific","Person"]],leftWords:[["i",Co],["first",Oo],["it",Co],["there",Co],["not",Co],["because",Oo],["if",Oo],["but",Oo],["who",Co],["this",Oo],["his",Oo],["when",Oo],["you",Co],["very","Adjective"],["old",Oo],["never",Co],["before",Oo],["a","Singular"],["the",Oo],["been",Co]],rightTags:[["Copula",Oo],["PastTense",Oo],["Conjunction",Oo],["Modal",Oo]],rightWords:[["there",Co],["me",Co],["man","Adjective"],["only",Co],["him",Co],["it",Co],["were",Oo],["took",Oo],["himself",Co],["went",Oo],["who",Oo],["jr","Person"]]},zo={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"},Vo={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"},Fo={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"},$o={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"},So={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 Ho=/^.([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],a=n.match(Ho);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Ho,"")}(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},Mo=/^([0-9]+)/,Wo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Mo);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(Mo,"")]}(n[0],n[1])})};var Ko=function(e={}){return(e=Object.assign({},e)).rules=Wo(e.rules),e.rules=Lo(e.rules),e.rev&&(e.rev=Wo(e.rev),e.rev=Lo(e.rev)),e.exceptions=Wo(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 Ro=Ko({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"}),Uo=Ko($o),Qo=Ko(Vo),Zo=Ko(Fo),_o=qo(Ro),Yo=qo(Uo),Xo=qo(Qo),ei=qo(Zo),ti=Ko(zo),ni=Ko(So);var ai={fromPast:Ro,fromPresent:Uo,fromGerund:Qo,fromParticiple:Zo,toPast:_o,toPresent:Yo,toGerund:Xo,toParticiple:ei,toComparative:ti,toSuperlative:ni,fromComparative:qo(ti),fromSuperlative:qo(ni)},ri=["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),{}),oi=[[/([^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 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(si[t].forEach(n=>e[n]=t),e),{});var li=si;var ui=function(e){let t=e.substring(e.length-3);if(!0===li.hasOwnProperty(t))return li[t];let n=e.substring(e.length-2);return!0===li.hasOwnProperty(n)?li[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ci={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var hi=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=ui(e)),ci.hasOwnProperty(e))c=ci[e];else if("Participle"===n)c=Jo(l,i);else if("PastTense"===n)c=Jo(l,a);else if("PresentTense"===n)c=Jo(l,r);else{if("Gerund"!==n)return e;c=Jo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var di=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:Jo(i,n),PresentTense:Jo(i,a),Gerund:Jo(i,r),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 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 mi="ically",pi=new Set(["analyt"+mi,"chem"+mi,"class"+mi,"clin"+mi,"crit"+mi,"ecolog"+mi,"electr"+mi,"empir"+mi,"frant"+mi,"grammat"+mi,"ident"+mi,"ideolog"+mi,"log"+mi,"mag"+mi,"mathemat"+mi,"mechan"+mi,"med"+mi,"method"+mi,"method"+mi,"mus"+mi,"phys"+mi,"phys"+mi,"polit"+mi,"pract"+mi,"rad"+mi,"satir"+mi,"statist"+mi,"techn"+mi,"technolog"+mi,"theoret"+mi,"typ"+mi,"vert"+mi,"whims"+mi]),fi=[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"}],bi=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"]),yi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var vi=function(e){return e.endsWith("ly")?pi.has(e)?e.replace(/ically/,"ical"):bi.has(e)?null:yi.hasOwnProperty(e)?yi[e]:gi(e,fi)||e:null};const wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ki={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Pi=function(e){if(ki.hasOwnProperty(e))return ki[e];let t=gi(e,wi);return t||e+"ly"};const Ai=[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"}],Ei={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 ji=function(e,t){const n=t.two.models.toSuperlative;return Jo(e,n)},Ni=function(e,t){const n=t.two.models.toComparative;return Jo(e,n)};var Gi={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 Di={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===Gi.hasOwnProperty(i)&&Gi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Ar,nounToSingular:ii,verbToInfinitive:hi,getTense:ui,verbConjugate:di,adjToSuperlative:ji,adjToComparative:Ni,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:vi,adjToAdverb:Pi,adjToNoun:function(e){if(Ei.hasOwnProperty(e))return Ei[e];if(Ii.has(e))return null;let t=gi(e,Ai);return t||e+"ness"}}}};var 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 Ti=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Ci=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=Ti(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ti(a,"Infinitive","Verb"),Object.assign(s,l),l=Ti(r,"Infinitive","Gerund"),Object.assign(s,l),l=Ti(o,"Adjective","Superlative"),Object.assign(s,l),l=Ti(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Oi={two:{models:ai}};const Bi={"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"},zi=function(e,t){const n={model:t,methods:Di};let{lex:a,_multi:r}=Di.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Vi=function(e,t,n){let a=di(e,Oi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Fi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Bi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Vi(r,a,!1),"Adj|Present"===o&&(Vi(r,a,!0),function(e,t,n){let a=ji(e,n);t[a]=t[a]||"Superlative";let r=Ni(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=hi(r,Oi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=hi(r,Oi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=zi(n,t)};let $i={one:{_multiCache:{},lexicon:Ir},two:{irregularPlurals:dr,models:ai,suffixPatterns:ko,prefixPatterns:Ao,endsWith:To,neighbours:Bo,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:jr,clues:uo,uncountable:{},orgWords:ri}};$i=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=zi(e.one.lexicon,e)).one.lexicon,e),e=Fi(e.two.switches,e),e=Ci(e),e=xi(e)}($i);var Si=$i;const Hi=/^(under|over|mis|re|un|dis|semi)-?/;var Ji=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(Hi.test(r.normal)){let e=r.normal.replace(Hi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Li=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 Mi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Wi=new Set(["formulas","koalas","israelis","menus"]),Ki=["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(Wi.has(e))return!0;let t=e[e.length-1];return Mi.hasOwnProperty(t)?Mi[t].find(t=>e.endsWith(t)):"s"===t&&!Ki.find(t=>e.endsWith(t))};const Ri=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Ui=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(qi(e.normal)?Li(e,"Plural","3-plural-guess"):Li(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ui(e.normal);t&&Li(e,t,"3-verb-tense-guess")}}(a)};const Qi=/^\p{Lu}[\p{Ll}'’]/u,Zi=/[0-9]/,_i=["Date","Month","WeekDay","Unit"],Yi=/^[IVXLCDM]{2,}$/,Xi=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,es={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ts=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===Qi.test(o)&&!1===Zi.test(o)?_i.find(e=>a.tags.has(e))?null:(Ui(e,t,n),a.tags.has("Noun")||a.tags.clear(),Li(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Yi.test(o)&&Xi.test(o)&&!es[a.normal]?(Li(a,"RomanNumeral","2-xvii"),!0):null};const ns=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=ns(a.normal,n.two.suffixPatterns);if(null!==e)return Li(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=ns(a.implicit,n.two.suffixPatterns),null!==e))return Li(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const rs=/['‘’‛‵′`´]/,os=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 Li(a,e,"2-prefix"),a.confidence=.5,!0}return null};const ls=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"]),us=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ls.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},cs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},hs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ds=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(us(r)||us(o))return Li(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(cs(r)||cs(o))return Li(n,"Year","2-tagYear-close");if(hs(e[t-2])||hs(e[t+2]))return Li(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 Li(n,"Year","2-tagYear-noun")}}}return null};const gs=/^[A-Z]('s|,)?$/,ms=/^[A-Z-]+$/,ps=/([A-Z]\.)+[A-Z]?,?$/,fs=/[A-Z]{2,}('s|,)?$/,bs=/([a-z]\.)+[a-z]\.?$/,ys={I:!0,A:!0};var vs=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===ms.test(n)||n.length>5||ys.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==ps.test(n)&&!0!==bs.test(n)&&!0!==gs.test(n)&&!0!==fs.test(n))}(a,n)?(a.tags.clear(),Li(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!ys.hasOwnProperty(a.text)&&gs.test(a.text)?(a.tags.clear(),Li(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Li(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&ms.test(a.text)&&a.text.length<=6?(Li(a,"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},ks=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ps=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||ws(e[t-1],r),l=l||ws(e[t+1],o),l=l||ks(e[t-1],a),l=l||ks(e[t+1],i),l)return Li(s,l,"3-[neighbour]"),Ui(e,t,n),e[t].confidence=.2,!0}return null};const As=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 Es=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]&&As(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&As(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Is=function(e,t,n){0===e[t].tags.size&&(Li(e[t],"Noun","3-[fallback]"),Ui(e,t,n),e[t].confidence=.1)};const js=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ns=(e,t,n)=>0!==t||e[1]?null:n;var Gs={"Adj|Gerund":(e,t)=>js(e,t),"Adj|Noun":(e,t)=>js(e,t),"Adj|Past":(e,t)=>js(e,t),"Adj|Present":(e,t)=>js(e,t),"Noun|Gerund":(e,t)=>js(e,t),"Noun|Verb":(e,t)=>js(e,t)||Ns(e,t,"Infinitive"),"Plural|Verb":(e,t)=>js(e,t)||Ns(e,t,"PresentTense"),"Person|Noun":(e,t)=>js(e,t),"Person|Verb":(e,t)=>0!==t&&js(e,t)};const Ds="undefined"!=typeof process&&process.env?process.env:self.env||{},xs=/^(under|over|mis|re|un|dis|semi)-?/,Ts=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Ds.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Cs=(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&&Ds.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Os={tagSwitch:Ji,checkSuffix:as,checkRegex:is,checkCase:ts,checkPrefix:ss,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")&&(Li(o,"Verb","3-[prefix]"),Li(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Li(o,"Adjective","3-[prefix]"),Li(o,"Prefix","3-[prefix]")))},checkYear:ds},Bs={checkAcronym:vs,neighbours:Ps,orgWords:Es,nounFallback:Is,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(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=Ts(e[t+1],n.afterWords);return o=o||Ts(e[t-1],n.beforeWords),o=o||Cs(e[t-1],n.beforeTags,r),o=o||Cs(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Gs[o]&&(u=Gs[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Ds.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},zs=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 $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 Ss={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 Zs=/'/;var _s=function(e,t){let n=e[t].normal.split(Zs)[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 Ys=/'/;var Xs=function(e,t){let n=e[t].normal.split(Ys)[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 el=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 tl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},nl={in:!0,by:!0,for:!0};var al=(e,t)=>{let n=e[t];if(tl.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===nl[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 rl=/'/,ol=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)=>Xs(e,t),t:(e,t)=>el(e,t),s:(e,t,n)=>al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):_s(e,t)},sl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ll={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===rl.test(a[o].normal)&&([,i]=a[o].normal.split(rl));let s=null;il.hasOwnProperty(i)&&(s=il[i](a,o,t)),s&&(s=sl(s,e),Qs(n,[r,o],s),ol(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=Us.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=Rs},hooks:["contractionTwo"]};const ul="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const cl=["i","we","they"];let hl=[].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:ul+" #Person",tag:"Person",reason:"randy-smith"},{match:ul+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${ul}]`,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:cl,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:cl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:cl,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 dl=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;dl=dl||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(dl),e.uncache(),e}},model:{two:{matches:hl}},hooks:["postTagger"]};var ml=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 pl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?ml(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 fl={api:function(e){e.prototype.swap=pl}};m.plugin(Ws),m.plugin(ll),m.plugin(gl),m.plugin(fl);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]);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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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=(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,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(I(t.update([u]).firstTerm()),k(d,u,h,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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),he(n[i],e,s,c.length)):de.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),he(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 dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Yt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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 gn={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;a>2]|=(i.charCodeAt(u)||128)<>6)+14]=8*s,u=0;u>4]+(fn[r]+(0|o[[r,5*r+1,3*r+5,7*r][s]%16+u])))<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+r++%4])|a>>>32-s),t,n];for(r=4;r;)l[--r]=l[r]+s[r]}for(e="";r<32;)e+=(l[r>>3]>>4*(1^7&r++)&15).toString(16);return e}}}};const yn=function(e,t){if(e[0]!==t[0])return!1;let[,n,a]=e,[,r,o]=t;return n<=r&&a>r||r<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var wn=function(e,t){let n=vn(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 kn={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:vn,splitAll:wn}}};var Pn=function(e,t){let n=e.concat(t),a=vn(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=>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);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 En=function(e,t){let n=vn(t),a=[];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},jn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Nn={union:function(e){e=In(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=In(e,this);let t=En(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=In(e,this);let t=An(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=An(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Pn(e,[t])}),e=jn(e,this.document),this.update(e)};var Gn={methods:kn,api:function(e){Object.assign(e.prototype,Nn)}};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 xn=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: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=Dn(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 Tn=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 Cn=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 On=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 Bn=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=xn(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=Tn(r,t.hooks);return o=Cn(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),On(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===Bn(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 Vn=/ /,Fn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Vn.test(t))!function(e,t,n,a){let r=t.split(Vn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nSn(e,t,n,a))};var Hn=Sn;var Jn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Rn=e=>(e=e||"").trim(),Un=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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=Mn({});return e.forEach(e=>{if((e=Mn(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(Mn),t);var t},Qn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Kn(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},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},_n={text:Qn,txt:Qn,array:Zn,flat:Zn},Yn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Qn(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Xn=e=>{Kn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},ea=/\//;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=Rn(e),!ea.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Rn(e),t)),this;e=Rn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Rn(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 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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(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 Xn(this.json),Yn(this.json,e)}debug(){return Xn(this.json),Yn(this.json,"debug"),this}}const ta=function(e){let t=Un(e);return new g$1(t)};ta.prototype.plugin=function(e){e(this)};var na={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const aa=function(e){if(na.hasOwnProperty(e.id))return na[e.id];if(na.hasOwnProperty(e.is))return na[e.is];let t=e._cache.parents.find(e=>na[e]);return na[t]};var ra=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:aa(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 oa=function(e){return e?"string"==typeof e?[e]:e:[]};var ia=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=oa(e[t].children),e[t].not=oa(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 sa={one:{setTag:Hn,unTag:Jn,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=ia(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 ta(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ra(n)}}};const la=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ua={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||""),la(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 la(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 ca=function(e){Object.assign(e.prototype,ua)};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 ha=new Set(["Auxiliary","Possessive"]);var ga={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(ha.has(e)||!t.hasOwnProperty(n))return 1;if(ha.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:sa,api:ca,lib:da};const ma=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,pa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var fa=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 Ba=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,za=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Va=/['’]/,Fa=/^[a-z]\.([a-z]\.)+/i,$a=/^[-+.][0-9]/,Sa=/^'[0-9]{2}/;var Ha=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ba,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$a.test(e)?"'"===n&&Sa.test(e)?(n="",t):"":(n="",t)))).replace(za,r=>(a=r,Va.test(r)&&/[sn]['’]$/.test(t)&&!1===Va.test(n)?(a=a.replace(Va,""),"'"):!0===Fa.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Ja=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 Ma=/([A-Z]\.)+[A-Z]?,?$/,La=/^[A-Z]\.,?$/,Wa=/[A-Z]{2,}('s|,)?$/,Ka=/([a-z]\.)+[a-z]\.?$/;var qa=function(e){return function(e){return!0===Ma.test(e)||!0===Ka.test(e)||!0===La.test(e)||!0===Wa.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ra=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ja(a),a=n(a,t),a=qa(a),e.normal=a};var Ua={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:Ea,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(Ca);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=Da(n),n=Na(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ha(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=>{Ra(e,t)}),n})}}}};var Qa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Za={},_a={};[[["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=>{Za[t]=!0,_a[t]="Abbreviation",void 0!==e[1]&&(_a[t]=[_a[t],e[1]])})});var Ya=["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 Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},er={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){er[t]=e}))}));const tr=/\//,nr=/[a-z]\.[a-z]/i,ar=/[0-9]/;var rr=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])),tr.test(n)&&!nr.test(n)&&!ar.test(n)){let t=n.split(tr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const or=/^\p{Letter}+-\p{Letter}+$/u;var ir=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"),or.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var sr=function(e){let t=0,n=0,a=e.document;for(let e=0;elr(e,rr),machine:e=>lr(e,ir),normal:e=>lr(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 a[e]}),a};const hr={safe:!0,min:3};var gr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=cr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},hr,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(bn),m.extend(St),m.extend(Gn),m.extend(ga),m.plugin(be),m.extend(ur),m.plugin(f),m.extend(De),m.extend(gr),m.extend(Pe),m.extend(zn);var mr={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",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 fr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",br=fr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var yr=function(e){if(void 0!==br[e])return br[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 vr=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=kr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Pr(pr[e]);jr.test(e)?Object.keys(t).forEach(t=>{if(Gr[t]=e,"Noun|Verb"===e){let e=Ir(t,Dr);Gr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Nr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Nr[e]="Emoticon"),delete Nr[""],delete Nr.null,delete Nr[" "];const xr="Adjective";var Tr={beforeTags:{Determiner:xr,Possessive:xr},afterTags:{Adjective:xr},beforeWords:{seem:xr,seemed:xr,seems:xr,feel:xr,feels:xr,felt:xr,appear:xr,appears:xr,appeared:xr,also:xr,over:xr,under:xr,too:xr,it:xr,but:xr,still:xr,really:xr,quite:xr,well:xr,very:xr,deeply:xr,profoundly:xr,extremely:xr,so:xr,badly:xr,mostly:xr,totally:xr,awfully:xr,rather:xr,nothing:xr,something:xr,anything:xr},afterWords:{too:xr,also:xr,or:xr}};const Cr="Gerund";var Or={beforeTags:{Adverb:Cr,Preposition:Cr,Conjunction:Cr},afterTags:{Adverb:Cr,Possessive:Cr,Person:Cr,Pronoun:Cr,Determiner:Cr,Copula:Cr,Preposition:Cr,Conjunction:Cr,Comparative:Cr},beforeWords:{been:Cr,keep:Cr,continue:Cr,stop:Cr,am:Cr,be:Cr,me:Cr,began:Cr,start:Cr,starts:Cr,started:Cr,stops:Cr,stopped:Cr,help:Cr,helps:Cr,avoid:Cr,avoids:Cr,love:Cr,loves:Cr,loved:Cr,hate:Cr,hates:Cr,hated:Cr},afterWords:{you:Cr,me:Cr,her:Cr,him:Cr,them:Cr,their:Cr,it:Cr,this:Cr,there:Cr,on:Cr,about:Cr,for:Cr}};var Br={beforeTags:Object.assign({},Tr.beforeTags,Or.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Tr.afterTags,Or.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Tr.beforeWords,Or.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Tr.afterWords,Or.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const zr="Singular";var Vr={beforeTags:{Determiner:zr,Possessive:zr,Acronym:zr,Noun:zr,Adjective:zr,PresentTense:zr,Gerund:zr,PastTense:zr,Infinitive:zr,Date:zr},afterTags:{Value:zr,Modal:zr,Copula:zr,PresentTense:zr,PastTense:zr,Demonym:zr},beforeWords:{the:zr,with:zr,without:zr,of:zr,for:zr,any:zr,all:zr,on:zr,cut:zr,cuts:zr,save:zr,saved:zr,saves:zr,make:zr,makes:zr,made:zr,minus:zr,plus:zr,than:zr,another:zr,versus:zr,neither:zr,favorite:zr,best:zr,daily:zr,weekly:zr,linear:zr,binary:zr,mobile:zr,lexical:zr,technical:zr,computer:zr,scientific:zr,formal:zr},afterWords:{of:zr,system:zr,aid:zr,method:zr,utility:zr,tool:zr,reform:zr,therapy:zr,philosophy:zr,room:zr,authority:zr,says:zr,said:zr,wants:zr,wanted:zr}};const Fr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var $r={beforeTags:Object.assign({},Tr.beforeTags,Vr.beforeTags,Fr.beforeTags),afterTags:Object.assign({},Tr.afterTags,Vr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Vr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,Vr.afterWords)};const Sr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Hr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Jr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Mr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Lr={beforeTags:Object.assign({},Tr.beforeTags,Sr),afterTags:Object.assign({},Tr.afterTags,Hr),beforeWords:Object.assign({},Tr.beforeWords,Jr),afterWords:Object.assign({},Tr.afterWords,Mr)};const Wr="Infinitive";var Kr={beforeTags:{Modal:Wr,Adverb:Wr,Negative:Wr,Plural:Wr},afterTags:{Determiner:Wr,Adverb:Wr,Possessive:Wr,Preposition:Wr},beforeWords:{i:Wr,we:Wr,you:Wr,they:Wr,to:Wr,please:Wr,will:Wr,have:Wr,had:Wr,would:Wr,could:Wr,should:Wr,do:Wr,did:Wr,does:Wr,can:Wr,must:Wr,us:Wr,me:Wr,he:Wr,she:Wr,it:Wr,being:Wr},afterWords:{the:Wr,me:Wr,you:Wr,him:Wr,her:Wr,them:Wr,it:Wr,a:Wr,an:Wr,up:Wr,down:Wr,by:Wr,out:Wr,off:Wr,under:Wr,when:Wr,all:Wr,to:Wr,because:Wr,although:Wr,before:Wr,how:Wr,otherwise:Wr,together:Wr,though:Wr,yet:Wr}};const qr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Rr={beforeTags:Object.assign({},Tr.beforeTags,Kr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Tr.afterTags,Kr.afterTags,qr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Kr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,Kr.afterWords,{to:void 0})};const Ur={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qr={},Zr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},_r={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Yr={beforeTags:Object.assign({},Or.beforeTags,Vr.beforeTags,Ur),afterTags:Object.assign({},Or.afterTags,Vr.afterTags,Qr),beforeWords:Object.assign({},Or.beforeWords,Vr.beforeWords,Zr),afterWords:Object.assign({},Or.afterWords,Vr.afterWords,_r)};var Xr={beforeTags:Object.assign({},Kr.beforeTags,Vr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Kr.afterTags,Vr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Kr.beforeWords,Vr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Kr.afterWords,Vr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ao={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ro={beforeTags:Object.assign({},to.beforeTags,ao.beforeTags),afterTags:Object.assign({},to.afterTags,ao.afterTags),beforeWords:Object.assign({},to.beforeWords,ao.beforeWords),afterWords:Object.assign({},to.afterWords,ao.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const uo={"Adj|Gerund":Br,"Adj|Noun":$r,"Adj|Past":Lr,"Adj|Present":Rr,"Noun|Verb":Xr,"Noun|Gerund":Yr,"Person|Noun":{beforeTags:Object.assign({},Vr.beforeTags,to.beforeTags),afterTags:Object.assign({},Vr.afterTags,to.afterTags),beforeWords:Object.assign({},Vr.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Vr.afterWords,to.afterWords)},"Person|Date":ro,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,Kr.beforeTags),afterTags:Object.assign({},to.afterTags,Kr.afterTags),beforeWords:Object.assign({},to.beforeWords,Kr.beforeWords),afterWords:Object.assign({},to.afterWords,Kr.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const go="Adjective",mo="Infinitive",po="PresentTense",fo="Singular",bo="PastTense",yo="Adverb",vo="Plural",wo="Verb",ko="LastName",Po="Participle";var Ao=[null,null,{ea:fo,ia:"Noun",ic:go,ly:yo,"'n":wo,"'t":wo},{oed:bo,ued:bo,xed:bo," so":yo,"'ll":"Modal","'re":"Copula",azy:go,eer:"Noun",end:wo,ped:bo,ffy:go,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:go,mum:go,nes:po,nny:go,ous:go,que:go,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:po,eld:bo,ken:Po,ven:Po,ten:Po,ect:mo,ict:mo,ign:mo,ful:go,bal:go},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:go,cted:bo,dged:bo,ield:fo,akis:ko,cede:mo,chuk:ko,czyk:ko,ects:po,ends:wo,enko:ko,ette:fo,wner:fo,fies:po,fore:yo,gate:mo,gone:go,ices:vo,ints:vo,ruct:mo,ines:vo,ions:vo,less:go,llen:go,made:go,nsen:ko,oses:po,ould:"Modal",some:go,sson:ko,tion:fo,tage:"Noun",ique:fo,tive:go,tors:"Noun",vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:go,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:go,nary:go},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:vo,bound:go,ettes:vo,fully:yo,ishes:po,ities:vo,marek:ko,nssen:ko,ology:"Noun",osome:fo,tment:fo,ports:vo,rough:go,tches:po,tieth:"Ordinal",tures:vo,wards:yo,where:yo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:go,borne:go,gnant:go,inant:go,igent:go,atory:go,rient:fo,dient:fo},{auskas:ko,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:ko,borough:"Place",sdottir:ko}];const Eo="Adjective";var Io=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Eo,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Eo,tele:"Noun","pro-":Eo,"mis-":"Verb","dis-":"Verb","pre-":Eo},{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:Eo,radio:"Noun",tetra:"Noun","omni-":Eo,"post-":Eo},{pseudo:Eo,"extra-":Eo,"hyper-":Eo,"inter-":Eo,"intra-":Eo,"deca-":Eo},{electro:"Noun"}];const jo="Adjective",No="Infinitive",Go="PresentTense",Do="Singular",xo="PastTense",To="Expression",Co="LastName";var Oo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Co],[/.[^aeiou]ica$/,Do,"harmonica"],[/^([hyj]a+)+$/,To,"haha"]],c:[[/.[^aeiou]ic$/,jo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,xo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,xo,"rammed"],[/.[aeiou][sg]hed$/,xo,"gushed"],[/.[aeiou]red$/,xo,"hired"],[/.[aeiou]r?ried$/,xo,"hurried"],[/[^aeiou]ard$/,Do,"steward"],[/[aeiou][^aeiou]id$/,jo,""],[/.[vrl]id$/,jo,"livid"],[/..led$/,xo,"hurled"],[/.[iao]sed$/,xo,""],[/[aeiou]n?[cs]ed$/,xo,""],[/[aeiou][rl]?[mnf]ed$/,xo,""],[/[aeiou][ns]?c?ked$/,xo,"bunked"],[/[aeiou]gned$/,xo],[/[aeiou][nl]?ged$/,xo],[/.[tdbwxyz]ed$/,xo],[/[^aeiou][aeiou][tvx]ed$/,xo],[/.[cdflmnprstv]ied$/,xo,"emptied"]],e:[[/.[lnr]ize$/,No,"antagonize"],[/.[^aeiou]ise$/,No,"antagonise"],[/.[aeiou]te$/,No,"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$/,Co,"..ovich"],[/^ug?h+$/,To,"ughh"],[/^uh[ -]?oh$/,To,"uhoh"],[/[a-z]-ish$/,jo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Co,"polish-male"]],k:[[/^(k){2}$/,To,"kkkk"]],l:[[/.[gl]ial$/,jo,"familial"],[/.[^aeiou]ful$/,jo,"fitful"],[/.[nrtumcd]al$/,jo,"natal"],[/.[^aeiou][ei]al$/,jo,"familial"]],m:[[/.[^aeiou]ium$/,Do,"magnesium"],[/[^aeiou]ism$/,Do,"schism"],[/^[hu]m+$/,To,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,jo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,To,"noooo"],[/^(yo)+$/,To,"yoo"],[/^wo{2,}[pt]?$/,To,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Do],[/[^i]fer$/,No],[/.[^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$/,Go],[/.[rln]ates$/,Go],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Do],[/.[aeiou]sks$/,Go],[/.[aeiou]kes$/,Go],[/[aeiou][^aeiou]is$/,Do],[/[a-z]'s$/,"Noun"],[/^yes+$/,To]],v:[[/.[^aeiou][ai][kln]ov$/,Co]],y:[[/.[cts]hy$/,jo],[/.[st]ty$/,jo],[/.[tnl]ary$/,jo],[/.[oe]ry$/,Do],[/[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$/,Do]]};const Bo="Verb",zo="Noun";var Vo={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"},$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"},So={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"},Ho={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"},Jo={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 Mo=/^.([0-9]+)/;var Lo=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(Mo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Mo,"")}(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},Ko=/^([0-9]+)/,qo=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 a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(Ko,"")]}(n[0],n[1])})};var Ro=function(e={}){return(e=Object.assign({},e)).rules=qo(e.rules),e.rules=Wo(e.rules),e.rev&&(e.rev=qo(e.rev),e.rev=Wo(e.rev)),e.exceptions=qo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Uo=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 Qo=Ro({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=Ro(Ho),_o=Ro($o),Yo=Ro(So),Xo=Uo(Qo),ei=Uo(Zo),ti=Uo(_o),ni=Uo(Yo),ai=Ro(Fo),ri=Ro(Jo);var oi={fromPast:Qo,fromPresent:Zo,fromGerund:_o,fromParticiple:Yo,toPast:Xo,toPresent:ei,toGerund:ti,toParticiple:ni,toComparative:ai,toSuperlative:ri,fromComparative:Uo(ai),fromSuperlative:Uo(ri)},ii=["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),{}),si=[[/([^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 li=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(ui[t].forEach(n=>e[n]=t),e),{});var ci=ui;var di=function(e){let t=e.substring(e.length-3);if(!0===ci.hasOwnProperty(t))return ci[t];let n=e.substring(e.length-2);return!0===ci.hasOwnProperty(n)?ci[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const hi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var gi=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)),hi.hasOwnProperty(e))c=hi[e];else if("Participle"===n)c=Lo(l,i);else if("PastTense"===n)c=Lo(l,a);else if("PresentTense"===n)c=Lo(l,r);else{if("Gerund"!==n)return e;c=Lo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var mi=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:Lo(i,n),PresentTense:Lo(i,a),Gerund:Lo(i,r),FutureTense:"will "+e},u=Lo(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 fi="ically",bi=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]),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"}],vi=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"]),wi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var ki=function(e){return e.endsWith("ly")?bi.has(e)?e.replace(/ically/,"ical"):vi.has(e)?null:wi.hasOwnProperty(e)?wi[e]:pi(e,yi)||e:null};const Pi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ai={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ei=function(e){if(Ai.hasOwnProperty(e))return Ai[e];let t=pi(e,Pi);return t||e+"ly"};const Ii=[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"},Ni=new Set(["terrible","annoying"]);const Gi=function(e,t){const n=t.two.models.toSuperlative;return Lo(e,n)},Di=function(e,t){const n=t.two.models.toComparative;return Lo(e,n)};var xi={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 Ti={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===xi.hasOwnProperty(i)&&xi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Ir,nounToSingular:li,verbToInfinitive:gi,getTense:di,verbConjugate:mi,adjToSuperlative:Gi,adjToComparative:Di,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Lo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Lo(e,n)},advToAdjective:ki,adjToAdverb:Ei,adjToNoun:function(e){if(ji.hasOwnProperty(e))return ji[e];if(Ni.has(e))return null;let t=pi(e,Ii);return t||e+"ness"}}}};var Ci=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 Oi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Bi=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=Oi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Oi(a,"Infinitive","Verb"),Object.assign(s,l),l=Oi(r,"Infinitive","Gerund"),Object.assign(s,l),l=Oi(o,"Adjective","Superlative"),Object.assign(s,l),l=Oi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let zi={two:{models:oi}};const Vi={"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:Ti};let{lex:a,_multi:r}=Ti.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},$i=function(e,t,n){let a=mi(e,zi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Si=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Vi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||$i(r,a,!1),"Adj|Present"===o&&($i(r,a,!0),function(e,t,n){let a=Gi(e,n);t[a]=t[a]||"Superlative";let r=Di(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=gi(r,zi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=gi(r,zi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Fi(n,t)};let Hi={one:{_multiCache:{},lexicon:Nr},two:{irregularPlurals:mr,models:oi,suffixPatterns:Ao,prefixPatterns:Io,endsWith:Oo,neighbours:Vo,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:Gr,clues:ho,uncountable:{},orgWords:ii}};Hi=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=Si(e.two.switches,e),e=Bi(e),e=Ci(e)}(Hi);var Ji=Hi;const Mi=/^(under|over|mis|re|un|dis|semi)-?/;var Li=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(Mi.test(r.normal)){let e=r.normal.replace(Mi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Wi=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 Ki={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},qi=new Set(["formulas","koalas","israelis","menus"]),Ri=["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 Ui=function(e){if(!e||e.length<=3)return!1;if(qi.has(e))return!0;let t=e[e.length-1];return Ki.hasOwnProperty(t)?Ki[t].find(t=>e.endsWith(t)):"s"===t&&!Ri.find(t=>e.endsWith(t))};const Qi=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Zi=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(Ui(e.normal)?Wi(e,"Plural","3-plural-guess"):Wi(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&&Wi(e,t,"3-verb-tense-guess")}}(a)};const _i=/^\p{Lu}[\p{Ll}'’]/u,Yi=/[0-9]/,Xi=["Date","Month","WeekDay","Unit"],es=/^[IVXLCDM]{2,}$/,ts=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ns={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var as=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===_i.test(o)&&!1===Yi.test(o)?Xi.find(e=>a.tags.has(e))?null:(Zi(e,t,n),a.tags.has("Noun")||a.tags.clear(),Wi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&es.test(o)&&ts.test(o)&&!ns[a.normal]?(Wi(a,"RomanNumeral","2-xvii"),!0):null};const rs=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 os=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=rs(a.normal,n.two.suffixPatterns);if(null!==e)return Wi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=rs(a.implicit,n.two.suffixPatterns),null!==e))return Wi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const is=/['‘’‛‵′`´]/,ss=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 Wi(a,e,"2-prefix"),a.confidence=.5,!0}return null};const cs=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!!cs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},hs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},gs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ms=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 Wi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(hs(r)||hs(o))return Wi(n,"Year","2-tagYear-close");if(gs(e[t-2])||gs(e[t+2]))return Wi(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 Wi(n,"Year","2-tagYear-noun")}}}return null};const ps=/^[A-Z]('s|,)?$/,fs=/^[A-Z-]+$/,bs=/([A-Z]\.)+[A-Z]?,?$/,ys=/[A-Z]{2,}('s|,)?$/,vs=/([a-z]\.)+[a-z]\.?$/,ws={I:!0,A:!0};var ks=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||ws.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==bs.test(n)&&!0!==vs.test(n)&&!0!==ps.test(n)&&!0!==ys.test(n))}(a,n)?(a.tags.clear(),Wi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!ws.hasOwnProperty(a.text)&&ps.test(a.text)?(a.tags.clear(),Wi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Wi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&fs.test(a.text)&&a.text.length<=6?(Wi(a,"Acronym","3-titlecase-acronym"),!0):null};const Ps=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},As=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Es=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||Ps(e[t-1],r),l=l||Ps(e[t+1],o),l=l||As(e[t-1],a),l=l||As(e[t+1],i),l)return Wi(s,l,"3-[neighbour]"),Zi(e,t,n),e[t].confidence=.2,!0}return null};const Is=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 a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Is(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Is(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Ns=function(e,t,n){0===e[t].tags.size&&(Wi(e[t],"Noun","3-[fallback]"),Zi(e,t,n),e[t].confidence=.1)};const Gs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ds=(e,t,n)=>0!==t||e[1]?null:n;var xs={"Adj|Gerund":(e,t)=>Gs(e,t),"Adj|Noun":(e,t)=>Gs(e,t),"Adj|Past":(e,t)=>Gs(e,t),"Adj|Present":(e,t)=>Gs(e,t),"Noun|Gerund":(e,t)=>Gs(e,t),"Noun|Verb":(e,t)=>Gs(e,t)||Ds(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Gs(e,t)||Ds(e,t,"PresentTense"),"Person|Noun":(e,t)=>Gs(e,t),"Person|Verb":(e,t)=>0!==t&&Gs(e,t)};const Ts="undefined"!=typeof process&&process.env?process.env:self.env||{},Cs=/^(under|over|mis|re|un|dis|semi)-?/,Os=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Ts.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Bs=(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&&Ts.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const zs={tagSwitch:Li,checkSuffix:os,checkRegex:ls,checkCase:as,checkPrefix:us,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")&&(Wi(o,"Verb","3-[prefix]"),Wi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Wi(o,"Adjective","3-[prefix]"),Wi(o,"Prefix","3-[prefix]")))},checkYear:ms},Vs={checkAcronym:ks,neighbours:Es,orgWords:js,nounFallback:Ns,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(Cs.test(l)&&!o[l]&&(l=l.replace(Cs,"")),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=Os(e[t+1],n.afterWords);return o=o||Os(e[t-1],n.beforeWords),o=o||Bs(e[t-1],n.beforeTags,r),o=o||Bs(e[t+1],n.afterTags,r),o}(e,t,i[o],a);xs[o]&&(u=xs[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Ts.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Fs=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 Hs={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 Js={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 Ys=/'/;var Xs=function(e,t){let n=e[t].normal.split(Ys)[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 el=/'/;var tl=function(e,t){let n=e[t].normal.split(el)[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 nl=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},rl={in:!0,by:!0,for:!0};var ol=(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 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===rl[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 il=/'/,sl=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)},ll={d:(e,t)=>tl(e,t),t:(e,t)=>nl(e,t),s:(e,t,n)=>ol(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Xs(e,t)},ul=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var cl={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===il.test(a[o].normal)&&([,i]=a[o].normal.split(il));let s=null;ll.hasOwnProperty(i)&&(s=ll[i](a,o,t)),s&&(s=ul(s,e),_s(n,[r,o],s),sl(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=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=Qs},hooks:["contractionTwo"]};const dl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const hl=["i","we","they"];let gl=[].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:hl,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:hl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:hl,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 ml=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(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;ml=ml||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(ml),e.uncache(),e}},model:{two:{matches:gl}},hooks:["postTagger"]};var fl=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 a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?fl(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 yl={api:function(e){e.prototype.swap=bl}};m.plugin(qs),m.plugin(cl),m.plugin(pl),m.plugin(yl);export{m as default}; diff --git a/changelog.md b/changelog.md index 3683d35a1..79792a9f1 100644 --- a/changelog.md +++ b/changelog.md @@ -7,6 +7,7 @@ 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.0 [June 2021] diff --git a/scratch.js b/scratch.js index ec8077c94..cd5f1fb06 100644 --- a/scratch.js +++ b/scratch.js @@ -3,7 +3,7 @@ import nlp from './src/two.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -nlp.verbose('tagger') +// nlp.verbose('tagger') let txt = '' // tagging/root issues June 10 @@ -46,12 +46,8 @@ txt = "Let’s get you into wardrobe for a fitting." // { match: m } // ] // let net = nlp.buildNet(matches) -let doc = nlp(txt) -// console.log(doc.docs) -// doc.debug() -// doc.verbs().toFutureTense() -// doc.match(net).debug() -doc.debug() +let doc = nlp('fruit salad. food-safety') +console.log(doc.json({ hash: true })) // banks wear // %Plural|Verb% %Noun|Verb% diff --git a/src/1-one/output/api/json.js b/src/1-one/output/api/json.js index b93aa3489..a70380836 100644 --- a/src/1-one/output/api/json.js +++ b/src/1-one/output/api/json.js @@ -1,5 +1,8 @@ -import { textFromTerms } from './_text.js' +import { textFromTerms } from './lib/_text.js' import fmts from './_fmts.js' +import hash from './lib/hash.js' + + const defaults = { text: true, terms: true, @@ -12,15 +15,15 @@ const merge = function (a, b) { } const fns = { - text: (terms) => { - return textFromTerms(terms, { keepPunct: true }, false) - }, + text: (terms) => textFromTerms(terms, { keepPunct: true }, false), normal: (terms) => textFromTerms(terms, merge(fmts.normal, { keepPunct: true }), false), implicit: (terms) => textFromTerms(terms, merge(fmts.implicit, { keepPunct: true }), false), machine: (terms) => textFromTerms(terms, opts, false), root: (terms) => textFromTerms(terms, merge(opts, { form: 'root' }), false), + hash: (terms) => hash(textFromTerms(terms, { keepPunct: true }, false)), + offset: (terms) => { let len = fns.text(terms).length return { diff --git a/src/1-one/output/api/_text.js b/src/1-one/output/api/lib/_text.js similarity index 100% rename from src/1-one/output/api/_text.js rename to src/1-one/output/api/lib/_text.js diff --git a/src/1-one/output/api/lib/hash.js b/src/1-one/output/api/lib/hash.js new file mode 100644 index 000000000..129221af8 --- /dev/null +++ b/src/1-one/output/api/lib/hash.js @@ -0,0 +1,73 @@ +/* eslint-disable no-bitwise */ +/* eslint-disable no-mixed-operators */ +/* eslint-disable no-multi-assign */ + +// https://github.com/jbt/tiny-hashes/ +let k = [], i = 0; +for (; i < 64;) { + k[i] = 0 | Math.sin(++i % Math.PI) * 4294967296; +} + +export default 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 = j = 0; i < s; i += 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 | [ + 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')) \ 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 19fc13048..e5c1ffe39 100644 --- a/src/1-one/output/api/out.js +++ b/src/1-one/output/api/out.js @@ -1,6 +1,6 @@ import debug from './debug/index.js' import wrap from './wrap.js' - +import hash from './lib/hash.js' const isObject = val => { return Object.prototype.toString.call(val) === '[object Object]' @@ -35,6 +35,9 @@ const out = function (method) { if (method === 'machine' || method === 'reduced') { return this.text('machine') } + if (method === 'hash' || method === 'md5') { + return hash(this.text()) + } // json data formats if (method === 'json') { diff --git a/src/1-one/output/api/text.js b/src/1-one/output/api/text.js index 7106f804e..7de7360c8 100644 --- a/src/1-one/output/api/text.js +++ b/src/1-one/output/api/text.js @@ -1,4 +1,4 @@ -import { textFromDoc } from './_text.js' +import { textFromDoc } from './lib/_text.js' import fmts from './_fmts.js' const isObject = val => { diff --git a/src/1-one/output/plugin.js b/src/1-one/output/plugin.js index 470c20845..3d5412f2a 100644 --- a/src/1-one/output/plugin.js +++ b/src/1-one/output/plugin.js @@ -1,5 +1,11 @@ import api from './api/index.js' +import hash from './api/lib/hash.js' export default { api, + methods: { + one: { + hash + } + } } diff --git a/src/3-three/chunker/compute/03-matcher.js b/src/3-three/chunker/compute/03-matcher.js index 6976c2267..8a9cf6eaf 100644 --- a/src/3-three/chunker/compute/03-matcher.js +++ b/src/3-three/chunker/compute/03-matcher.js @@ -67,7 +67,7 @@ const rules = [ let net = null const matcher = function (view, _, world) { - const { methods, model } = world + const { methods } = world net = net || methods.one.buildNet(rules, world) view.sweep(net) } diff --git a/src/3-three/verbs/api/debug.js b/src/3-three/verbs/api/debug.js index 9ae563fd1..c04dbeab3 100644 --- a/src/3-three/verbs/api/debug.js +++ b/src/3-three/verbs/api/debug.js @@ -1,6 +1,6 @@ /* eslint-disable no-console */ import parseVerb from './parse/index.js' - +console.log('HELLOOO') const reset = '\x1b[0m' const yellow = str => `\x1b[2m\x1b[33m\x1b[3m ${str} ${reset}` const bgGreen = str => `\x1b[42m\x1b[30m •${str}• ${reset}` diff --git a/tests/one/output/hash.test.js b/tests/one/output/hash.test.js new file mode 100644 index 000000000..520dc2234 --- /dev/null +++ b/tests/one/output/hash.test.js @@ -0,0 +1,28 @@ +import test from 'tape' +import nlp from '../_lib.js' +const here = '[one/hash] ' + +test('json-hash', function (t) { + let doc = nlp('fruit salad. food-safety') + let json = doc.json({ hash: true }) + t.equal(json[0].hash, '3fd5b169e2574a4591ba0127db79a4ca', here + 'fruit salad') + t.equal(json[1].hash, '68e1fcbeb2b9f8003a97fd2476ef6f2b', here + 'food-safety') + + let same = nlp('food-safety').json({ hash: true }) + t.equal(same[0].hash, json[1].hash, here + 'match') + + let notSame = nlp('food safety').json({ hash: true }) + t.ok(notSame[0].hash !== json[1].hash, here + 'no-match') + + t.end() +}) + + +test('json-out', function (t) { + let a = nlp('food safety').out('hash') + let b = nlp('fOOd Safety').out('hash') + t.equal(a, '88303ab448fe4112e6a2e0aff6eb3ac7', here + 'first one') + t.equal(b, '8d70d1b26433a7fdc007df91e114d4c9', here + 'capitals one') + t.ok(a != b, here + 'capitals-change') + t.end() +}) From c7e38a7e95f10a3980051beb195d490136d3ee41 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 15 Jun 2022 15:59:44 -0400 Subject: [PATCH 13/13] 14.3.1 --- README.md | 2 +- 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 | 5 ++++- package.json | 4 ++-- scratch.js | 17 ++++++++++++++--- src/_version.js | 2 +- 12 files changed, 36 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index e269bf7e9..4cd6c8604 100644 --- a/README.md +++ b/README.md @@ -823,7 +823,7 @@ nlp.extend({ | [Tokenization](https://observablehq.com/@spencermountain/compromise-tokenization) | [Text](https://observablehq.com/@spencermountain/compromise-text) | [Strict](https://observablehq.com/@spencermountain/compromise-strict) | | [Named-Entities](https://observablehq.com/@spencermountain/topics-named-entity-recognition) | [Utils](https://observablehq.com/@spencermountain/compromise-utils) | [Penn-tags](https://observablehq.com/@spencermountain/compromise-penn-tags) | | [Whitespace](https://observablehq.com/@spencermountain/compromise-whitespace) | [Verbs](https://observablehq.com/@spencermountain/verbs) | [Typeahead](https://observablehq.com/@spencermountain/compromise/compromise-typeahead) | -| [World data](https://observablehq.com/@spencermountain/compromise-world) | [Normalization](https://observablehq.com/@spencermountain/compromise-normalization) | | +| [World data](https://observablehq.com/@spencermountain/compromise-world) | [Normalization](https://observablehq.com/@spencermountain/compromise-normalization) | [Sweep](https://observablehq.com/@spencermountain/compromise-sweep) | | [Fuzzy-matching](https://observablehq.com/@spencermountain/compromise-fuzzy-matching) | [Typescript](https://observablehq.com/@spencermountain/compromise-typescript) | [Mutation](https://observablehq.com/@spencermountain/compromise-mutation) | diff --git a/builds/compromise.js b/builds/compromise.js index 44cd1bb1a..6e2fa9aac 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.0";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 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;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()),k(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(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=xe(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&&(Et(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&&(Et(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=Et(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(!xt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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;r>2]|=(i.charCodeAt(u)||128)<>6)+14]=8*s,u=0;u>4]+(bn[a]+(0|o[[a,5*a+1,3*a+5,7*a][s]%16+u])))<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+a++%4])|r>>>32-s),t,n];for(a=4;a;)l[--a]=l[a]+s[a]}for(e="";a<32;)e+=(l[a>>3]>>4*(1^7&a++)&15).toString(16);return e}}}};const yn=function(e,t){if(e[0]!==t[0])return!1;let[,n,r]=e,[,a,o]=t;return n<=a&&r>a||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},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}}},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},En=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},Nn=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=xn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=xn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},In.not=function(e){e=xn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=Nn(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=Nn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=Nn(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},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})},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=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},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},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;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===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),1!=(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,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},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)}},hr=function(e){Object.assign(e.prototype,cr)},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 br=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}},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},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},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: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(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})}}}},_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)},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(vn),m.extend(St),m.extend(Tn),m.extend(mr),m.plugin(be),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 ba=36,va="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ya=va.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var wa=function(e){if(void 0!==ya[e])return ya[e];let t=0,n=1,r=ba,a=1;for(;n=0;n--,a*=ba){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ka=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=Aa(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=ja(fa[e]);Ia.test(e)?Object.keys(t).forEach(t=>{if(Ga[t]=e,"Noun|Verb"===e){let e=Na(t,Da);Ga[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ta[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ta[e]="Emoticon"),delete Ta[""],delete Ta.null,delete Ta[" "];const Ca="Adjective";var Oa={beforeTags:{Determiner:Ca,Possessive:Ca},afterTags:{Adjective:Ca},beforeWords:{seem:Ca,seemed:Ca,seems:Ca,feel:Ca,feels:Ca,felt:Ca,appear:Ca,appears:Ca,appeared:Ca,also:Ca,over:Ca,under:Ca,too:Ca,it:Ca,but:Ca,still:Ca,really:Ca,quite:Ca,well:Ca,very:Ca,deeply:Ca,profoundly:Ca,extremely:Ca,so:Ca,badly:Ca,mostly:Ca,totally:Ca,awfully:Ca,rather:Ca,nothing:Ca,something:Ca,anything:Ca},afterWords:{too:Ca,also:Ca,or:Ca}};const Va="Gerund";var Ba={beforeTags:{Adverb:Va,Preposition:Va,Conjunction:Va},afterTags:{Adverb:Va,Possessive:Va,Person:Va,Pronoun:Va,Determiner:Va,Copula:Va,Preposition:Va,Conjunction:Va,Comparative:Va},beforeWords:{been:Va,keep:Va,continue:Va,stop:Va,am:Va,be:Va,me:Va,began:Va,start:Va,starts:Va,started:Va,stops:Va,stopped:Va,help:Va,helps:Va,avoid:Va,avoids:Va,love:Va,loves:Va,loved:Va,hate:Va,hates:Va,hated:Va},afterWords:{you:Va,me:Va,her:Va,him:Va,them:Va,their:Va,it:Va,this:Va,there:Va,on:Va,about:Va,for:Va}},za={beforeTags:Object.assign({},Oa.beforeTags,Ba.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Oa.afterTags,Ba.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Oa.beforeWords,Ba.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Oa.afterWords,Ba.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const $a="Singular";var Fa={beforeTags:{Determiner:$a,Possessive:$a,Acronym:$a,Noun:$a,Adjective:$a,PresentTense:$a,Gerund:$a,PastTense:$a,Infinitive:$a,Date:$a},afterTags:{Value:$a,Modal:$a,Copula:$a,PresentTense:$a,PastTense:$a,Demonym:$a},beforeWords:{the:$a,with:$a,without:$a,of:$a,for:$a,any:$a,all:$a,on:$a,cut:$a,cuts:$a,save:$a,saved:$a,saves:$a,make:$a,makes:$a,made:$a,minus:$a,plus:$a,than:$a,another:$a,versus:$a,neither:$a,favorite:$a,best:$a,daily:$a,weekly:$a,linear:$a,binary:$a,mobile:$a,lexical:$a,technical:$a,computer:$a,scientific:$a,formal:$a},afterWords:{of:$a,system:$a,aid:$a,method:$a,utility:$a,tool:$a,reform:$a,therapy:$a,philosophy:$a,room:$a,authority:$a,says:$a,said:$a,wants:$a,wanted:$a}};const Sa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ha={beforeTags:Object.assign({},Oa.beforeTags,Fa.beforeTags,Sa.beforeTags),afterTags:Object.assign({},Oa.afterTags,Fa.afterTags),beforeWords:Object.assign({},Oa.beforeWords,Fa.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Oa.afterWords,Fa.afterWords)};const Ma={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},La={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Wa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ja={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({},Oa.beforeTags,Ma),afterTags:Object.assign({},Oa.afterTags,La),beforeWords:Object.assign({},Oa.beforeWords,Wa),afterWords:Object.assign({},Oa.afterWords,Ja)};const Ka="Infinitive";var Ra={beforeTags:{Modal:Ka,Adverb:Ka,Negative:Ka,Plural:Ka},afterTags:{Determiner:Ka,Adverb:Ka,Possessive:Ka,Preposition:Ka},beforeWords:{i:Ka,we:Ka,you:Ka,they:Ka,to:Ka,please:Ka,will:Ka,have:Ka,had:Ka,would:Ka,could:Ka,should:Ka,do:Ka,did:Ka,does:Ka,can:Ka,must:Ka,us:Ka,me:Ka,he:Ka,she:Ka,it:Ka,being:Ka},afterWords:{the:Ka,me:Ka,you:Ka,him:Ka,her:Ka,them:Ka,it:Ka,a:Ka,an:Ka,up:Ka,down:Ka,by:Ka,out:Ka,off:Ka,under:Ka,when:Ka,all:Ka,to:Ka,because:Ka,although:Ka,before:Ka,how:Ka,otherwise:Ka,together:Ka,though:Ka,yet:Ka}};const Ua={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Qa={beforeTags:Object.assign({},Oa.beforeTags,Ra.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Oa.afterTags,Ra.afterTags,Ua.afterTags),beforeWords:Object.assign({},Oa.beforeWords,Ra.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Oa.afterWords,Ra.afterWords,{to:void 0})};const _a={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Za={},Ya={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Xa={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var eo={beforeTags:Object.assign({},Ba.beforeTags,Fa.beforeTags,_a),afterTags:Object.assign({},Ba.afterTags,Fa.afterTags,Za),beforeWords:Object.assign({},Ba.beforeWords,Fa.beforeWords,Ya),afterWords:Object.assign({},Ba.afterWords,Fa.afterWords,Xa)},to={beforeTags:Object.assign({},Ra.beforeTags,Fa.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ra.afterTags,Fa.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ra.beforeWords,Fa.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ra.afterWords,Fa.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const no="Person";var ro={beforeTags:{Honorific:no,Person:no,Preposition:no},afterTags:{Person:no,ProperNoun:no,Verb:no},ownTags:{ProperNoun:no},beforeWords:{hi:no,hey:no,yo:no,dear:no,hello:no},afterWords:{said:no,says:no,told:no,tells:no,feels:no,felt:no,seems:no,thinks:no,thought:no,spends:no,spendt:no,plays:no,played:no,sing:no,sang:no,learn:no,learned:no,wants:no,wanted:no}};const ao="Month",oo={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 io={beforeTags:Object.assign({},ro.beforeTags,oo.beforeTags),afterTags:Object.assign({},ro.afterTags,oo.afterTags),beforeWords:Object.assign({},ro.beforeWords,oo.beforeWords),afterWords:Object.assign({},ro.afterWords,oo.afterWords)};const so={Place:"Place"},lo={Place:"Place",Abbreviation:"Place"},uo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},ho={"Adj|Gerund":za,"Adj|Noun":Ha,"Adj|Past":qa,"Adj|Present":Qa,"Noun|Verb":to,"Noun|Gerund":eo,"Person|Noun":{beforeTags:Object.assign({},Fa.beforeTags,ro.beforeTags),afterTags:Object.assign({},Fa.afterTags,ro.afterTags),beforeWords:Object.assign({},Fa.beforeWords,ro.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Fa.afterWords,ro.afterWords)},"Person|Date":io,"Person|Verb":{beforeTags:Object.assign({},ro.beforeTags,Ra.beforeTags),afterTags:Object.assign({},ro.afterTags,Ra.afterTags),beforeWords:Object.assign({},ro.beforeWords,Ra.beforeWords),afterWords:Object.assign({},ro.afterWords,Ra.afterWords)},"Person|Place":{beforeTags:Object.assign({},so,ro.beforeTags),afterTags:Object.assign({},lo,ro.afterTags),beforeWords:Object.assign({},uo,ro.beforeWords),afterWords:Object.assign({},co,ro.afterWords)}},po=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};ho["Plural|Verb"]={beforeWords:po(ho["Noun|Verb"].beforeWords,{}),afterWords:po(ho["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:po(ho["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:po(ho["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var mo=ho;const go="Adjective",fo="Infinitive",bo="PresentTense",vo="Singular",yo="PastTense",wo="Adverb",ko="Plural",Po="Actor",Ao="Verb",jo="Noun",Eo="LastName",xo="Modal",No="Participle";var Io=[null,null,{ea:vo,ia:jo,ic:go,ly:wo,"'n":Ao,"'t":Ao},{oed:yo,ued:yo,xed:yo," so":wo,"'ll":xo,"'re":"Copula",azy:go,eer:jo,end:Ao,ped:yo,ffy:go,ify:fo,ing:"Gerund",ize:fo,ibe:fo,lar:go,mum:go,nes:bo,nny:go,ous:go,que:go,rol:vo,sis:vo,ogy:vo,oid:vo,ian:vo,zes:bo,eld:yo,ken:No,ven:No,ten:No,ect:fo,ict:fo,ign:fo,ful:go,bal:go},{amed:yo,aped:yo,ched:yo,lked:yo,rked:yo,reed:yo,nded:yo,mned:go,cted:yo,dged:yo,ield:vo,akis:Eo,cede:fo,chuk:Eo,czyk:Eo,ects:bo,ends:Ao,enko:Eo,ette:vo,wner:vo,fies:bo,fore:wo,gate:fo,gone:go,ices:ko,ints:ko,ruct:fo,ines:ko,ions:ko,less:go,llen:go,made:go,nsen:Eo,oses:bo,ould:xo,some:go,sson:Eo,tion:vo,tage:jo,ique:vo,tive:go,tors:jo,vice:vo,lier:vo,fier:vo,wned:yo,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:go,vide:fo,ract:fo,duce:fo,pose:fo,eive:fo,lyze:fo,lyse:fo,iant:go,nary:go},{elist:vo,holic:vo,phite:vo,tized:yo,urned:yo,eased:yo,ances:ko,bound:go,ettes:ko,fully:wo,ishes:bo,ities:ko,marek:Eo,nssen:Eo,ology:jo,osome:vo,tment:vo,ports:ko,rough:go,tches:bo,tieth:"Ordinal",tures:ko,wards:wo,where:wo,archy:jo,pathy:jo,opoly:jo,embly:jo,phate:jo,ndent:vo,scent:vo,onist:vo,anist:vo,alist:vo,olist:vo,icist:vo,ounce:fo,iable:go,borne:go,gnant:go,inant:go,igent:go,atory:go,rient:vo,dient:vo},{auskas:Eo,parent:vo,cedent:vo,ionary:vo,cklist:vo,keeper:Po,logist:Po,teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const To="Adjective",Go="Noun",Do="Verb";var Co=[null,null,{},{neo:Go,bio:Go,"de-":Do,"re-":Do,"un-":Do},{anti:Go,auto:Go,faux:To,hexa:Go,kilo:Go,mono:Go,nano:Go,octa:Go,poly:Go,semi:To,tele:Go,"pro-":To,"mis-":Do,"dis-":Do,"pre-":To},{anglo:Go,centi:Go,ethno:Go,ferro:Go,grand:Go,hepta:Go,hydro:Go,intro:Go,macro:Go,micro:Go,milli:Go,nitro:Go,penta:Go,quasi:To,radio:Go,tetra:Go,"omni-":To,"post-":To},{pseudo:To,"extra-":To,"hyper-":To,"inter-":To,"intra-":To,"deca-":To},{electro:Go}];const Oo="Adjective",Vo="Infinitive",Bo="PresentTense",zo="Singular",$o="PastTense",Fo="Adverb",So="Expression",Ho="Actor",Mo="Verb",Lo="Noun",Wo="LastName";var Jo={a:[[/.[aeiou]na$/,Lo,"tuna"],[/.[oau][wvl]ska$/,Wo],[/.[^aeiou]ica$/,zo,"harmonica"],[/^([hyj]a+)+$/,So,"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$/,Wo,"..ovich"],[/^ug?h+$/,So,"ughh"],[/^uh[ -]?oh$/,So,"uhoh"],[/[a-z]-ish$/,Oo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Wo,"polish-male"]],k:[[/^(k){2}$/,So,"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+$/,So,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oo,"republican"],[/[^aeiou]ician$/,Ho,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,So,"noooo"],[/^(yo)+$/,So,"yoo"],[/^wo{2,}[pt]?$/,So,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,zo],[/[^i]fer$/,Vo],[/.[^aeiou][ao]pher$/,Ho],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oo],[/[aeiou].*ist$/,Oo],[/^[a-z]et$/,Mo]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,Mo],[/.[lstrn]us$/,zo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,zo],[/[a-z]'s$/,Lo],[/^yes+$/,So]],v:[[/.[^aeiou][ai][kln]ov$/,Wo]],y:[[/.[cts]hy$/,Oo],[/.[st]ty$/,Oo],[/.[tnl]ary$/,Oo],[/.[oe]ry$/,zo],[/[rdntkbhs]ly$/,Fo],[/.(gg|bb|zz)ly$/,Oo],[/...lly$/,Fo],[/.[gk]y$/,Oo],[/[bszmp]{2}y$/,Oo],[/.[ai]my$/,Oo],[/[ea]{2}zy$/,Oo],[/.[^aeiou]ity$/,zo]]};const qo="Verb",Ko="Noun";var Ro={leftTags:[["Adjective",Ko],["Possessive",Ko],["Determiner",Ko],["Adverb",qo],["Pronoun",qo],["Value",Ko],["Ordinal",Ko],["Modal",qo],["Superlative",Ko],["Demonym",Ko],["Honorific","Person"]],leftWords:[["i",qo],["first",Ko],["it",qo],["there",qo],["not",qo],["because",Ko],["if",Ko],["but",Ko],["who",qo],["this",Ko],["his",Ko],["when",Ko],["you",qo],["very","Adjective"],["old",Ko],["never",qo],["before",Ko],["a","Singular"],["the",Ko],["been",qo]],rightTags:[["Copula",Ko],["PastTense",Ko],["Conjunction",Ko],["Modal",Ko]],rightWords:[["there",qo],["me",qo],["man","Adjective"],["only",qo],["him",qo],["it",qo],["were",Ko],["took",Ko],["himself",qo],["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"},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"},_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"},Zo={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"},Yo={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 ei=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},ni=/^([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(ni);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ni,"")]}(n[0],n[1])})};var ai=function(e={}){return(e=Object.assign({},e)).rules=ri(e.rules),e.rules=ti(e.rules),e.rev&&(e.rev=ri(e.rev),e.rev=ti(e.rev)),e.exceptions=ri(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},oi=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 ii=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,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"}),si=ai(Zo),li=ai(Qo),ui=ai(_o),ci=oi(ii),hi=oi(si),di=oi(li),pi=oi(ui),mi=ai(Uo),gi=ai(Yo);var fi={fromPast:ii,fromPresent:si,fromGerund:li,fromParticiple:ui,toPast:ci,toPresent:hi,toGerund:di,toParticiple:pi,toComparative:mi,toSuperlative:gi,fromComparative:oi(mi),fromSuperlative:oi(gi)},bi=["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,""]],yi=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(wi[t].forEach(n=>e[n]=t),e),{});var ki=wi,Pi=function(e){let t=e.substring(e.length-3);if(!0===ki.hasOwnProperty(t))return ki[t];let n=e.substring(e.length-2);return!0===ki.hasOwnProperty(n)?ki[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ai={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ji=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)),Ai.hasOwnProperty(e))c=Ai[e];else if("Participle"===n)c=ei(l,i);else if("PastTense"===n)c=ei(l,r);else if("PresentTense"===n)c=ei(l,a);else{if("Gerund"!==n)return e;c=ei(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:ei(i,n),PresentTense:ei(i,r),Gerund:ei(i,a),FutureTense:"will "+e},u=ei(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},xi=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 Ni="ically",Ii=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]),Ti=[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"]),Di={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")?Ii.has(e)?e.replace(/ically/,"ical"):Gi.has(e)?null:Di.hasOwnProperty(e)?Di[e]:xi(e,Ti)||e:null};const Oi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Vi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Bi=function(e){if(Vi.hasOwnProperty(e))return Vi[e];let t=xi(e,Oi);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"}],$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"},Fi=new Set(["terrible","annoying"]),Si=function(e,t){const n=t.two.models.toSuperlative;return ei(e,n)},Hi=function(e,t){const n=t.two.models.toComparative;return ei(e,n)};var Mi={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"]}},Li={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===Mi.hasOwnProperty(i)&&Mi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Na,nounToSingular:yi,verbToInfinitive:ji,getTense:Pi,verbConjugate:Ei,adjToSuperlative:Si,adjToComparative:Hi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ei(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ei(e,n)},advToAdjective:Ci,adjToAdverb:Bi,adjToNoun:function(e){if($i.hasOwnProperty(e))return $i[e];if(Fi.has(e))return null;let t=xi(e,zi);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 Ji=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var qi=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=Ji(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ji(r,"Infinitive","Verb"),Object.assign(s,l),l=Ji(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ji(o,"Adjective","Superlative"),Object.assign(s,l),l=Ji(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ki={two:{models:fi}};const Ri={"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:Li};let{lex:r,_multi:a}=Li.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=Ei(e,Ki);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]=Ri[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Qi(a,r,!1),"Adj|Present"===o&&(Qi(a,r,!0),function(e,t,n){let r=Si(e,n);t[r]=t[r]||"Superlative";let a=Hi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ji(a,Ki,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=ji(a,Ki,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ui(n,t)};let Zi={one:{_multiCache:{},lexicon:Ta},two:{irregularPlurals:ga,models:fi,suffixPatterns:Io,prefixPatterns:Co,endsWith:Jo,neighbours:Ro,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:Ga,clues:mo,uncountable:{},orgWords:bi}};Zi=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=qi(e),e=Wi(e)}(Zi);var Yi=Zi;const Xi=/^(under|over|mis|re|un|dis|semi)-?/;var es=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])}},ts=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 ns={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"]),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 os=function(e){if(!e||e.length<=3)return!1;if(rs.has(e))return!0;let t=e[e.length-1];return ns.hasOwnProperty(t)?ns[t].find(t=>e.endsWith(t)):"s"===t&&!as.find(t=>e.endsWith(t))};const is=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ss=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(os(e.normal)?ts(e,"Plural","3-plural-guess"):ts(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&&ts(e,t,"3-verb-tense-guess")}}(r)};const ls=/^\p{Lu}[\p{Ll}'’]/u,us=/[0-9]/,cs=["Date","Month","WeekDay","Unit"],hs=/^[IVXLCDM]{2,}$/,ds=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ps={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===ls.test(o)&&!1===us.test(o)?cs.find(e=>r.tags.has(e))?null:(ss(e,t,n),r.tags.has("Noun")||r.tags.clear(),ts(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&hs.test(o)&&ds.test(o)&&!ps[r.normal]?(ts(r,"RomanNumeral","2-xvii"),!0):null};const gs=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 fs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=gs(r.normal,n.two.suffixPatterns);if(null!==e)return ts(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=gs(r.implicit,n.two.suffixPatterns),null!==e))return ts(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const bs=/['‘’‛‵′`´]/,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 ts(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ks=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!!ks.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},As=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},js=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(Ps(a)||Ps(o))return ts(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(As(a)||As(o))return ts(n,"Year","2-tagYear-close");if(js(e[t-2])||js(e[t+2]))return ts(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 ts(n,"Year","2-tagYear-noun")}}}return null};const xs=/^[A-Z]('s|,)?$/,Ns=/^[A-Z-]+$/,Is=/([A-Z]\.)+[A-Z]?,?$/,Ts=/[A-Z]{2,}('s|,)?$/,Gs=/([a-z]\.)+[a-z]\.?$/,Ds={I:!0,A:!0};var Cs=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||Ds.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Is.test(n)&&!0!==Gs.test(n)&&!0!==xs.test(n)&&!0!==Ts.test(n))}(r,n)?(r.tags.clear(),ts(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ds.hasOwnProperty(r.text)&&xs.test(r.text)?(r.tags.clear(),ts(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ts(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ns.test(r.text)&&r.text.length<=6?(ts(r,"Acronym","3-titlecase-acronym"),!0):null};const Os=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Vs=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||Os(e[t-1],a),l=l||Os(e[t+1],o),l=l||Vs(e[t-1],r),l=l||Vs(e[t+1],i),l)return ts(s,l,"3-[neighbour]"),ss(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 $s=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},Fs=function(e,t,n){0===e[t].tags.size&&(ts(e[t],"Noun","3-[fallback]"),ss(e,t,n),e[t].confidence=.1)};const Ss=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Hs=(e,t,n)=>0!==t||e[1]?null:n;var Ms={"Adj|Gerund":(e,t)=>Ss(e,t),"Adj|Noun":(e,t)=>Ss(e,t),"Adj|Past":(e,t)=>Ss(e,t),"Adj|Present":(e,t)=>Ss(e,t),"Noun|Gerund":(e,t)=>Ss(e,t),"Noun|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ss(e,t),"Person|Verb":(e,t)=>0!==t&&Ss(e,t)};const Ls="undefined"!=typeof process&&process.env?process.env:self.env||{},Ws=/^(under|over|mis|re|un|dis|semi)-?/,Js=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ls.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},qs=(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&&Ls.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Ks={tagSwitch:es,checkSuffix:fs,checkRegex:ys,checkCase:ms,checkPrefix:ws,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")&&(ts(o,"Verb","3-[prefix]"),ts(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ts(o,"Adjective","3-[prefix]"),ts(o,"Prefix","3-[prefix]")))},checkYear:Es},Rs={checkAcronym:Cs,neighbours:Bs,orgWords:$s,nounFallback:Fs,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(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,r){if(!n)return null;const a=r.one.tagSet;let o=Js(e[t+1],n.afterWords);return o=o||Js(e[t-1],n.beforeWords),o=o||qs(e[t-1],n.beforeTags,a),o=o||qs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ms[o]&&(u=Ms[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ls.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)},Zs={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 Ys={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 ul=/'/;var cl=function(e,t){let n=e[t].normal.split(ul)[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 hl=/'/;var dl=function(e,t){let n=e[t].normal.split(hl)[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"]},pl=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},gl={in:!0,by:!0,for:!0};var fl=(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===gl[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 bl=/'/,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)},yl={d:(e,t)=>dl(e,t),t:(e,t)=>pl(e,t),s:(e,t,n)=>fl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):cl(e,t)},wl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var kl={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===bl.test(r[o].normal)&&([,i]=r[o].normal.split(bl));let s=null;yl.hasOwnProperty(i)&&(s=yl[i](r,o,t)),s&&(s=wl(s,e),ll(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=sl.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=il},hooks:["contractionTwo"]};const Pl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Al=["i","we","they"];let jl=[].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: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:"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:Al,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:Al,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Al,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 xl={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:jl}},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)},Il=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},Tl={api:function(e){e.prototype.swap=Il}};m.plugin(rl),m.plugin(kl),m.plugin(xl),m.plugin(Tl);var Gl=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},Dl=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 Cl={this:"Noun",then:"Pivot"};var Ol=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))})},Ml={compute:{chunks:function(e){const{document:t,world:n}=e;Ol(t),Vl(t),$l(e,t,n),Sl(t),Hl(t)}},api:function(e){e.prototype.chunks=Dl,e.prototype.clauses=Gl},hooks:["chunks"]};const Ll=/'s$/;var Wl=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(Ll,""),e.normal=e.normal.replace(Ll,"")})}),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 Jl=/\(/,ql=/\)/,Kl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Jl,"");let t=e[e.length-1];t.post=t.post.replace(ql,"")}),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 Ul={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Ql=RegExp("("+Object.keys(Ul).join("|")+")"),_l=RegExp("("+Object.values(Ul).join("|")+")"),Zl=function(e,t){const n=e[t].pre.match(Ql)[0]||"";if(!n||!Ul[n])return null;const r=Ul[n];for(;t{e[0].pre=e[0].pre.replace(Ql,"");let t=e[e.length-1];t.post=t.post.replace(_l,"")})}(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 Xl=/\./g;var eu=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(Xl,""),e.normal=e.normal.replace(Xl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Xl,""),e.normal=e.normal.replace(Xl,""),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)}},tu=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 nu=(e,t)=>"number"==typeof t?e.eq(t):e,ru=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 au=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=ru(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 nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=nu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=nu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=nu(t,e),new Adjectives(t.document,t.pointer)}};const ou=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},iu=[["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 su=[["emojis","emoji"],["atmentions","atMentions"]];var lu=function(e){iu.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=ou,su.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},uu={api:function(e){lu(e),Wl(e),Rl(e),Yl(e),au(e),tu(e),eu(e)}};const cu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var hu={case:e=>{cu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;cu(e,e=>e.text=n(e.text,t))},whitespace:e=>{cu(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=>{cu(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 du=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),pu="unicode|punctuation|whitespace|acronyms",mu="|case|contractions|parentheses|quotations|emoji|honorifics",gu={light:du(pu),medium:du(pu+mu),heavy:du(pu+mu+"|possessives|adverbs|nouns|verbs")};var fu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=gu[e]),Object.keys(e).forEach(t=>{hu.hasOwnProperty(t)&&hu[t](this,e[t])}),this}}},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 vu=["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 yu=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")},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:wu(e,t),isSubordinate:yu(e),root:t}};const Pu=e=>e.text(),Au=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),ju=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=ku(e);return{root:Pu(t.root),number:ju(t.number),determiner:Pu(t.determiner),adjectives:Au(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const xu={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,xu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",xu),e};const Iu={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,Iu).tag("Singular","toPlural"),e};const Gu=(e,t)=>"number"==typeof t?e.eq(t):e;var Du={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Gu(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 Gu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=ku(e).adjectives;n.found&&(t=t.concat(n))}),Gu(t,e)}toPlural(e){return Gu(this,e).map(e=>Nu(e,ku(e)))}toSingular(e){return Gu(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=Gu(t,e),new Nouns(this.document,t.pointer)}}},Cu=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},Ou=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},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 Fu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Su={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Hu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Mu=function(e){if(!0===Su.hasOwnProperty(e))return Su[e];if("a"===e||"an"===e)return 1;const t=Ou(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=Wu(n),r=Wu(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:Wu(n);let a=r.text("reduced");return Lu.test(a)&&(a=a.replace(Lu,""),r=r.replaceWith(a)),r=Ju.hasOwnProperty(a)?Ju[a]:Wu(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:Wu(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},Ku=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]],Uu=["","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"]],_u=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 Uu[e]&&t.push(Uu[e]),t};var Zu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ku(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(_u(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=Ku(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(" ")},Yu=function(e){return e.numerator&&e.denominator?`${Zu({num:e.numerator})} out of ${Zu({num:e.denominator})}`:""};const Xu={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 ec=e=>{let t=Zu(e).split(" "),n=t[t.length-1];return Xu.hasOwnProperty(n)?t[t.length-1]=Xu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},tc=function(e){if(!e.numerator||!e.denominator)return"";let t=Zu({num:e.numerator}),n=ec({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const nc=(e,t)=>"number"==typeof t?e.eq(t):e;var rc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return nc(this,e).map(qu)}get(e){return nc(this,e).map(qu)}json(e){return nc(this,e).map(t=>{let n=t.toView().json(e)[0],r=qu(t);return n.fraction=r,n},[])}toDecimal(e){return nc(this,e).forEach(e=>{let{decimal:t}=qu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return nc(this,e).forEach(e=>{let t=qu(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 nc(this,e).forEach(e=>{let t=qu(e),n=tc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return nc(this,e).forEach(e=>{let t=qu(e),n=Yu(t);e.replaceWith(n)}),this}toPercentage(e){return nc(this,e).forEach(e=>{let{decimal:t}=qu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Cu(this);return t=nc(t,e),new Fractions(this.document,t.pointer)}};const ac="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var oc=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("("+ac+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+ac+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+ac+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+ac+")"));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) (${ac})`),r=e.has("("+ac+") #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("("+ac+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+ac+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},ic=function(e){if("string"==typeof e)return{num:Mu(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=qu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Mu(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")}},sc=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=Ku(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const lc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},uc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var cc=function(e){let t={suffix:"",prefix:e.prefix};return lc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+lc[e.prefix],t.prefix=""),uc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+uc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},hc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=cc(e);return t+ec(e)+n}if("Ordinal"===t)return e.prefix+sc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=cc(e);return t+Zu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const dc=(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 dc(this,e).map(ic)}get(e){return dc(this,e).map(ic).map(e=>e.num)}json(e){return dc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ic(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=ic(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=hc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=ic(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=hc(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=>ic(t).num===e)}greaterThan(e){return this.filter(t=>ic(t).num>e)}lessThan(e){return this.filter(t=>ic(t).num{let r=ic(n).num;return r>e&&r{let n=ic(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=hc(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=ic(e).num);let t=this.map(t=>{let n=ic(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=hc(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=oc(this);return t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=oc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=oc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},mc={api:function(e){rc(e),pc(e)}};const gc={people:!0,emails:!0,phoneNumbers:!0,places:!0},fc=function(e={}){return!1!==(e=Object.assign({},gc,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=fc}},vc=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))})},yc=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))))))},wc=function(e){let t=e.clauses(),n=yc(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}},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},Pc=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},Ac=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},jc=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}=wc(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=>(wc(e),kc(e)))}toPresentTense(e){return Ec(this,e).map(e=>(wc(e),Pc(e)))}toFutureTense(e){return Ec(this,e).map(e=>(wc(e),e=Ac(e)))}toInfinitive(e){return Ec(this,e).map(e=>(wc(e),jc(e)))}toNegative(e){return Ec(this,e).map(e=>(wc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ec(this,e).map(e=>(wc(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=vc(this);return Ec(t,e)}};Object.assign(e.prototype,t)}},Nc=function(e){return e.match("#Honorific+? #Person+")},Ic=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",Gc="female",Dc={mr:Tc,mrs:Gc,miss:Gc,madam:Gc,king:Tc,queen:Gc,duke:Tc,duchess:Gc,baron:Tc,baroness:Gc,count:Tc,countess:Gc,prince:Tc,princess:Gc,sire:Tc,dame:Gc,lady:Gc,ayatullah:Tc,congressman:Tc,congresswoman:Gc,"first lady":Gc,mx:null};var Cc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Gc;if(n.has("#MaleName"))return Tc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Dc.hasOwnProperty(e))return Dc[e];if(/^her /.test(e))return Gc;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 Gc}return null};const Oc=(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 Oc(this,e).map(Ic)}json(e){return Oc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ic(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Cc(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=Oc(t,e),new People(this.document,t.pointer)}},Bc=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=Bc(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 Fc=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 Sc=function(e){e.prototype.topics=Fc},Hc={api:function(e){Vc(e),zc(e),$c(e),Sc(e)}},Mc=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},Lc=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},Wc=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 Jc=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},qc=function(e){return e.match("#Negative")},Kc=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=Lc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Wc(t,n),auxiliary:Jc(t,n),negative:qc(t),phrasal:Kc(n)}};const Uc={tense:"PresentTense"},Qc={conditional:!0},_c={tense:"FutureTense"},Zc={progressive:!0},Yc={tense:"PastTense"},Xc={complete:!0,progressive:!1},eh={passive:!0},th=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},nh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Uc]],["^wanted to #Infinitive$",[Yc]],["^will want to #Infinitive$",[_c]]],"gerund-phrase":[["^#PastTense #Gerund$",[Yc]],["^#PresentTense #Gerund$",[Uc]],["^#Infinitive #Gerund$",[Uc]],["^will #Infinitive #Gerund$",[_c]],["^have #PastTense #Gerund$",[Yc]],["^will have #PastTense #Gerund$",[Yc]]],"simple-present":[["^#PresentTense$",[Uc]],["^#Infinitive$",[Uc]]],"simple-past":[["^#PastTense$",[Yc]]],"simple-future":[["^will #Adverb? #Infinitive",[_c]]],"present-progressive":[["^(is|are|am) #Gerund$",[Uc,Zc]]],"past-progressive":[["^(was|were) #Gerund$",[Yc,Zc]]],"future-progressive":[["^will be #Gerund$",[_c,Zc]]],"present-perfect":[["^(has|have) #PastTense$",[Yc,Xc]]],"past-perfect":[["^had #PastTense$",[Yc,Xc]],["^had #PastTense to #Infinitive",[Yc,Xc]]],"future-perfect":[["^will have #PastTense$",[_c,Xc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Yc,Zc]]],"past-perfect-progressive":[["^had been #Gerund$",[Yc,Zc]]],"future-perfect-progressive":[["^will have been #Gerund$",[_c,Zc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Yc,eh]],["^(was|were) being (#PastTense|#Participle)",[Yc,eh]],["^(had|have) been (#PastTense|#Participle)",[Yc,eh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Uc,eh]],["^(is|are|am) being (#PastTense|#Participle)",[Uc,eh]],["^has been (#PastTense|#Participle)",[Uc,eh]]],"passive-future":[["will have been (#PastTense|#Participle)",[_c,eh,Qc]],["will be being? (#PastTense|#Participle)",[_c,eh,Qc]]],"present-conditional":[["would be #PastTense",[Uc,Qc]]],"past-conditional":[["would have been #PastTense",[Yc,Qc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[_c]]],"auxiliary-past":[["^did #Infinitive$",[Yc,{plural:!1}]],["^used to #Infinitive$",[Yc,Xc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Uc,Xc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Yc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let rh=[];Object.keys(nh).map(e=>{nh[e].forEach(t=>{rh.push({name:e,match:t[0],data:th(t[1])})})});var ah=rh,oh=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(),ih(r)&&(n.remove(r),r=n.last()),ih(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:sh(t,e)}};const uh=e=>e,ch=(e,t)=>{let n=lh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},hh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=lh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},dh=function(e,t){let n=lh(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},mh=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},gh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),fh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},bh=function(e){return e&&e.isView?e.text("normal"):""},vh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,ph(e))};var yh=function(e){let t=Rc(e);e=e.clone().toView();const n=oh(e,t);return{root:t.root.text(),preAdverbs:fh(t.adverbs.pre),postAdverbs:fh(t.adverbs.post),auxiliary:bh(t.auxiliary),negative:t.negative.found,prefix:bh(t.prefix),infinitive:vh(t.root),grammar:n}};const wh={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,wh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=dh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Ph={tags:!0},Ah={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}=lh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Ph),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ah.simple(e,t),e=Ah.noAux(e,t))},hasHad:e=>(e.replace("has","had",Ph),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}},jh={infinitive:Ah.simple,"simple-present":Ah.simple,"simple-past":uh,"simple-future":Ah.both,"present-progressive":e=>(e.replace("are","were",Ph),e.replace("(is|are|am)","was",Ph),e),"past-progressive":uh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ah.hasHad,"past-perfect":uh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=gh(e)),e.remove("have"),e),"present-perfect-progressive":Ah.hasHad,"past-perfect-progressive":uh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ph),e),"passive-past":e=>(e.replace("have","had",Ph),e),"passive-present":e=>(e.replace("(is|are)","was",Ph),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",Ph),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":uh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ph),e),"auxiliary-past":uh,"auxiliary-present":e=>(e.replace("(do|does)","did",Ph),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ph):(Ah.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":uh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ph),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ah.simple(e,t),gh(e),e)};var Eh=function(e,t,n){return jh.hasOwnProperty(n)?((e=jh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const xh={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,ph(a)),!1===ch(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=hh(e)),o&&(e=e.replace(a,o,xh)).not("#Particle").tag("PresentTense"),e},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===ch(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,xh)).not("#Particle").tag("Gerund"),e},Th={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=lh(e).subject;if(ch(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":Nh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=hh(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":uh,"past-progressive":(e,t)=>{let n=hh(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)=>(Nh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=lh(e).subject;return ch(e)||n.has("i")?((e=mh(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":uh,"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=hh(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":uh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":uh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Ih(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=dh(e);return e.replace(t.auxiliary,n),e}return Ih(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":uh,"modal-infinitive":uh,"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$"),Nh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return ch(e)&&(n="want"),e.replace("(want|wanted|wants)",n,xh),e.remove("will"),e}};var Gh=function(e,t,n){return Th.hasOwnProperty(n)?((e=Th[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Dh={tags:!0},Ch=(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,Dh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Oh=(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,Dh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Vh={infinitive:Ch,"simple-present":Ch,"simple-past":Ch,"simple-future":uh,"present-progressive":Oh,"past-progressive":Oh,"future-progressive":uh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":uh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":uh,"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":uh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":uh,"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":uh,"modal-past":uh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Bh=function(e,t,n){return e.has("will")||e.has("going to")?e:Vh.hasOwnProperty(n)?((e=Vh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const zh={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,ph(a));let s=r(i,e.model).Gerund;return s&&(s=`${hh(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 Fh={tags:!0},Sh=function(e,t){let n=dh(e);return e.prepend(n+" not"),e},Hh=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)},Mh=e=>e.has("(is|was|am|are|will|were|be)"),Lh={"simple-present":(e,t)=>!0===Mh(e)?Hh(e):(e=mh(e,t),e=Sh(e)),"simple-past":(e,t)=>!0===Mh(e)?Hh(e):((e=mh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Mh(e)?Hh(e):Sh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Fh),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=Sh(e)).replace("wants","want",Fh)};var Wh=function(e,t,n){if(e.has("#Negative"))return e;if(Lh.hasOwnProperty(n))return e=Lh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Mh(e)?Hh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var qh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Jh(this,e).map(Rc)}json(e,t){return Jh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=yh(t),n},[])}subjects(e){return Jh(this,e).map(e=>(Rc(e),lh(e).subject))}adverbs(e){return Jh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Jh(this,e).filter(e=>!0!==lh(e).plural)}isPlural(e){return Jh(this,e).filter(e=>!0===lh(e).plural)}isImperative(e){return Jh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return kh(e,t,n.form)})}toPresentTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Gh(e,t,n.form)})}toPastTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Eh(e,t,n.form)})}toFutureTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Bh(e,t,n.form)})}toGerund(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return $h(e,t,n.form)})}conjugate(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(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:Gh(e.clone(),t,n.form).text("normal"),FutureTense:Bh(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 Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Wh(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=Mc(this);return t=Jh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Ml),m.plugin(uu),m.plugin(fu),m.plugin(Du),m.plugin(mc),m.plugin(bc),m.plugin(xc),m.plugin(Hc),m.plugin(qh),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]);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 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 c73eaf182..e94cdff85 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.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},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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn,sn=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 ln="";var cn={green:t=>""+t+ln,red:t=>""+t+ln,blue:t=>""+t+ln,magenta:t=>""+t+ln,cyan:t=>""+t+ln,yellow:t=>""+t+ln,black:t=>""+t+ln,dim:t=>""+t+ln,i:t=>""+t+ln},an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(cn.blue("\n ──────")),e.forEach(t=>{console.log(cn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=cn.blue(" │ ")+cn.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 cn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},un=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},hn=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]}${cn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const fn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var pn=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()}},gn={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;r>2]|=(s.charCodeAt(a)||128)<>6)+14]=8*l,a=0;a>4]+(yn[o]+(0|i[[o,5*o+1,3*o+5,7*o][l]%16+a])))<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+o++%4])|r>>>32-l),e,n];for(o=4;o;)c[--o]=c[o]+l[o]}for(t="";o<32;)t+=(c[o>>3]>>4*(1^7&o++)&15).toString(16);return t}}}};const vn=function(t,e){if(t[0]!==e[0])return!1;let[,n,r]=t,[,o,i]=e;return n<=o&&r>o||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},En={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:xn,splitAll:jn}}},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},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},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})},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=>0===t.wants.length||t.wants.filter(t=>r.has(t)).length>=t.minWant)})},Fn=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},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;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===Ln(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 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),1!=(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,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 cr=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},ar={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=cr(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)}},fr=function(t){Object.assign(t.prototype,hr)},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:ar,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}},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},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},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})}}}},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 co=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)},ao=function(t){let e=0,n=0,r=t.document;for(let t=0;tuo(t,so),machine:t=>uo(t,co),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}},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"]};return 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),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]);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 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 48c32eaac..08a5b3744 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.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},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;const Ye={text:!0,terms:!0};let tn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(t,e){return Object.assign({},t,e)},nn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,en(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,en(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,tn,!1),root:t=>Ke(t,en(tn,{form:"root"}),!1),offset:t=>{let e=nn.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)};nn.sentences=nn.sentence,nn.clean=nn.normal,nn.reduced=nn.root;const rn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},Ye,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&nn[i]&&(o[i]=nn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};rn.data=rn.json;var on=rn;var sn=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 ln={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 an=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(ln.blue("\n ──────")),e.forEach(t=>{console.log(ln.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=ln.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=ln.blue(" │ ")+ln.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 ln[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var cn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(ln.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(ln.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(ln.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(ln.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var un=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]}${ln.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const hn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var fn=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 dn={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;r>2]|=(s.charCodeAt(c)||128)<>6)+14]=8*l,c=0;c>4]+(wn[o]+(0|i[[o,5*o+1,3*o+5,7*o][l]%16+c])))<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+o++%4])|r>>>32-l),e,n];for(o=4;o;)a[--o]=a[o]+l[o]}for(t="";o<32;)t+=(a[o>>3]>>4*(1^7&o++)&15).toString(16);return t}}}};const bn=function(t,e){if(t[0]!==e[0])return!1;let[,n,r]=t,[,o,i]=e;return n<=o&&r>o||o<=n&&i>n},vn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var xn=function(t,e){let n=vn(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 jn={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:vn,splitAll:xn}}};var En=function(t,e){let n=t.concat(e),r=vn(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=>bn(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 kn=function(t,e){let n=vn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>bn(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},_n=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Sn={union:function(t){t=Pn(t,this);let e=En(this.fullPointer,t.fullPointer);return e=_n(e,this.document),this.toView(e)}};Sn.and=Sn.union,Sn.intersection=function(t){t=Pn(t,this);let e=kn(this.fullPointer,t.fullPointer);return e=_n(e,this.document),this.toView(e)},Sn.not=function(t){t=Pn(t,this);let e=On(this.fullPointer,t.fullPointer);return e=_n(e,this.document),this.toView(e)},Sn.difference=Sn.not,Sn.complement=function(){let t=this.all(),e=On(t.fullPointer,this.fullPointer);return e=_n(e,this.document),this.toView(e)},Sn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=En(t,[e])}),t=_n(t,this.document),this.update(t)};var An={methods:jn,api:function(t){Object.assign(t.prototype,Sn)}};const $n=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Tn=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($n(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push($n(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=$n(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 Cn=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 zn=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 Nn=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 Fn=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=Tn(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=Cn(o,e.hooks);return i=zn(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),Nn(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===Fn(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 Vn=/ /,qn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Dn=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(),Vn.test(e))!function(t,e,n,r){let o=e.split(Vn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Dn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nGn(t,e,n,r))};var Bn=Gn;var Mn=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=>Un({id:t})),e}return[Un({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},Qn=t=>"[object Array]"===Object.prototype.toString.call(t),Hn=t=>(t=t||"").trim(),Zn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Wn.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:In(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=Un({});return t.forEach(t=>{if((t=Un(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):(Rn(e=t).forEach(Un),e);var e},Kn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Rn(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},Jn=function(t){let e=Rn(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},Xn={text:Kn,txt:Kn,array:Jn,flat:Jn},Yn=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Kn(t,!0)),null):Xn.hasOwnProperty(e)?Xn[e](t):t},tr=t=>{Rn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},er=/\//;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=Hn(t),!er.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)||Un({});return new g(e)}add(t,e={}){if(Qn(t))return t.forEach(t=>this.add(Hn(t),e)),this;t=Hn(t);let n=Un({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Hn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Rn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Rn(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 Rn(this.json)}fillDown(){var t;return t=this.json,Rn(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 Qn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){tr(this.json);let t=Rn(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 tr(this.json),Yn(this.json,t)}debug(){return tr(this.json),Yn(this.json,"debug"),this}}const nr=function(t){let e=Zn(t);return new g(e)};nr.prototype.plugin=function(t){t(this)};var rr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const or=function(t){if(rr.hasOwnProperty(t.id))return rr[t.id];if(rr.hasOwnProperty(t.is))return rr[t.is];let e=t._cache.parents.find(t=>rr[t]);return rr[e]};var ir=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:or(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 sr=function(t){return t?"string"==typeof t?[t]:t:[]};var lr=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=sr(t[e].children),t[e].not=sr(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 ar={one:{setTag:Bn,unTag:Mn,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=lr(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 nr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return ir(n)}}};const cr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var ur={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||""),cr(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 cr(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 hr=function(t){Object.assign(t.prototype,ur)};var fr={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 pr=new Set(["Auxiliary","Possessive"]);var dr={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(pr.has(t)||!e.hasOwnProperty(n))return 1;if(pr.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:ar,api:hr,lib:fr};const gr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,mr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var wr=function(t){let e=[],n=t.split(mr);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 Fr=/^[ \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]+$/,Vr=/['’]/,qr=/^[a-z]\.([a-z]\.)+/i,Dr=/^[-+.][0-9]/,Gr=/^'[0-9]{2}/;var Br=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Fr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Dr.test(t)?"'"===n&&Gr.test(t)?(n="",e):"":(n="",e)))).replace(Lr,o=>(r=o,Vr.test(o)&&/[sn]['’]$/.test(e)&&!1===Vr.test(n)?(r=r.replace(Vr,""),"'"):!0===qr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Mr=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 Ur=/([A-Z]\.)+[A-Z]?,?$/,Wr=/^[A-Z]\.,?$/,Ir=/[A-Z]{2,}('s|,)?$/,Rr=/([a-z]\.)+[a-z]\.?$/;var Qr=function(t){return function(t){return!0===Ur.test(t)||!0===Rr.test(t)||!0===Wr.test(t)||!0===Ir.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Hr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Mr(r),r=n(r,e),r=Qr(r),t.normal=r};var Zr={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:kr,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(zr);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=$r(n),n=Sr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Br(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=>{Hr(t,e)}),n})}}}};var Kr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Jr={},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(t=>{t[0].forEach(e=>{Jr[e]=!0,Xr[e]="Abbreviation",void 0!==t[1]&&(Xr[e]=[Xr[e],t[1]])})});var Yr=["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 to={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(to).forEach((function(t){to[t].split("").forEach((function(e){eo[e]=t}))}));const no=/\//,ro=/[a-z]\.[a-z]/i,oo=/[0-9]/;var io=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])),no.test(n)&&!ro.test(n)&&!oo.test(n)){let e=n.split(no);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const so=/^\p{Letter}+-\p{Letter}+$/u;var lo=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"),so.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var ao=function(t){let e=0,n=0,r=t.document;for(let t=0;tco(t,io),machine:t=>co(t,lo),normal:t=>co(t,Hr),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 po={safe:!0,min:3};var go={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},po,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=fo(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 mo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=ho},lib:go,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(yn),d.extend(Ge),d.extend(An),d.extend(dr),d.plugin(yt),d.extend(uo),d.plugin(w),d.extend($t),d.extend(mo),d.extend(Et),d.extend(Ln);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]);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 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 44cd1bb1a..6e2fa9aac 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.0";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 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;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()),k(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(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=xe(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&&(Et(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&&(Et(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=Et(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(!xt(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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn,an=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=sn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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()}},mn={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;r>2]|=(i.charCodeAt(u)||128)<>6)+14]=8*s,u=0;u>4]+(bn[a]+(0|o[[a,5*a+1,3*a+5,7*a][s]%16+u])))<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+a++%4])|r>>>32-s),t,n];for(a=4;a;)l[--a]=l[a]+s[a]}for(e="";a<32;)e+=(l[a>>3]>>4*(1^7&a++)&15).toString(16);return e}}}};const yn=function(e,t){if(e[0]!==t[0])return!1;let[,n,r]=e,[,a,o]=t;return n<=a&&r>a||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},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}}},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},En=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},Nn=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=xn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=xn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},In.not=function(e){e=xn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=Nn(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=Nn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=Nn(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},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})},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=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},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},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;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===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),1!=(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,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},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)}},hr=function(e){Object.assign(e.prototype,cr)},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 br=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}},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},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},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: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(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})}}}},_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)},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(vn),m.extend(St),m.extend(Tn),m.extend(mr),m.plugin(be),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 ba=36,va="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ya=va.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var wa=function(e){if(void 0!==ya[e])return ya[e];let t=0,n=1,r=ba,a=1;for(;n=0;n--,a*=ba){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},ka=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=Aa(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=ja(fa[e]);Ia.test(e)?Object.keys(t).forEach(t=>{if(Ga[t]=e,"Noun|Verb"===e){let e=Na(t,Da);Ga[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ta[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ta[e]="Emoticon"),delete Ta[""],delete Ta.null,delete Ta[" "];const Ca="Adjective";var Oa={beforeTags:{Determiner:Ca,Possessive:Ca},afterTags:{Adjective:Ca},beforeWords:{seem:Ca,seemed:Ca,seems:Ca,feel:Ca,feels:Ca,felt:Ca,appear:Ca,appears:Ca,appeared:Ca,also:Ca,over:Ca,under:Ca,too:Ca,it:Ca,but:Ca,still:Ca,really:Ca,quite:Ca,well:Ca,very:Ca,deeply:Ca,profoundly:Ca,extremely:Ca,so:Ca,badly:Ca,mostly:Ca,totally:Ca,awfully:Ca,rather:Ca,nothing:Ca,something:Ca,anything:Ca},afterWords:{too:Ca,also:Ca,or:Ca}};const Va="Gerund";var Ba={beforeTags:{Adverb:Va,Preposition:Va,Conjunction:Va},afterTags:{Adverb:Va,Possessive:Va,Person:Va,Pronoun:Va,Determiner:Va,Copula:Va,Preposition:Va,Conjunction:Va,Comparative:Va},beforeWords:{been:Va,keep:Va,continue:Va,stop:Va,am:Va,be:Va,me:Va,began:Va,start:Va,starts:Va,started:Va,stops:Va,stopped:Va,help:Va,helps:Va,avoid:Va,avoids:Va,love:Va,loves:Va,loved:Va,hate:Va,hates:Va,hated:Va},afterWords:{you:Va,me:Va,her:Va,him:Va,them:Va,their:Va,it:Va,this:Va,there:Va,on:Va,about:Va,for:Va}},za={beforeTags:Object.assign({},Oa.beforeTags,Ba.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Oa.afterTags,Ba.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Oa.beforeWords,Ba.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Oa.afterWords,Ba.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const $a="Singular";var Fa={beforeTags:{Determiner:$a,Possessive:$a,Acronym:$a,Noun:$a,Adjective:$a,PresentTense:$a,Gerund:$a,PastTense:$a,Infinitive:$a,Date:$a},afterTags:{Value:$a,Modal:$a,Copula:$a,PresentTense:$a,PastTense:$a,Demonym:$a},beforeWords:{the:$a,with:$a,without:$a,of:$a,for:$a,any:$a,all:$a,on:$a,cut:$a,cuts:$a,save:$a,saved:$a,saves:$a,make:$a,makes:$a,made:$a,minus:$a,plus:$a,than:$a,another:$a,versus:$a,neither:$a,favorite:$a,best:$a,daily:$a,weekly:$a,linear:$a,binary:$a,mobile:$a,lexical:$a,technical:$a,computer:$a,scientific:$a,formal:$a},afterWords:{of:$a,system:$a,aid:$a,method:$a,utility:$a,tool:$a,reform:$a,therapy:$a,philosophy:$a,room:$a,authority:$a,says:$a,said:$a,wants:$a,wanted:$a}};const Sa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ha={beforeTags:Object.assign({},Oa.beforeTags,Fa.beforeTags,Sa.beforeTags),afterTags:Object.assign({},Oa.afterTags,Fa.afterTags),beforeWords:Object.assign({},Oa.beforeWords,Fa.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Oa.afterWords,Fa.afterWords)};const Ma={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},La={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Wa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ja={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({},Oa.beforeTags,Ma),afterTags:Object.assign({},Oa.afterTags,La),beforeWords:Object.assign({},Oa.beforeWords,Wa),afterWords:Object.assign({},Oa.afterWords,Ja)};const Ka="Infinitive";var Ra={beforeTags:{Modal:Ka,Adverb:Ka,Negative:Ka,Plural:Ka},afterTags:{Determiner:Ka,Adverb:Ka,Possessive:Ka,Preposition:Ka},beforeWords:{i:Ka,we:Ka,you:Ka,they:Ka,to:Ka,please:Ka,will:Ka,have:Ka,had:Ka,would:Ka,could:Ka,should:Ka,do:Ka,did:Ka,does:Ka,can:Ka,must:Ka,us:Ka,me:Ka,he:Ka,she:Ka,it:Ka,being:Ka},afterWords:{the:Ka,me:Ka,you:Ka,him:Ka,her:Ka,them:Ka,it:Ka,a:Ka,an:Ka,up:Ka,down:Ka,by:Ka,out:Ka,off:Ka,under:Ka,when:Ka,all:Ka,to:Ka,because:Ka,although:Ka,before:Ka,how:Ka,otherwise:Ka,together:Ka,though:Ka,yet:Ka}};const Ua={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Qa={beforeTags:Object.assign({},Oa.beforeTags,Ra.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Oa.afterTags,Ra.afterTags,Ua.afterTags),beforeWords:Object.assign({},Oa.beforeWords,Ra.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Oa.afterWords,Ra.afterWords,{to:void 0})};const _a={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Za={},Ya={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Xa={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var eo={beforeTags:Object.assign({},Ba.beforeTags,Fa.beforeTags,_a),afterTags:Object.assign({},Ba.afterTags,Fa.afterTags,Za),beforeWords:Object.assign({},Ba.beforeWords,Fa.beforeWords,Ya),afterWords:Object.assign({},Ba.afterWords,Fa.afterWords,Xa)},to={beforeTags:Object.assign({},Ra.beforeTags,Fa.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ra.afterTags,Fa.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ra.beforeWords,Fa.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ra.afterWords,Fa.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const no="Person";var ro={beforeTags:{Honorific:no,Person:no,Preposition:no},afterTags:{Person:no,ProperNoun:no,Verb:no},ownTags:{ProperNoun:no},beforeWords:{hi:no,hey:no,yo:no,dear:no,hello:no},afterWords:{said:no,says:no,told:no,tells:no,feels:no,felt:no,seems:no,thinks:no,thought:no,spends:no,spendt:no,plays:no,played:no,sing:no,sang:no,learn:no,learned:no,wants:no,wanted:no}};const ao="Month",oo={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 io={beforeTags:Object.assign({},ro.beforeTags,oo.beforeTags),afterTags:Object.assign({},ro.afterTags,oo.afterTags),beforeWords:Object.assign({},ro.beforeWords,oo.beforeWords),afterWords:Object.assign({},ro.afterWords,oo.afterWords)};const so={Place:"Place"},lo={Place:"Place",Abbreviation:"Place"},uo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},ho={"Adj|Gerund":za,"Adj|Noun":Ha,"Adj|Past":qa,"Adj|Present":Qa,"Noun|Verb":to,"Noun|Gerund":eo,"Person|Noun":{beforeTags:Object.assign({},Fa.beforeTags,ro.beforeTags),afterTags:Object.assign({},Fa.afterTags,ro.afterTags),beforeWords:Object.assign({},Fa.beforeWords,ro.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Fa.afterWords,ro.afterWords)},"Person|Date":io,"Person|Verb":{beforeTags:Object.assign({},ro.beforeTags,Ra.beforeTags),afterTags:Object.assign({},ro.afterTags,Ra.afterTags),beforeWords:Object.assign({},ro.beforeWords,Ra.beforeWords),afterWords:Object.assign({},ro.afterWords,Ra.afterWords)},"Person|Place":{beforeTags:Object.assign({},so,ro.beforeTags),afterTags:Object.assign({},lo,ro.afterTags),beforeWords:Object.assign({},uo,ro.beforeWords),afterWords:Object.assign({},co,ro.afterWords)}},po=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};ho["Plural|Verb"]={beforeWords:po(ho["Noun|Verb"].beforeWords,{}),afterWords:po(ho["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:po(ho["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:po(ho["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var mo=ho;const go="Adjective",fo="Infinitive",bo="PresentTense",vo="Singular",yo="PastTense",wo="Adverb",ko="Plural",Po="Actor",Ao="Verb",jo="Noun",Eo="LastName",xo="Modal",No="Participle";var Io=[null,null,{ea:vo,ia:jo,ic:go,ly:wo,"'n":Ao,"'t":Ao},{oed:yo,ued:yo,xed:yo," so":wo,"'ll":xo,"'re":"Copula",azy:go,eer:jo,end:Ao,ped:yo,ffy:go,ify:fo,ing:"Gerund",ize:fo,ibe:fo,lar:go,mum:go,nes:bo,nny:go,ous:go,que:go,rol:vo,sis:vo,ogy:vo,oid:vo,ian:vo,zes:bo,eld:yo,ken:No,ven:No,ten:No,ect:fo,ict:fo,ign:fo,ful:go,bal:go},{amed:yo,aped:yo,ched:yo,lked:yo,rked:yo,reed:yo,nded:yo,mned:go,cted:yo,dged:yo,ield:vo,akis:Eo,cede:fo,chuk:Eo,czyk:Eo,ects:bo,ends:Ao,enko:Eo,ette:vo,wner:vo,fies:bo,fore:wo,gate:fo,gone:go,ices:ko,ints:ko,ruct:fo,ines:ko,ions:ko,less:go,llen:go,made:go,nsen:Eo,oses:bo,ould:xo,some:go,sson:Eo,tion:vo,tage:jo,ique:vo,tive:go,tors:jo,vice:vo,lier:vo,fier:vo,wned:yo,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:go,vide:fo,ract:fo,duce:fo,pose:fo,eive:fo,lyze:fo,lyse:fo,iant:go,nary:go},{elist:vo,holic:vo,phite:vo,tized:yo,urned:yo,eased:yo,ances:ko,bound:go,ettes:ko,fully:wo,ishes:bo,ities:ko,marek:Eo,nssen:Eo,ology:jo,osome:vo,tment:vo,ports:ko,rough:go,tches:bo,tieth:"Ordinal",tures:ko,wards:wo,where:wo,archy:jo,pathy:jo,opoly:jo,embly:jo,phate:jo,ndent:vo,scent:vo,onist:vo,anist:vo,alist:vo,olist:vo,icist:vo,ounce:fo,iable:go,borne:go,gnant:go,inant:go,igent:go,atory:go,rient:vo,dient:vo},{auskas:Eo,parent:vo,cedent:vo,ionary:vo,cklist:vo,keeper:Po,logist:Po,teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const To="Adjective",Go="Noun",Do="Verb";var Co=[null,null,{},{neo:Go,bio:Go,"de-":Do,"re-":Do,"un-":Do},{anti:Go,auto:Go,faux:To,hexa:Go,kilo:Go,mono:Go,nano:Go,octa:Go,poly:Go,semi:To,tele:Go,"pro-":To,"mis-":Do,"dis-":Do,"pre-":To},{anglo:Go,centi:Go,ethno:Go,ferro:Go,grand:Go,hepta:Go,hydro:Go,intro:Go,macro:Go,micro:Go,milli:Go,nitro:Go,penta:Go,quasi:To,radio:Go,tetra:Go,"omni-":To,"post-":To},{pseudo:To,"extra-":To,"hyper-":To,"inter-":To,"intra-":To,"deca-":To},{electro:Go}];const Oo="Adjective",Vo="Infinitive",Bo="PresentTense",zo="Singular",$o="PastTense",Fo="Adverb",So="Expression",Ho="Actor",Mo="Verb",Lo="Noun",Wo="LastName";var Jo={a:[[/.[aeiou]na$/,Lo,"tuna"],[/.[oau][wvl]ska$/,Wo],[/.[^aeiou]ica$/,zo,"harmonica"],[/^([hyj]a+)+$/,So,"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$/,Wo,"..ovich"],[/^ug?h+$/,So,"ughh"],[/^uh[ -]?oh$/,So,"uhoh"],[/[a-z]-ish$/,Oo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Wo,"polish-male"]],k:[[/^(k){2}$/,So,"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+$/,So,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oo,"republican"],[/[^aeiou]ician$/,Ho,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,So,"noooo"],[/^(yo)+$/,So,"yoo"],[/^wo{2,}[pt]?$/,So,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,zo],[/[^i]fer$/,Vo],[/.[^aeiou][ao]pher$/,Ho],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oo],[/[aeiou].*ist$/,Oo],[/^[a-z]et$/,Mo]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,Mo],[/.[lstrn]us$/,zo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,zo],[/[a-z]'s$/,Lo],[/^yes+$/,So]],v:[[/.[^aeiou][ai][kln]ov$/,Wo]],y:[[/.[cts]hy$/,Oo],[/.[st]ty$/,Oo],[/.[tnl]ary$/,Oo],[/.[oe]ry$/,zo],[/[rdntkbhs]ly$/,Fo],[/.(gg|bb|zz)ly$/,Oo],[/...lly$/,Fo],[/.[gk]y$/,Oo],[/[bszmp]{2}y$/,Oo],[/.[ai]my$/,Oo],[/[ea]{2}zy$/,Oo],[/.[^aeiou]ity$/,zo]]};const qo="Verb",Ko="Noun";var Ro={leftTags:[["Adjective",Ko],["Possessive",Ko],["Determiner",Ko],["Adverb",qo],["Pronoun",qo],["Value",Ko],["Ordinal",Ko],["Modal",qo],["Superlative",Ko],["Demonym",Ko],["Honorific","Person"]],leftWords:[["i",qo],["first",Ko],["it",qo],["there",qo],["not",qo],["because",Ko],["if",Ko],["but",Ko],["who",qo],["this",Ko],["his",Ko],["when",Ko],["you",qo],["very","Adjective"],["old",Ko],["never",qo],["before",Ko],["a","Singular"],["the",Ko],["been",qo]],rightTags:[["Copula",Ko],["PastTense",Ko],["Conjunction",Ko],["Modal",Ko]],rightWords:[["there",qo],["me",qo],["man","Adjective"],["only",qo],["him",qo],["it",qo],["were",Ko],["took",Ko],["himself",qo],["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"},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"},_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"},Zo={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"},Yo={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 ei=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},ni=/^([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(ni);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ni,"")]}(n[0],n[1])})};var ai=function(e={}){return(e=Object.assign({},e)).rules=ri(e.rules),e.rules=ti(e.rules),e.rev&&(e.rev=ri(e.rev),e.rev=ti(e.rev)),e.exceptions=ri(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},oi=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 ii=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,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"}),si=ai(Zo),li=ai(Qo),ui=ai(_o),ci=oi(ii),hi=oi(si),di=oi(li),pi=oi(ui),mi=ai(Uo),gi=ai(Yo);var fi={fromPast:ii,fromPresent:si,fromGerund:li,fromParticiple:ui,toPast:ci,toPresent:hi,toGerund:di,toParticiple:pi,toComparative:mi,toSuperlative:gi,fromComparative:oi(mi),fromSuperlative:oi(gi)},bi=["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,""]],yi=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(wi[t].forEach(n=>e[n]=t),e),{});var ki=wi,Pi=function(e){let t=e.substring(e.length-3);if(!0===ki.hasOwnProperty(t))return ki[t];let n=e.substring(e.length-2);return!0===ki.hasOwnProperty(n)?ki[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ai={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ji=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)),Ai.hasOwnProperty(e))c=Ai[e];else if("Participle"===n)c=ei(l,i);else if("PastTense"===n)c=ei(l,r);else if("PresentTense"===n)c=ei(l,a);else{if("Gerund"!==n)return e;c=ei(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:ei(i,n),PresentTense:ei(i,r),Gerund:ei(i,a),FutureTense:"will "+e},u=ei(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},xi=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 Ni="ically",Ii=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]),Ti=[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"]),Di={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")?Ii.has(e)?e.replace(/ically/,"ical"):Gi.has(e)?null:Di.hasOwnProperty(e)?Di[e]:xi(e,Ti)||e:null};const Oi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Vi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Bi=function(e){if(Vi.hasOwnProperty(e))return Vi[e];let t=xi(e,Oi);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"}],$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"},Fi=new Set(["terrible","annoying"]),Si=function(e,t){const n=t.two.models.toSuperlative;return ei(e,n)},Hi=function(e,t){const n=t.two.models.toComparative;return ei(e,n)};var Mi={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"]}},Li={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===Mi.hasOwnProperty(i)&&Mi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Na,nounToSingular:yi,verbToInfinitive:ji,getTense:Pi,verbConjugate:Ei,adjToSuperlative:Si,adjToComparative:Hi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ei(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ei(e,n)},advToAdjective:Ci,adjToAdverb:Bi,adjToNoun:function(e){if($i.hasOwnProperty(e))return $i[e];if(Fi.has(e))return null;let t=xi(e,zi);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 Ji=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var qi=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=Ji(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ji(r,"Infinitive","Verb"),Object.assign(s,l),l=Ji(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ji(o,"Adjective","Superlative"),Object.assign(s,l),l=Ji(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ki={two:{models:fi}};const Ri={"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:Li};let{lex:r,_multi:a}=Li.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=Ei(e,Ki);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]=Ri[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Qi(a,r,!1),"Adj|Present"===o&&(Qi(a,r,!0),function(e,t,n){let r=Si(e,n);t[r]=t[r]||"Superlative";let a=Hi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ji(a,Ki,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=ji(a,Ki,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ui(n,t)};let Zi={one:{_multiCache:{},lexicon:Ta},two:{irregularPlurals:ga,models:fi,suffixPatterns:Io,prefixPatterns:Co,endsWith:Jo,neighbours:Ro,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:Ga,clues:mo,uncountable:{},orgWords:bi}};Zi=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=qi(e),e=Wi(e)}(Zi);var Yi=Zi;const Xi=/^(under|over|mis|re|un|dis|semi)-?/;var es=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])}},ts=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 ns={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"]),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 os=function(e){if(!e||e.length<=3)return!1;if(rs.has(e))return!0;let t=e[e.length-1];return ns.hasOwnProperty(t)?ns[t].find(t=>e.endsWith(t)):"s"===t&&!as.find(t=>e.endsWith(t))};const is=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ss=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(os(e.normal)?ts(e,"Plural","3-plural-guess"):ts(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&&ts(e,t,"3-verb-tense-guess")}}(r)};const ls=/^\p{Lu}[\p{Ll}'’]/u,us=/[0-9]/,cs=["Date","Month","WeekDay","Unit"],hs=/^[IVXLCDM]{2,}$/,ds=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ps={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===ls.test(o)&&!1===us.test(o)?cs.find(e=>r.tags.has(e))?null:(ss(e,t,n),r.tags.has("Noun")||r.tags.clear(),ts(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&hs.test(o)&&ds.test(o)&&!ps[r.normal]?(ts(r,"RomanNumeral","2-xvii"),!0):null};const gs=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 fs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=gs(r.normal,n.two.suffixPatterns);if(null!==e)return ts(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=gs(r.implicit,n.two.suffixPatterns),null!==e))return ts(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const bs=/['‘’‛‵′`´]/,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 ts(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ks=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!!ks.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},As=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},js=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(Ps(a)||Ps(o))return ts(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(As(a)||As(o))return ts(n,"Year","2-tagYear-close");if(js(e[t-2])||js(e[t+2]))return ts(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 ts(n,"Year","2-tagYear-noun")}}}return null};const xs=/^[A-Z]('s|,)?$/,Ns=/^[A-Z-]+$/,Is=/([A-Z]\.)+[A-Z]?,?$/,Ts=/[A-Z]{2,}('s|,)?$/,Gs=/([a-z]\.)+[a-z]\.?$/,Ds={I:!0,A:!0};var Cs=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||Ds.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Is.test(n)&&!0!==Gs.test(n)&&!0!==xs.test(n)&&!0!==Ts.test(n))}(r,n)?(r.tags.clear(),ts(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ds.hasOwnProperty(r.text)&&xs.test(r.text)?(r.tags.clear(),ts(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ts(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ns.test(r.text)&&r.text.length<=6?(ts(r,"Acronym","3-titlecase-acronym"),!0):null};const Os=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Vs=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||Os(e[t-1],a),l=l||Os(e[t+1],o),l=l||Vs(e[t-1],r),l=l||Vs(e[t+1],i),l)return ts(s,l,"3-[neighbour]"),ss(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 $s=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},Fs=function(e,t,n){0===e[t].tags.size&&(ts(e[t],"Noun","3-[fallback]"),ss(e,t,n),e[t].confidence=.1)};const Ss=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Hs=(e,t,n)=>0!==t||e[1]?null:n;var Ms={"Adj|Gerund":(e,t)=>Ss(e,t),"Adj|Noun":(e,t)=>Ss(e,t),"Adj|Past":(e,t)=>Ss(e,t),"Adj|Present":(e,t)=>Ss(e,t),"Noun|Gerund":(e,t)=>Ss(e,t),"Noun|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ss(e,t),"Person|Verb":(e,t)=>0!==t&&Ss(e,t)};const Ls="undefined"!=typeof process&&process.env?process.env:self.env||{},Ws=/^(under|over|mis|re|un|dis|semi)-?/,Js=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ls.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},qs=(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&&Ls.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Ks={tagSwitch:es,checkSuffix:fs,checkRegex:ys,checkCase:ms,checkPrefix:ws,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")&&(ts(o,"Verb","3-[prefix]"),ts(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ts(o,"Adjective","3-[prefix]"),ts(o,"Prefix","3-[prefix]")))},checkYear:Es},Rs={checkAcronym:Cs,neighbours:Bs,orgWords:$s,nounFallback:Fs,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(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,r){if(!n)return null;const a=r.one.tagSet;let o=Js(e[t+1],n.afterWords);return o=o||Js(e[t-1],n.beforeWords),o=o||qs(e[t-1],n.beforeTags,a),o=o||qs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ms[o]&&(u=Ms[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ls.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)},Zs={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 Ys={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 ul=/'/;var cl=function(e,t){let n=e[t].normal.split(ul)[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 hl=/'/;var dl=function(e,t){let n=e[t].normal.split(hl)[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"]},pl=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},gl={in:!0,by:!0,for:!0};var fl=(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===gl[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 bl=/'/,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)},yl={d:(e,t)=>dl(e,t),t:(e,t)=>pl(e,t),s:(e,t,n)=>fl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):cl(e,t)},wl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var kl={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===bl.test(r[o].normal)&&([,i]=r[o].normal.split(bl));let s=null;yl.hasOwnProperty(i)&&(s=yl[i](r,o,t)),s&&(s=wl(s,e),ll(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=sl.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=il},hooks:["contractionTwo"]};const Pl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Al=["i","we","they"];let jl=[].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: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:"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:Al,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:Al,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Al,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 xl={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:jl}},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)},Il=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},Tl={api:function(e){e.prototype.swap=Il}};m.plugin(rl),m.plugin(kl),m.plugin(xl),m.plugin(Tl);var Gl=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},Dl=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 Cl={this:"Noun",then:"Pivot"};var Ol=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))})},Ml={compute:{chunks:function(e){const{document:t,world:n}=e;Ol(t),Vl(t),$l(e,t,n),Sl(t),Hl(t)}},api:function(e){e.prototype.chunks=Dl,e.prototype.clauses=Gl},hooks:["chunks"]};const Ll=/'s$/;var Wl=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(Ll,""),e.normal=e.normal.replace(Ll,"")})}),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 Jl=/\(/,ql=/\)/,Kl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Jl,"");let t=e[e.length-1];t.post=t.post.replace(ql,"")}),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 Ul={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Ql=RegExp("("+Object.keys(Ul).join("|")+")"),_l=RegExp("("+Object.values(Ul).join("|")+")"),Zl=function(e,t){const n=e[t].pre.match(Ql)[0]||"";if(!n||!Ul[n])return null;const r=Ul[n];for(;t{e[0].pre=e[0].pre.replace(Ql,"");let t=e[e.length-1];t.post=t.post.replace(_l,"")})}(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 Xl=/\./g;var eu=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(Xl,""),e.normal=e.normal.replace(Xl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Xl,""),e.normal=e.normal.replace(Xl,""),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)}},tu=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 nu=(e,t)=>"number"==typeof t?e.eq(t):e,ru=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 au=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=ru(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 nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return nu(this,e).map(e=>{let n=ru(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=nu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=nu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=nu(t,e),new Adjectives(t.document,t.pointer)}};const ou=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},iu=[["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 su=[["emojis","emoji"],["atmentions","atMentions"]];var lu=function(e){iu.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=ou,su.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},uu={api:function(e){lu(e),Wl(e),Rl(e),Yl(e),au(e),tu(e),eu(e)}};const cu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var hu={case:e=>{cu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;cu(e,e=>e.text=n(e.text,t))},whitespace:e=>{cu(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=>{cu(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 du=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),pu="unicode|punctuation|whitespace|acronyms",mu="|case|contractions|parentheses|quotations|emoji|honorifics",gu={light:du(pu),medium:du(pu+mu),heavy:du(pu+mu+"|possessives|adverbs|nouns|verbs")};var fu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=gu[e]),Object.keys(e).forEach(t=>{hu.hasOwnProperty(t)&&hu[t](this,e[t])}),this}}},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 vu=["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 yu=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")},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:wu(e,t),isSubordinate:yu(e),root:t}};const Pu=e=>e.text(),Au=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),ju=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=ku(e);return{root:Pu(t.root),number:ju(t.number),determiner:Pu(t.determiner),adjectives:Au(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const xu={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,xu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",xu),e};const Iu={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,Iu).tag("Singular","toPlural"),e};const Gu=(e,t)=>"number"==typeof t?e.eq(t):e;var Du={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Gu(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 Gu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=ku(e).adjectives;n.found&&(t=t.concat(n))}),Gu(t,e)}toPlural(e){return Gu(this,e).map(e=>Nu(e,ku(e)))}toSingular(e){return Gu(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=Gu(t,e),new Nouns(this.document,t.pointer)}}},Cu=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},Ou=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},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 Fu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Su={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Hu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Mu=function(e){if(!0===Su.hasOwnProperty(e))return Su[e];if("a"===e||"an"===e)return 1;const t=Ou(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=Wu(n),r=Wu(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:Wu(n);let a=r.text("reduced");return Lu.test(a)&&(a=a.replace(Lu,""),r=r.replaceWith(a)),r=Ju.hasOwnProperty(a)?Ju[a]:Wu(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:Wu(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},Ku=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]],Uu=["","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"]],_u=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 Uu[e]&&t.push(Uu[e]),t};var Zu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ku(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(_u(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=Ku(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(" ")},Yu=function(e){return e.numerator&&e.denominator?`${Zu({num:e.numerator})} out of ${Zu({num:e.denominator})}`:""};const Xu={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 ec=e=>{let t=Zu(e).split(" "),n=t[t.length-1];return Xu.hasOwnProperty(n)?t[t.length-1]=Xu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},tc=function(e){if(!e.numerator||!e.denominator)return"";let t=Zu({num:e.numerator}),n=ec({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const nc=(e,t)=>"number"==typeof t?e.eq(t):e;var rc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return nc(this,e).map(qu)}get(e){return nc(this,e).map(qu)}json(e){return nc(this,e).map(t=>{let n=t.toView().json(e)[0],r=qu(t);return n.fraction=r,n},[])}toDecimal(e){return nc(this,e).forEach(e=>{let{decimal:t}=qu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return nc(this,e).forEach(e=>{let t=qu(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 nc(this,e).forEach(e=>{let t=qu(e),n=tc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return nc(this,e).forEach(e=>{let t=qu(e),n=Yu(t);e.replaceWith(n)}),this}toPercentage(e){return nc(this,e).forEach(e=>{let{decimal:t}=qu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Cu(this);return t=nc(t,e),new Fractions(this.document,t.pointer)}};const ac="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var oc=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("("+ac+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+ac+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+ac+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+ac+")"));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) (${ac})`),r=e.has("("+ac+") #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("("+ac+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+ac+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},ic=function(e){if("string"==typeof e)return{num:Mu(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=qu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Mu(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")}},sc=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=Ku(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const lc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},uc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var cc=function(e){let t={suffix:"",prefix:e.prefix};return lc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+lc[e.prefix],t.prefix=""),uc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+uc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},hc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=cc(e);return t+ec(e)+n}if("Ordinal"===t)return e.prefix+sc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=cc(e);return t+Zu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const dc=(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 dc(this,e).map(ic)}get(e){return dc(this,e).map(ic).map(e=>e.num)}json(e){return dc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ic(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=ic(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=hc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=ic(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=hc(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=ic(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=hc(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=>ic(t).num===e)}greaterThan(e){return this.filter(t=>ic(t).num>e)}lessThan(e){return this.filter(t=>ic(t).num{let r=ic(n).num;return r>e&&r{let n=ic(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=hc(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=ic(e).num);let t=this.map(t=>{let n=ic(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=hc(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=oc(this);return t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=oc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=oc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=dc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},mc={api:function(e){rc(e),pc(e)}};const gc={people:!0,emails:!0,phoneNumbers:!0,places:!0},fc=function(e={}){return!1!==(e=Object.assign({},gc,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=fc}},vc=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))})},yc=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))))))},wc=function(e){let t=e.clauses(),n=yc(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}},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},Pc=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},Ac=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},jc=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}=wc(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=>(wc(e),kc(e)))}toPresentTense(e){return Ec(this,e).map(e=>(wc(e),Pc(e)))}toFutureTense(e){return Ec(this,e).map(e=>(wc(e),e=Ac(e)))}toInfinitive(e){return Ec(this,e).map(e=>(wc(e),jc(e)))}toNegative(e){return Ec(this,e).map(e=>(wc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ec(this,e).map(e=>(wc(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=vc(this);return Ec(t,e)}};Object.assign(e.prototype,t)}},Nc=function(e){return e.match("#Honorific+? #Person+")},Ic=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",Gc="female",Dc={mr:Tc,mrs:Gc,miss:Gc,madam:Gc,king:Tc,queen:Gc,duke:Tc,duchess:Gc,baron:Tc,baroness:Gc,count:Tc,countess:Gc,prince:Tc,princess:Gc,sire:Tc,dame:Gc,lady:Gc,ayatullah:Tc,congressman:Tc,congresswoman:Gc,"first lady":Gc,mx:null};var Cc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Gc;if(n.has("#MaleName"))return Tc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Dc.hasOwnProperty(e))return Dc[e];if(/^her /.test(e))return Gc;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 Gc}return null};const Oc=(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 Oc(this,e).map(Ic)}json(e){return Oc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ic(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Cc(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=Oc(t,e),new People(this.document,t.pointer)}},Bc=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=Bc(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 Fc=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 Sc=function(e){e.prototype.topics=Fc},Hc={api:function(e){Vc(e),zc(e),$c(e),Sc(e)}},Mc=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},Lc=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},Wc=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 Jc=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},qc=function(e){return e.match("#Negative")},Kc=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=Lc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Wc(t,n),auxiliary:Jc(t,n),negative:qc(t),phrasal:Kc(n)}};const Uc={tense:"PresentTense"},Qc={conditional:!0},_c={tense:"FutureTense"},Zc={progressive:!0},Yc={tense:"PastTense"},Xc={complete:!0,progressive:!1},eh={passive:!0},th=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},nh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Uc]],["^wanted to #Infinitive$",[Yc]],["^will want to #Infinitive$",[_c]]],"gerund-phrase":[["^#PastTense #Gerund$",[Yc]],["^#PresentTense #Gerund$",[Uc]],["^#Infinitive #Gerund$",[Uc]],["^will #Infinitive #Gerund$",[_c]],["^have #PastTense #Gerund$",[Yc]],["^will have #PastTense #Gerund$",[Yc]]],"simple-present":[["^#PresentTense$",[Uc]],["^#Infinitive$",[Uc]]],"simple-past":[["^#PastTense$",[Yc]]],"simple-future":[["^will #Adverb? #Infinitive",[_c]]],"present-progressive":[["^(is|are|am) #Gerund$",[Uc,Zc]]],"past-progressive":[["^(was|were) #Gerund$",[Yc,Zc]]],"future-progressive":[["^will be #Gerund$",[_c,Zc]]],"present-perfect":[["^(has|have) #PastTense$",[Yc,Xc]]],"past-perfect":[["^had #PastTense$",[Yc,Xc]],["^had #PastTense to #Infinitive",[Yc,Xc]]],"future-perfect":[["^will have #PastTense$",[_c,Xc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Yc,Zc]]],"past-perfect-progressive":[["^had been #Gerund$",[Yc,Zc]]],"future-perfect-progressive":[["^will have been #Gerund$",[_c,Zc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Yc,eh]],["^(was|were) being (#PastTense|#Participle)",[Yc,eh]],["^(had|have) been (#PastTense|#Participle)",[Yc,eh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Uc,eh]],["^(is|are|am) being (#PastTense|#Participle)",[Uc,eh]],["^has been (#PastTense|#Participle)",[Uc,eh]]],"passive-future":[["will have been (#PastTense|#Participle)",[_c,eh,Qc]],["will be being? (#PastTense|#Participle)",[_c,eh,Qc]]],"present-conditional":[["would be #PastTense",[Uc,Qc]]],"past-conditional":[["would have been #PastTense",[Yc,Qc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[_c]]],"auxiliary-past":[["^did #Infinitive$",[Yc,{plural:!1}]],["^used to #Infinitive$",[Yc,Xc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Uc,Xc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Yc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let rh=[];Object.keys(nh).map(e=>{nh[e].forEach(t=>{rh.push({name:e,match:t[0],data:th(t[1])})})});var ah=rh,oh=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(),ih(r)&&(n.remove(r),r=n.last()),ih(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:sh(t,e)}};const uh=e=>e,ch=(e,t)=>{let n=lh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},hh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=lh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},dh=function(e,t){let n=lh(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},mh=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},gh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),fh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},bh=function(e){return e&&e.isView?e.text("normal"):""},vh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,ph(e))};var yh=function(e){let t=Rc(e);e=e.clone().toView();const n=oh(e,t);return{root:t.root.text(),preAdverbs:fh(t.adverbs.pre),postAdverbs:fh(t.adverbs.post),auxiliary:bh(t.auxiliary),negative:t.negative.found,prefix:bh(t.prefix),infinitive:vh(t.root),grammar:n}};const wh={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,wh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=dh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Ph={tags:!0},Ah={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}=lh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Ph),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ah.simple(e,t),e=Ah.noAux(e,t))},hasHad:e=>(e.replace("has","had",Ph),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}},jh={infinitive:Ah.simple,"simple-present":Ah.simple,"simple-past":uh,"simple-future":Ah.both,"present-progressive":e=>(e.replace("are","were",Ph),e.replace("(is|are|am)","was",Ph),e),"past-progressive":uh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ah.hasHad,"past-perfect":uh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=gh(e)),e.remove("have"),e),"present-perfect-progressive":Ah.hasHad,"past-perfect-progressive":uh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ph),e),"passive-past":e=>(e.replace("have","had",Ph),e),"passive-present":e=>(e.replace("(is|are)","was",Ph),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",Ph),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":uh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ph),e),"auxiliary-past":uh,"auxiliary-present":e=>(e.replace("(do|does)","did",Ph),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ph):(Ah.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":uh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ph),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ah.simple(e,t),gh(e),e)};var Eh=function(e,t,n){return jh.hasOwnProperty(n)?((e=jh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const xh={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,ph(a)),!1===ch(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=hh(e)),o&&(e=e.replace(a,o,xh)).not("#Particle").tag("PresentTense"),e},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===ch(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,xh)).not("#Particle").tag("Gerund"),e},Th={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=lh(e).subject;if(ch(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":Nh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=hh(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":uh,"past-progressive":(e,t)=>{let n=hh(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)=>(Nh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=lh(e).subject;return ch(e)||n.has("i")?((e=mh(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":uh,"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=hh(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":uh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":uh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Ih(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=dh(e);return e.replace(t.auxiliary,n),e}return Ih(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":uh,"modal-infinitive":uh,"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$"),Nh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return ch(e)&&(n="want"),e.replace("(want|wanted|wants)",n,xh),e.remove("will"),e}};var Gh=function(e,t,n){return Th.hasOwnProperty(n)?((e=Th[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Dh={tags:!0},Ch=(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,Dh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Oh=(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,Dh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Vh={infinitive:Ch,"simple-present":Ch,"simple-past":Ch,"simple-future":uh,"present-progressive":Oh,"past-progressive":Oh,"future-progressive":uh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":uh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":uh,"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":uh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":uh,"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":uh,"modal-past":uh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Bh=function(e,t,n){return e.has("will")||e.has("going to")?e:Vh.hasOwnProperty(n)?((e=Vh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const zh={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,ph(a));let s=r(i,e.model).Gerund;return s&&(s=`${hh(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 Fh={tags:!0},Sh=function(e,t){let n=dh(e);return e.prepend(n+" not"),e},Hh=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)},Mh=e=>e.has("(is|was|am|are|will|were|be)"),Lh={"simple-present":(e,t)=>!0===Mh(e)?Hh(e):(e=mh(e,t),e=Sh(e)),"simple-past":(e,t)=>!0===Mh(e)?Hh(e):((e=mh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Mh(e)?Hh(e):Sh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Fh),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=Sh(e)).replace("wants","want",Fh)};var Wh=function(e,t,n){if(e.has("#Negative"))return e;if(Lh.hasOwnProperty(n))return e=Lh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Mh(e)?Hh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var qh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Jh(this,e).map(Rc)}json(e,t){return Jh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=yh(t),n},[])}subjects(e){return Jh(this,e).map(e=>(Rc(e),lh(e).subject))}adverbs(e){return Jh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Jh(this,e).filter(e=>!0!==lh(e).plural)}isPlural(e){return Jh(this,e).filter(e=>!0===lh(e).plural)}isImperative(e){return Jh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return kh(e,t,n.form)})}toPresentTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Gh(e,t,n.form)})}toPastTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Eh(e,t,n.form)})}toFutureTense(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Bh(e,t,n.form)})}toGerund(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return $h(e,t,n.form)})}conjugate(e){return Jh(this,e).map(e=>{let t=Rc(e),n=oh(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:Gh(e.clone(),t,n.form).text("normal"),FutureTense:Bh(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 Jh(this,e).map(e=>{let t=Rc(e),n=oh(e,t);return Wh(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=Mc(this);return t=Jh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Ml),m.plugin(uu),m.plugin(fu),m.plugin(Du),m.plugin(mc),m.plugin(bc),m.plugin(xc),m.plugin(Hc),m.plugin(qh),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]);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 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 ae5fd9b20..af709f309 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.0";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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Yt,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&tn[o]&&(a[o]=tn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var rn=nn;var an=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=on.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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&&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;r>2]|=(i.charCodeAt(u)||128)<>6)+14]=8*s,u=0;u>4]+(fn[a]+(0|o[[a,5*a+1,3*a+5,7*a][s]%16+u])))<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+a++%4])|r>>>32-s),t,n];for(a=4;a;)l[--a]=l[a]+s[a]}for(e="";a<32;)e+=(l[a>>3]>>4*(1^7&a++)&15).toString(16);return e}}}};const bn=function(e,t){if(e[0]!==t[0])return!1;let[,n,r]=e,[,a,o]=t;return n<=a&&r>a||a<=n&&o>n},yn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var wn=function(e,t){let n=yn(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 kn={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:yn,splitAll:wn}}};var Pn=function(e,t){let n=e.concat(t),r=yn(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=>bn(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 jn=function(e,t){let n=yn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>bn(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},En=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},xn={union:function(e){e=Nn(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)}};xn.and=xn.union,xn.intersection=function(e){e=Nn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.not=function(e){e=Nn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=En(t,this.document),this.toView(t)},xn.difference=xn.not,xn.complement=function(){let e=this.all(),t=An(e.fullPointer,this.fullPointer);return t=En(t,this.document),this.toView(t)},xn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Pn(e,[t])}),e=En(e,this.document),this.update(e)};var In={methods:kn,api:function(e){Object.assign(e.prototype,xn)}};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 Gn=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: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=Tn(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 Dn=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 Cn=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 On=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 Vn=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=Gn(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=Dn(a,t.hooks);return o=Cn(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),On(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===Vn(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=/ /,$n=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Fn=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(/^#/,""),Fn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nSn(e,t,n,r))};var Hn=Sn;var Mn=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=>Ln({id:e})),t}return[Ln({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},Kn=e=>"[object Array]"===Object.prototype.toString.call(e),Rn=e=>(e=e||"").trim(),Un=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:Jn(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=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},Qn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return qn(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},_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},Zn={text:Qn,txt:Qn,array:_n,flat:_n},Yn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Qn(e,!0)),null):Zn.hasOwnProperty(t)?Zn[t](e):e},Xn=e=>{qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},er=/\//;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=Rn(e),!er.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)||Ln({});return new g$1(t)}add(e,t={}){if(Kn(e))return e.forEach(e=>this.add(Rn(e),t)),this;e=Rn(e);let n=Ln({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Rn(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 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 Kn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(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 Xn(this.json),Yn(this.json,e)}debug(){return Xn(this.json),Yn(this.json,"debug"),this}}const tr=function(e){let t=Un(e);return new g$1(t)};tr.prototype.plugin=function(e){e(this)};var nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const rr=function(e){if(nr.hasOwnProperty(e.id))return nr[e.id];if(nr.hasOwnProperty(e.is))return nr[e.is];let t=e._cache.parents.find(e=>nr[e]);return nr[t]};var ar=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:rr(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 or=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=or(e[t].children),e[t].not=or(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 sr={one:{setTag:Hn,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=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 tr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ar(n)}}};const lr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ur={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||""),lr(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 lr(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 cr=function(e){Object.assign(e.prototype,ur)};var hr={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 dr=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(dr.has(e)||!t.hasOwnProperty(n))return 1;if(dr.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:sr,api:cr,lib:hr};const mr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,gr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var fr=function(e){let t=[],n=e.split(gr);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 Vr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Br=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,zr=/['’]/,$r=/^[a-z]\.([a-z]\.)+/i,Fr=/^[-+.][0-9]/,Sr=/^'[0-9]{2}/;var Hr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Vr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Fr.test(e)?"'"===n&&Sr.test(e)?(n="",t):"":(n="",t)))).replace(Br,a=>(r=a,zr.test(a)&&/[sn]['’]$/.test(t)&&!1===zr.test(n)?(r=r.replace(zr,""),"'"):!0===$r.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Mr=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 Lr=/([A-Z]\.)+[A-Z]?,?$/,Wr=/^[A-Z]\.,?$/,Jr=/[A-Z]{2,}('s|,)?$/,qr=/([a-z]\.)+[a-z]\.?$/;var Kr=function(e){return function(e){return!0===Lr.test(e)||!0===qr.test(e)||!0===Wr.test(e)||!0===Jr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Rr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Mr(r),r=n(r,t),r=Kr(r),e.normal=r};var Ur={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:jr,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(Cr);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=Tr(n),n=xr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Hr(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=>{Rr(e,t)}),n})}}}};var Qr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let _r={},Zr={};[[["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=>{_r[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])})});var Yr=["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 Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},ea={};Object.keys(Xr).forEach((function(e){Xr[e].split("").forEach((function(t){ea[t]=e}))}));const ta=/\//,na=/[a-z]\.[a-z]/i,ra=/[0-9]/;var aa=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])),ta.test(n)&&!na.test(n)&&!ra.test(n)){let t=n.split(ta);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const oa=/^\p{Letter}+-\p{Letter}+$/u;var ia=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"),oa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var sa=function(e){let t=0,n=0,r=e.document;for(let e=0;ela(e,aa),machine:e=>la(e,ia),normal:e=>la(e,Rr),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 da={safe:!0,min:3};var pa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ca},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},da,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ha(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(vn),m.extend(St),m.extend(In),m.extend(pr),m.plugin(ve),m.extend(ua),m.plugin(f),m.extend(Te),m.extend(pa),m.extend(Pe),m.extend(Bn);var ma={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"},ga={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 fa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",va=fa.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ba=function(e){if(void 0!==va[e])return va[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 ya=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=Pa(ga[e]);Ea.test(e)?Object.keys(t).forEach(t=>{if(Ia[t]=e,"Noun|Verb"===e){let e=Na(t,Ta);Ia[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{xa[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","xa[e]="Emoticon"),delete xa[""],delete xa.null,delete xa[" "];const Ga="Adjective";var Da={beforeTags:{Determiner:Ga,Possessive:Ga},afterTags:{Adjective:Ga},beforeWords:{seem:Ga,seemed:Ga,seems:Ga,feel:Ga,feels:Ga,felt:Ga,appear:Ga,appears:Ga,appeared:Ga,also:Ga,over:Ga,under:Ga,too:Ga,it:Ga,but:Ga,still:Ga,really:Ga,quite:Ga,well:Ga,very:Ga,deeply:Ga,profoundly:Ga,extremely:Ga,so:Ga,badly:Ga,mostly:Ga,totally:Ga,awfully:Ga,rather:Ga,nothing:Ga,something:Ga,anything:Ga},afterWords:{too:Ga,also:Ga,or:Ga}};const Ca="Gerund";var Oa={beforeTags:{Adverb:Ca,Preposition:Ca,Conjunction:Ca},afterTags:{Adverb:Ca,Possessive:Ca,Person:Ca,Pronoun:Ca,Determiner:Ca,Copula:Ca,Preposition:Ca,Conjunction:Ca,Comparative:Ca},beforeWords:{been:Ca,keep:Ca,continue:Ca,stop:Ca,am:Ca,be:Ca,me:Ca,began:Ca,start:Ca,starts:Ca,started:Ca,stops:Ca,stopped:Ca,help:Ca,helps:Ca,avoid:Ca,avoids:Ca,love:Ca,loves:Ca,loved:Ca,hate:Ca,hates:Ca,hated:Ca},afterWords:{you:Ca,me:Ca,her:Ca,him:Ca,them:Ca,their:Ca,it:Ca,this:Ca,there:Ca,on:Ca,about:Ca,for:Ca}};var Va={beforeTags:Object.assign({},Da.beforeTags,Oa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Da.afterTags,Oa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Da.beforeWords,Oa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Da.afterWords,Oa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ba="Singular";var za={beforeTags:{Determiner:Ba,Possessive:Ba,Acronym:Ba,Noun:Ba,Adjective:Ba,PresentTense:Ba,Gerund:Ba,PastTense:Ba,Infinitive:Ba,Date:Ba},afterTags:{Value:Ba,Modal:Ba,Copula:Ba,PresentTense:Ba,PastTense:Ba,Demonym:Ba},beforeWords:{the:Ba,with:Ba,without:Ba,of:Ba,for:Ba,any:Ba,all:Ba,on:Ba,cut:Ba,cuts:Ba,save:Ba,saved:Ba,saves:Ba,make:Ba,makes:Ba,made:Ba,minus:Ba,plus:Ba,than:Ba,another:Ba,versus:Ba,neither:Ba,favorite:Ba,best:Ba,daily:Ba,weekly:Ba,linear:Ba,binary:Ba,mobile:Ba,lexical:Ba,technical:Ba,computer:Ba,scientific:Ba,formal:Ba},afterWords:{of:Ba,system:Ba,aid:Ba,method:Ba,utility:Ba,tool:Ba,reform:Ba,therapy:Ba,philosophy:Ba,room:Ba,authority:Ba,says:Ba,said:Ba,wants:Ba,wanted:Ba}};const $a={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Fa={beforeTags:Object.assign({},Da.beforeTags,za.beforeTags,$a.beforeTags),afterTags:Object.assign({},Da.afterTags,za.afterTags),beforeWords:Object.assign({},Da.beforeWords,za.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,za.afterWords)};const Sa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ha={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ma={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},La={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wa={beforeTags:Object.assign({},Da.beforeTags,Sa),afterTags:Object.assign({},Da.afterTags,Ha),beforeWords:Object.assign({},Da.beforeWords,Ma),afterWords:Object.assign({},Da.afterWords,La)};const Ja="Infinitive";var qa={beforeTags:{Modal:Ja,Adverb:Ja,Negative:Ja,Plural:Ja},afterTags:{Determiner:Ja,Adverb:Ja,Possessive:Ja,Preposition:Ja},beforeWords:{i:Ja,we:Ja,you:Ja,they:Ja,to:Ja,please:Ja,will:Ja,have:Ja,had:Ja,would:Ja,could:Ja,should:Ja,do:Ja,did:Ja,does:Ja,can:Ja,must:Ja,us:Ja,me:Ja,he:Ja,she:Ja,it:Ja,being:Ja},afterWords:{the:Ja,me:Ja,you:Ja,him:Ja,her:Ja,them:Ja,it:Ja,a:Ja,an:Ja,up:Ja,down:Ja,by:Ja,out:Ja,off:Ja,under:Ja,when:Ja,all:Ja,to:Ja,because:Ja,although:Ja,before:Ja,how:Ja,otherwise:Ja,together:Ja,though:Ja,yet:Ja}};const Ka={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ra={beforeTags:Object.assign({},Da.beforeTags,qa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Da.afterTags,qa.afterTags,Ka.afterTags),beforeWords:Object.assign({},Da.beforeWords,qa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Da.afterWords,qa.afterWords,{to:void 0})};const Ua={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qa={},_a={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Za={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Ya={beforeTags:Object.assign({},Oa.beforeTags,za.beforeTags,Ua),afterTags:Object.assign({},Oa.afterTags,za.afterTags,Qa),beforeWords:Object.assign({},Oa.beforeWords,za.beforeWords,_a),afterWords:Object.assign({},Oa.afterWords,za.afterWords,Za)};var Xa={beforeTags:Object.assign({},qa.beforeTags,za.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qa.afterTags,za.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qa.beforeWords,za.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qa.afterWords,za.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ro={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ao={beforeTags:Object.assign({},to.beforeTags,ro.beforeTags),afterTags:Object.assign({},to.afterTags,ro.afterTags),beforeWords:Object.assign({},to.beforeWords,ro.beforeWords),afterWords:Object.assign({},to.afterWords,ro.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const uo={"Adj|Gerund":Va,"Adj|Noun":Fa,"Adj|Past":Wa,"Adj|Present":Ra,"Noun|Verb":Xa,"Noun|Gerund":Ya,"Person|Noun":{beforeTags:Object.assign({},za.beforeTags,to.beforeTags),afterTags:Object.assign({},za.afterTags,to.afterTags),beforeWords:Object.assign({},za.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},za.afterWords,to.afterWords)},"Person|Date":ao,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,qa.beforeTags),afterTags:Object.assign({},to.afterTags,qa.afterTags),beforeWords:Object.assign({},to.beforeWords,qa.beforeWords),afterWords:Object.assign({},to.afterWords,qa.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const po="Adjective",mo="Infinitive",go="PresentTense",fo="Singular",vo="PastTense",bo="Adverb",yo="Plural",wo="Verb",ko="LastName",Po="Participle";var Ao=[null,null,{ea:fo,ia:"Noun",ic:po,ly:bo,"'n":wo,"'t":wo},{oed:vo,ued:vo,xed:vo," so":bo,"'ll":"Modal","'re":"Copula",azy:po,eer:"Noun",end:wo,ped:vo,ffy:po,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:po,mum:po,nes:go,nny:po,ous:po,que:po,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:go,eld:vo,ken:Po,ven:Po,ten:Po,ect:mo,ict:mo,ign:mo,ful:po,bal:po},{amed:vo,aped:vo,ched:vo,lked:vo,rked:vo,reed:vo,nded:vo,mned:po,cted:vo,dged:vo,ield:fo,akis:ko,cede:mo,chuk:ko,czyk:ko,ects:go,ends:wo,enko:ko,ette:fo,wner:fo,fies:go,fore:bo,gate:mo,gone:po,ices:yo,ints:yo,ruct:mo,ines:yo,ions:yo,less:po,llen:po,made:po,nsen:ko,oses:go,ould:"Modal",some:po,sson:ko,tion:fo,tage:"Noun",ique:fo,tive:po,tors:"Noun",vice:fo,lier:fo,fier:fo,wned:vo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:po,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:po,nary:po},{elist:fo,holic:fo,phite:fo,tized:vo,urned:vo,eased:vo,ances:yo,bound:po,ettes:yo,fully:bo,ishes:go,ities:yo,marek:ko,nssen:ko,ology:"Noun",osome:fo,tment:fo,ports:yo,rough:po,tches:go,tieth:"Ordinal",tures:yo,wards:bo,where:bo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:fo,dient:fo},{auskas:ko,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:ko,borough:"Place",sdottir:ko}];const jo="Adjective";var No=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:jo,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:jo,tele:"Noun","pro-":jo,"mis-":"Verb","dis-":"Verb","pre-":jo},{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:jo,radio:"Noun",tetra:"Noun","omni-":jo,"post-":jo},{pseudo:jo,"extra-":jo,"hyper-":jo,"inter-":jo,"intra-":jo,"deca-":jo},{electro:"Noun"}];const Eo="Adjective",xo="Infinitive",Io="PresentTense",To="Singular",Go="PastTense",Do="Expression",Co="LastName";var Oo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Co],[/.[^aeiou]ica$/,To,"harmonica"],[/^([hyj]a+)+$/,Do,"haha"]],c:[[/.[^aeiou]ic$/,Eo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Go,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Go,"rammed"],[/.[aeiou][sg]hed$/,Go,"gushed"],[/.[aeiou]red$/,Go,"hired"],[/.[aeiou]r?ried$/,Go,"hurried"],[/[^aeiou]ard$/,To,"steward"],[/[aeiou][^aeiou]id$/,Eo,""],[/.[vrl]id$/,Eo,"livid"],[/..led$/,Go,"hurled"],[/.[iao]sed$/,Go,""],[/[aeiou]n?[cs]ed$/,Go,""],[/[aeiou][rl]?[mnf]ed$/,Go,""],[/[aeiou][ns]?c?ked$/,Go,"bunked"],[/[aeiou]gned$/,Go],[/[aeiou][nl]?ged$/,Go],[/.[tdbwxyz]ed$/,Go],[/[^aeiou][aeiou][tvx]ed$/,Go],[/.[cdflmnprstv]ied$/,Go,"emptied"]],e:[[/.[lnr]ize$/,xo,"antagonize"],[/.[^aeiou]ise$/,xo,"antagonise"],[/.[aeiou]te$/,xo,"bite"],[/.[^aeiou][ai]ble$/,Eo,"fixable"],[/.[^aeiou]eable$/,Eo,"maleable"],[/.[ts]ive$/,Eo,"festive"],[/[a-z]-like$/,Eo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Eo,"cornish"],[/.v[iy]ch$/,Co,"..ovich"],[/^ug?h+$/,Do,"ughh"],[/^uh[ -]?oh$/,Do,"uhoh"],[/[a-z]-ish$/,Eo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Co,"polish-male"]],k:[[/^(k){2}$/,Do,"kkkk"]],l:[[/.[gl]ial$/,Eo,"familial"],[/.[^aeiou]ful$/,Eo,"fitful"],[/.[nrtumcd]al$/,Eo,"natal"],[/.[^aeiou][ei]al$/,Eo,"familial"]],m:[[/.[^aeiou]ium$/,To,"magnesium"],[/[^aeiou]ism$/,To,"schism"],[/^[hu]m+$/,Do,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Eo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Do,"noooo"],[/^(yo)+$/,Do,"yoo"],[/^wo{2,}[pt]?$/,Do,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,To],[/[^i]fer$/,xo],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Eo],[/[aeiou].*ist$/,Eo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Io],[/.[rln]ates$/,Io],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,To],[/.[aeiou]sks$/,Io],[/.[aeiou]kes$/,Io],[/[aeiou][^aeiou]is$/,To],[/[a-z]'s$/,"Noun"],[/^yes+$/,Do]],v:[[/.[^aeiou][ai][kln]ov$/,Co]],y:[[/.[cts]hy$/,Eo],[/.[st]ty$/,Eo],[/.[tnl]ary$/,Eo],[/.[oe]ry$/,To],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Eo],[/...lly$/,"Adverb"],[/.[gk]y$/,Eo],[/[bszmp]{2}y$/,Eo],[/.[ai]my$/,Eo],[/[ea]{2}zy$/,Eo],[/.[^aeiou]ity$/,To]]};const Vo="Verb",Bo="Noun";var zo={leftTags:[["Adjective",Bo],["Possessive",Bo],["Determiner",Bo],["Adverb",Vo],["Pronoun",Vo],["Value",Bo],["Ordinal",Bo],["Modal",Vo],["Superlative",Bo],["Demonym",Bo],["Honorific","Person"]],leftWords:[["i",Vo],["first",Bo],["it",Vo],["there",Vo],["not",Vo],["because",Bo],["if",Bo],["but",Bo],["who",Vo],["this",Bo],["his",Bo],["when",Bo],["you",Vo],["very","Adjective"],["old",Bo],["never",Vo],["before",Bo],["a","Singular"],["the",Bo],["been",Vo]],rightTags:[["Copula",Bo],["PastTense",Bo],["Conjunction",Bo],["Modal",Bo]],rightWords:[["there",Vo],["me",Vo],["man","Adjective"],["only",Vo],["him",Vo],["it",Vo],["were",Bo],["took",Bo],["himself",Vo],["went",Bo],["who",Bo],["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"},Fo={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"},So={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"},Ho={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],r=n.match(Lo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Lo,"")}(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},qo=/^([0-9]+)/,Ko=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 r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(qo,"")]}(n[0],n[1])})};var Ro=function(e={}){return(e=Object.assign({},e)).rules=Ko(e.rules),e.rules=Jo(e.rules),e.rev&&(e.rev=Ko(e.rev),e.rev=Jo(e.rev)),e.exceptions=Ko(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Uo=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 Qo=Ro({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=Ro(Ho),Zo=Ro(Fo),Yo=Ro(So),Xo=Uo(Qo),ei=Uo(_o),ti=Uo(Zo),ni=Uo(Yo),ri=Ro($o),ai=Ro(Mo);var oi={fromPast:Qo,fromPresent:_o,fromGerund:Zo,fromParticiple:Yo,toPast:Xo,toPresent:ei,toGerund:ti,toParticiple:ni,toComparative:ri,toSuperlative:ai,fromComparative:Uo(ri),fromSuperlative:Uo(ai)},ii=["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),{}),si=[[/([^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 li=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(ui[t].forEach(n=>e[n]=t),e),{});var ci=ui;var hi=function(e){let t=e.substring(e.length-3);if(!0===ci.hasOwnProperty(t))return ci[t];let n=e.substring(e.length-2);return!0===ci.hasOwnProperty(n)?ci[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const di={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var pi=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=hi(e)),di.hasOwnProperty(e))c=di[e];else if("Participle"===n)c=Wo(l,i);else if("PastTense"===n)c=Wo(l,r);else if("PresentTense"===n)c=Wo(l,a);else{if("Gerund"!==n)return e;c=Wo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var 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:Wo(i,n),PresentTense:Wo(i,r),Gerund:Wo(i,a),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 gi=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 fi="ically",vi=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]),bi=[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"}],yi=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"]),wi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var ki=function(e){return e.endsWith("ly")?vi.has(e)?e.replace(/ically/,"ical"):yi.has(e)?null:wi.hasOwnProperty(e)?wi[e]:gi(e,bi)||e:null};const Pi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ai={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var ji=function(e){if(Ai.hasOwnProperty(e))return Ai[e];let t=gi(e,Pi);return t||e+"ly"};const Ni=[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"}],Ei={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"},xi=new Set(["terrible","annoying"]);const Ii=function(e,t){const n=t.two.models.toSuperlative;return Wo(e,n)},Ti=function(e,t){const n=t.two.models.toComparative;return Wo(e,n)};var Gi={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 Di={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===Gi.hasOwnProperty(i)&&Gi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Na,nounToSingular:li,verbToInfinitive:pi,getTense:hi,verbConjugate:mi,adjToSuperlative:Ii,adjToComparative:Ti,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:ki,adjToAdverb:ji,adjToNoun:function(e){if(Ei.hasOwnProperty(e))return Ei[e];if(xi.has(e))return null;let t=gi(e,Ni);return t||e+"ness"}}}};var Ci=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 Oi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Vi=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=Oi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Oi(r,"Infinitive","Verb"),Object.assign(s,l),l=Oi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Oi(o,"Adjective","Superlative"),Object.assign(s,l),l=Oi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Bi={two:{models:oi}};const zi={"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:Di};let{lex:r,_multi:a}=Di.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Fi=function(e,t,n){let r=mi(e,Bi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Si=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=zi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Fi(a,r,!1),"Adj|Present"===o&&(Fi(a,r,!0),function(e,t,n){let r=Ii(e,n);t[r]=t[r]||"Superlative";let a=Ti(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=pi(a,Bi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=pi(a,Bi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=$i(n,t)};let Hi={one:{_multiCache:{},lexicon:xa},two:{irregularPlurals:ma,models:oi,suffixPatterns:Ao,prefixPatterns:No,endsWith:Oo,neighbours:zo,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:Ia,clues:ho,uncountable:{},orgWords:ii}};Hi=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=Si(e.two.switches,e),e=Vi(e),e=Ci(e)}(Hi);var Mi=Hi;const Li=/^(under|over|mis|re|un|dis|semi)-?/;var Wi=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(Li.test(a.normal)){let e=a.normal.replace(Li,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Ji=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 qi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Ki=new Set(["formulas","koalas","israelis","menus"]),Ri=["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 Ui=function(e){if(!e||e.length<=3)return!1;if(Ki.has(e))return!0;let t=e[e.length-1];return qi.hasOwnProperty(t)?qi[t].find(t=>e.endsWith(t)):"s"===t&&!Ri.find(t=>e.endsWith(t))};const Qi=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var _i=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Ui(e.normal)?Ji(e,"Plural","3-plural-guess"):Ji(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=hi(e.normal);t&&Ji(e,t,"3-verb-tense-guess")}}(r)};const Zi=/^\p{Lu}[\p{Ll}'’]/u,Yi=/[0-9]/,Xi=["Date","Month","WeekDay","Unit"],es=/^[IVXLCDM]{2,}$/,ts=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ns={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var rs=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===Zi.test(o)&&!1===Yi.test(o)?Xi.find(e=>r.tags.has(e))?null:(_i(e,t,n),r.tags.has("Noun")||r.tags.clear(),Ji(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&es.test(o)&&ts.test(o)&&!ns[r.normal]?(Ji(r,"RomanNumeral","2-xvii"),!0):null};const as=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 os=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=as(r.normal,n.two.suffixPatterns);if(null!==e)return Ji(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=as(r.implicit,n.two.suffixPatterns),null!==e))return Ji(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const is=/['‘’‛‵′`´]/,ss=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 Ji(r,e,"2-prefix"),r.confidence=.5,!0}return null};const cs=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"]),hs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!cs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},ds=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ps=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ms=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(hs(a)||hs(o))return Ji(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ds(a)||ds(o))return Ji(n,"Year","2-tagYear-close");if(ps(e[t-2])||ps(e[t+2]))return Ji(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 Ji(n,"Year","2-tagYear-noun")}}}return null};const gs=/^[A-Z]('s|,)?$/,fs=/^[A-Z-]+$/,vs=/([A-Z]\.)+[A-Z]?,?$/,bs=/[A-Z]{2,}('s|,)?$/,ys=/([a-z]\.)+[a-z]\.?$/,ws={I:!0,A:!0};var ks=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===fs.test(n)||n.length>5||ws.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==vs.test(n)&&!0!==ys.test(n)&&!0!==gs.test(n)&&!0!==bs.test(n))}(r,n)?(r.tags.clear(),Ji(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!ws.hasOwnProperty(r.text)&&gs.test(r.text)?(r.tags.clear(),Ji(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Ji(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&fs.test(r.text)&&r.text.length<=6?(Ji(r,"Acronym","3-titlecase-acronym"),!0):null};const Ps=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},As=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: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||Ps(e[t-1],a),l=l||Ps(e[t+1],o),l=l||As(e[t-1],r),l=l||As(e[t+1],i),l)return Ji(s,l,"3-[neighbour]"),_i(e,t,n),e[t].confidence=.2,!0}return null};const Ns=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 Es=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]&&Ns(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ns(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var xs=function(e,t,n){0===e[t].tags.size&&(Ji(e[t],"Noun","3-[fallback]"),_i(e,t,n),e[t].confidence=.1)};const Is=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ts=(e,t,n)=>0!==t||e[1]?null:n;var Gs={"Adj|Gerund":(e,t)=>Is(e,t),"Adj|Noun":(e,t)=>Is(e,t),"Adj|Past":(e,t)=>Is(e,t),"Adj|Present":(e,t)=>Is(e,t),"Noun|Gerund":(e,t)=>Is(e,t),"Noun|Verb":(e,t)=>Is(e,t)||Ts(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Is(e,t)||Ts(e,t,"PresentTense"),"Person|Noun":(e,t)=>Is(e,t),"Person|Verb":(e,t)=>0!==t&&Is(e,t)};const Ds="undefined"!=typeof process&&process.env?process.env:self.env||{},Cs=/^(under|over|mis|re|un|dis|semi)-?/,Os=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ds.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Vs=(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&&Ds.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Bs={tagSwitch:Wi,checkSuffix:os,checkRegex:ls,checkCase:rs,checkPrefix:us,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")&&(Ji(o,"Verb","3-[prefix]"),Ji(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Ji(o,"Adjective","3-[prefix]"),Ji(o,"Prefix","3-[prefix]")))},checkYear:ms},zs={checkAcronym:ks,neighbours:js,orgWords:Es,nounFallback:xs,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(Cs.test(l)&&!o[l]&&(l=l.replace(Cs,"")),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=Os(e[t+1],n.afterWords);return o=o||Os(e[t-1],n.beforeWords),o=o||Vs(e[t-1],n.beforeTags,a),o=o||Vs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Gs[o]&&(u=Gs[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ds.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},$s=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 Hs={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: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 Ys=/'/;var Xs=function(e,t){let n=e[t].normal.split(Ys)[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 el=/'/;var tl=function(e,t){let n=e[t].normal.split(el)[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 nl=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},al={in:!0,by:!0,for:!0};var ol=(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 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===al[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 il=/'/,sl=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)},ll={d:(e,t)=>tl(e,t),t:(e,t)=>nl(e,t),s:(e,t,n)=>ol(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Xs(e,t)},ul=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var cl={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===il.test(r[o].normal)&&([,i]=r[o].normal.split(il));let s=null;ll.hasOwnProperty(i)&&(s=ll[i](r,o,t)),s&&(s=ul(s,e),Zs(n,[a,o],s),sl(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=_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=Qs},hooks:["contractionTwo"]};const hl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const dl=["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:"#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:hl+" #Person",tag:"Person",reason:"randy-smith"},{match:hl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${hl}]`,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:dl,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:dl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:dl,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 ml=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:r}=t;ml=ml||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(ml),e.uncache(),e}},model:{two:{matches:pl}},hooks:["postTagger"]};var fl=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 vl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?fl(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 bl={api:function(e){e.prototype.swap=vl}};m.plugin(Ks),m.plugin(cl),m.plugin(gl),m.plugin(bl);var yl=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 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 kl={this:"Noun",then:"Pivot"};var Pl=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 Gl={compute:{chunks:function(e){const{document:t,world:n}=e;Pl(t),Al(t),El(e,t,n),Il(t),Tl(t)}},api:function(e){e.prototype.chunks=wl,e.prototype.clauses=yl},hooks:["chunks"]};const Dl=/'s$/;var Cl=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(Dl,""),e.normal=e.normal.replace(Dl,"")})}),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 Ol=/\(/,Vl=/\)/,Bl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Ol,"");let t=e[e.length-1];t.post=t.post.replace(Vl,"")}),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={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Fl=RegExp("("+Object.keys($l).join("|")+")"),Sl=RegExp("("+Object.values($l).join("|")+")"),Hl=function(e,t){const n=e[t].pre.match(Fl)[0]||"";if(!n||!$l[n])return null;const r=$l[n];for(;t{e[0].pre=e[0].pre.replace(Fl,"");let t=e[e.length-1];t.post=t.post.replace(Sl,"")})}(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 Ll=/\./g;var Wl=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(Ll,""),e.normal=e.normal.replace(Ll,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Ll,""),e.normal=e.normal.replace(Ll,""),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 Jl=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 ql=(e,t)=>"number"==typeof t?e.eq(t):e,Kl=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 Rl=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=Kl(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 ql(this,e).map(e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return ql(this,e).map(e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return ql(this,e).map(e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return ql(this,e).map(e=>{let n=Kl(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=ql(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=ql(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=ql(t,e),new Adjectives(t.document,t.pointer)}};const Ul=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},Ql=[["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 _l=[["emojis","emoji"],["atmentions","atMentions"]];var Zl=function(e){Ql.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=Ul,_l.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},Yl={api:function(e){Zl(e),Cl(e),zl(e),Ml(e),Rl(e),Jl(e),Wl(e)}};const Xl=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var eu={case:e=>{Xl(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Xl(e,e=>e.text=n(e.text,t))},whitespace:e=>{Xl(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=>{Xl(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 tu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),nu="unicode|punctuation|whitespace|acronyms",ru="|case|contractions|parentheses|quotations|emoji|honorifics",au={light:tu(nu),medium:tu(nu+ru),heavy:tu(nu+ru+"|possessives|adverbs|nouns|verbs")};var ou={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=au[e]),Object.keys(e).forEach(t=>{eu.hasOwnProperty(t)&&eu[t](this,e[t])}),this}}};var iu=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 su=["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 lu=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 cu=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:uu(e,t),isSubordinate:lu(e),root:t}};const hu=e=>e.text(),du=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 mu=function(e){let t=cu(e);return{root:hu(t.root),number:pu(t.number),determiner:hu(t.determiner),adjectives:du(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const gu={tags:!0};var fu=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,gu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",gu),e};const vu={tags:!0};var bu=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,vu).tag("Singular","toPlural"),e};const yu=(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 yu(this,e).map(cu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=mu(t)),n},[])}isPlural(e){let t=this.filter(e=>cu(e).isPlural);return yu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=cu(e).adjectives;n.found&&(t=t.concat(n))}),yu(t,e)}toPlural(e){return yu(this,e).map(e=>fu(e,cu(e)))}toSingular(e){return yu(this,e).map(e=>{let t=cu(e);return bu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=iu(this);return t=yu(t,e),new Nouns(this.document,t.pointer)}}};var ku=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 Pu=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(Au.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Au.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Au.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Nu=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 xu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Iu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Tu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Gu=function(e){if(!0===Iu.hasOwnProperty(e))return Iu[e];if("a"===e||"an"===e)return 1;const t=Pu(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=Cu(n),r=Cu(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:Cu(n);let a=r.text("reduced");return Du.test(a)&&(a=a.replace(Du,""),r=r.replaceWith(a)),r=Ou.hasOwnProperty(a)?Ou[a]:Cu(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:Cu(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 Bu=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 zu=[["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"],Fu=[[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"]],Su=function(e){let t=[];if(e>100)return t;for(let n=0;n=zu[n][1]&&(e-=zu[n][1],t.push(zu[n][0]));return $u[e]&&t.push($u[e]),t};var Hu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Bu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Fu.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(Su(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=Bu(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 Mu=function(e){if(!e.numerator||!e.denominator)return"";return`${Hu({num:e.numerator})} out of ${Hu({num:e.denominator})}`};const Lu={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 Wu=e=>{let t=Hu(e).split(" "),n=t[t.length-1];return Lu.hasOwnProperty(n)?t[t.length-1]=Lu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Ju=function(e){if(!e.numerator||!e.denominator)return"";let t=Hu({num:e.numerator}),n=Wu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const qu=(e,t)=>"number"==typeof t?e.eq(t):e;var Ku=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return qu(this,e).map(Vu)}get(e){return qu(this,e).map(Vu)}json(e){return qu(this,e).map(t=>{let n=t.toView().json(e)[0],r=Vu(t);return n.fraction=r,n},[])}toDecimal(e){return qu(this,e).forEach(e=>{let{decimal:t}=Vu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return qu(this,e).forEach(e=>{let t=Vu(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 qu(this,e).forEach(e=>{let t=Vu(e),n=Ju(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return qu(this,e).forEach(e=>{let t=Vu(e),n=Mu(t);e.replaceWith(n)}),this}toPercentage(e){return qu(this,e).forEach(e=>{let{decimal:t}=Vu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=ku(this);return t=qu(t,e),new Fractions(this.document,t.pointer)}};const Ru="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Uu=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("("+Ru+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ru+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ru+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ru+")"));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) (${Ru})`),r=e.has("("+Ru+") #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("("+Ru+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ru+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Qu=function(e){if("string"==typeof e)return{num:Gu(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=Vu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Gu(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 _u=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=Bu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Zu={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Yu={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var Xu=function(e){let t={suffix:"",prefix:e.prefix};return Zu.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Zu[e.prefix],t.prefix=""),Yu.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Yu[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var ec=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Xu(e);return t+Wu(e)+n}if("Ordinal"===t)return e.prefix+_u(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Xu(e);return t+Hu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const tc=(e,t)=>"number"==typeof t?e.eq(t):e;var nc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return tc(this,e).map(Qu)}get(e){return tc(this,e).map(Qu).map(e=>e.num)}json(e){return tc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Qu(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=Qu(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=ec(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=Qu(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=ec(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=Qu(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=ec(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=Qu(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=ec(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=Qu(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=ec(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=>Qu(t).num===e)}greaterThan(e){return this.filter(t=>Qu(t).num>e)}lessThan(e){return this.filter(t=>Qu(t).num{let r=Qu(n).num;return r>e&&r{let n=Qu(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=ec(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=Qu(e).num);let t=this.map(t=>{let n=Qu(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=ec(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=Uu(this);return t=tc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Uu(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=tc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Uu(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=tc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var rc={api:function(e){Ku(e),nc(e)}};const ac={people:!0,emails:!0,phoneNumbers:!0,places:!0},oc=function(e={}){return!1!==(e=Object.assign({},ac,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 ic={api:function(e){e.prototype.redact=oc}};var sc=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 lc=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 uc=function(e){let t=e.clauses(),n=lc(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 cc=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 hc=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 dc=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 mc=(e,t)=>"number"==typeof t?e.eq(t):e;var gc={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}=uc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return mc(this,e).map(e=>(uc(e),cc(e)))}toPresentTense(e){return mc(this,e).map(e=>(uc(e),hc(e)))}toFutureTense(e){return mc(this,e).map(e=>(uc(e),e=dc(e)))}toInfinitive(e){return mc(this,e).map(e=>(uc(e),pc(e)))}toNegative(e){return mc(this,e).map(e=>(uc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return mc(this,e).map(e=>(uc(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 mc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return mc(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=mc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=sc(this);return mc(t,e)}};Object.assign(e.prototype,t)}};var fc=function(e){return e.match("#Honorific+? #Person+")};var vc=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 bc="male",yc="female",wc={mr:bc,mrs:yc,miss:yc,madam:yc,king:bc,queen:yc,duke:bc,duchess:yc,baron:bc,baroness:yc,count:bc,countess:yc,prince:bc,princess:yc,sire:bc,dame:yc,lady:yc,ayatullah:bc,congressman:bc,congresswoman:yc,"first lady":yc,mx:null};var kc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return yc;if(n.has("#MaleName"))return bc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),wc.hasOwnProperty(e))return wc[e];if(/^her /.test(e))return yc;if(/^his /.test(e))return bc}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 bc;if(n&&!t)return yc}return null};const Pc=(e,t)=>"number"==typeof t?e.eq(t):e;var Ac=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Pc(this,e).map(vc)}json(e){return Pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=vc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:kc(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=fc(this);return t=Pc(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 Nc=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 Ec=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const xc=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 Ic=function(e){e.prototype.topics=xc};var Tc={api:function(e){Ac(e),Nc(e),Ec(e),Ic(e)}};var Gc=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 Dc=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 Cc=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 Oc=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},Vc=function(e){return e.match("#Negative")},Bc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var zc=function(e){let t=e.clone();t.contractions().expand();const n=Dc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Cc(t,n),auxiliary:Oc(t,n),negative:Vc(t),phrasal:Bc(n)}};const $c={tense:"PresentTense"},Fc={conditional:!0},Sc={tense:"FutureTense"},Hc={progressive:!0},Mc={tense:"PastTense"},Lc={complete:!0,progressive:!1},Wc={passive:!0},Jc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},qc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[$c]],["^wanted to #Infinitive$",[Mc]],["^will want to #Infinitive$",[Sc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Mc]],["^#PresentTense #Gerund$",[$c]],["^#Infinitive #Gerund$",[$c]],["^will #Infinitive #Gerund$",[Sc]],["^have #PastTense #Gerund$",[Mc]],["^will have #PastTense #Gerund$",[Mc]]],"simple-present":[["^#PresentTense$",[$c]],["^#Infinitive$",[$c]]],"simple-past":[["^#PastTense$",[Mc]]],"simple-future":[["^will #Adverb? #Infinitive",[Sc]]],"present-progressive":[["^(is|are|am) #Gerund$",[$c,Hc]]],"past-progressive":[["^(was|were) #Gerund$",[Mc,Hc]]],"future-progressive":[["^will be #Gerund$",[Sc,Hc]]],"present-perfect":[["^(has|have) #PastTense$",[Mc,Lc]]],"past-perfect":[["^had #PastTense$",[Mc,Lc]],["^had #PastTense to #Infinitive",[Mc,Lc]]],"future-perfect":[["^will have #PastTense$",[Sc,Lc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Mc,Hc]]],"past-perfect-progressive":[["^had been #Gerund$",[Mc,Hc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Sc,Hc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Mc,Wc]],["^(was|were) being (#PastTense|#Participle)",[Mc,Wc]],["^(had|have) been (#PastTense|#Participle)",[Mc,Wc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[$c,Wc]],["^(is|are|am) being (#PastTense|#Participle)",[$c,Wc]],["^has been (#PastTense|#Participle)",[$c,Wc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Sc,Wc,Fc]],["will be being? (#PastTense|#Participle)",[Sc,Wc,Fc]]],"present-conditional":[["would be #PastTense",[$c,Fc]]],"past-conditional":[["would have been #PastTense",[Mc,Fc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Sc]]],"auxiliary-past":[["^did #Infinitive$",[Mc,{plural:!1}]],["^used to #Infinitive$",[Mc,Lc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[$c,Lc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Mc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Kc=[];Object.keys(qc).map(e=>{qc[e].forEach(t=>{Kc.push({name:e,match:t[0],data:Jc(t[1])})})});var Rc=Kc;var Uc=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(),Qc(r)&&(n.remove(r),r=n.last()),Qc(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:_c(t,e)}};const Yc=e=>e,Xc=(e,t)=>{let n=Zc(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},eh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Zc(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},th=function(e,t){let n=Zc(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},nh=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},rh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,nh(e)),r&&e.replace(t.root,r),e},ah=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),oh=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},ih=function(e){return e&&e.isView?e.text("normal"):""},sh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,nh(e))};var lh=function(e){let t=zc(e);e=e.clone().toView();const n=Uc(e,t);return{root:t.root.text(),preAdverbs:oh(t.adverbs.pre),postAdverbs:oh(t.adverbs.post),auxiliary:ih(t.auxiliary),negative:t.negative.found,prefix:ih(t.prefix),infinitive:sh(t.root),grammar:n}};const uh={tags:!0};var ch=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,nh(r)),i&&e.replace(r,i,uh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=th(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const hh={tags:!0},dh={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,nh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Zc(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,hh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=dh.simple(e,t),e=dh.noAux(e,t))},hasHad:e=>(e.replace("has","had",hh),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,nh(a)),n(o,e.model).Participle}},ph={infinitive:dh.simple,"simple-present":dh.simple,"simple-past":Yc,"simple-future":dh.both,"present-progressive":e=>(e.replace("are","were",hh),e.replace("(is|are|am)","was",hh),e),"past-progressive":Yc,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":dh.hasHad,"past-perfect":Yc,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=ah(e)),e.remove("have"),e),"present-perfect-progressive":dh.hasHad,"past-perfect-progressive":Yc,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",hh),e),"passive-past":e=>(e.replace("have","had",hh),e),"passive-present":e=>(e.replace("(is|are)","was",hh),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",hh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Yc,"auxiliary-future":e=>(e.replace("(is|are|am)","was",hh),e),"auxiliary-past":Yc,"auxiliary-present":e=>(e.replace("(do|does)","did",hh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",hh):(dh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Yc,"want-infinitive":e=>(e.replace("(want|wants)","wanted",hh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),dh.simple(e,t),ah(e),e)};var mh=function(e,t,n){return ph.hasOwnProperty(n)?((e=ph[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const gh={tags:!0},fh=(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,nh(a)),!1===Xc(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=eh(e)),o&&(e=e.replace(a,o,gh)).not("#Particle").tag("PresentTense"),e},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,nh(a)),!1===Xc(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,gh)).not("#Particle").tag("Gerund"),e},bh={infinitive:fh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return fh(e,t);{let t=Zc(e).subject;if(Xc(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,gh)}return e},"simple-past":fh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=eh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else fh(e,t),e=e.remove("will");return e},"present-progressive":Yc,"past-progressive":(e,t)=>{let n=eh(e);return e.replace("(were|was)",n,gh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(fh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Zc(e).subject;return Xc(e)||n.has("i")?((e=rh(e,t)).remove("had"),e):(e.replace("had","has",gh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Yc,"past-perfect-progressive":e=>e.replace("had","has",gh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=eh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,gh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Yc,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Yc,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(vh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=th(e);return e.replace(t.auxiliary,n),e}return vh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Yc,"modal-infinitive":Yc,"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,nh(r)),a&&(e=e.replace(t.root,a,gh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),fh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Xc(e)&&(n="want"),e.replace("(want|wanted|wants)",n,gh),e.remove("will"),e}};var yh=function(e,t,n){return bh.hasOwnProperty(n)?((e=bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const wh={tags:!0},kh=(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,nh(r)),o&&(e=e.replace(r,o,wh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Ph=(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,nh(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},Ah={infinitive:kh,"simple-present":kh,"simple-past":kh,"simple-future":Yc,"present-progressive":Ph,"past-progressive":Ph,"future-progressive":Yc,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Yc,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Yc,"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":Yc,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Yc,"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":Yc,"modal-past":Yc,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),kh(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:Ah.hasOwnProperty(n)?((e=Ah[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Nh={tags:!0};var Eh=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,nh(a));let s=r(i,e.model).Gerund;return s&&(s=`${eh(e)} ${s}`,e.replace(a,s,Nh)),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 xh={tags:!0},Ih=function(e,t){let n=th(e);return e.prepend(n+" not"),e},Th=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)},Gh=e=>e.has("(is|was|am|are|will|were|be)"),Dh={"simple-present":(e,t)=>!0===Gh(e)?Th(e):(e=rh(e,t),e=Ih(e)),"simple-past":(e,t)=>!0===Gh(e)?Th(e):((e=rh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Gh(e)?Th(e):Ih(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",xh),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=Ih(e)).replace("wants","want",xh)};var Ch=function(e,t,n){if(e.has("#Negative"))return e;if(Dh.hasOwnProperty(n))return e=Dh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Gh(e)?Th(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Oh=(e,t)=>"number"==typeof t?e.eq(t):e;var Vh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Oh(this,e).map(zc)}json(e,t){return Oh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=lh(t),n},[])}subjects(e){return Oh(this,e).map(e=>(zc(e),Zc(e).subject))}adverbs(e){return Oh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Oh(this,e).filter(e=>!0!==Zc(e).plural)}isPlural(e){return Oh(this,e).filter(e=>!0===Zc(e).plural)}isImperative(e){return Oh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return ch(e,t,n.form)})}toPresentTense(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return yh(e,t,n.form)})}toPastTense(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return mh(e,t,n.form)})}toFutureTense(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return jh(e,t,n.form)})}toGerund(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return Eh(e,t,n.form)})}conjugate(e){return Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:ch(e.clone(),t,n.form).text("normal"),PastTense:mh(e.clone(),t,n.form).text("normal"),PresentTense:yh(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 Oh(this,e).map(e=>{let t=zc(e),n=Uc(e,t);return Ch(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=Gc(this);return t=Oh(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Gl),m.plugin(Yl),m.plugin(ou),m.plugin(wu),m.plugin(rc),m.plugin(ic),m.plugin(gc),m.plugin(Tc),m.plugin(Vh);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]);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 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 381a72ed1..464ab3038 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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;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,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(I(t.update([u]).firstTerm()),k(d,u,h,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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),he(n[i],e,s,c.length)):de.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),he(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 dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Yt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn,rn=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 on="";var sn={green:e=>""+e+on,red:e=>""+e+on,blue:e=>""+e+on,magenta:e=>""+e+on,cyan:e=>""+e+on,yellow:e=>""+e+on,black:e=>""+e+on,dim:e=>""+e+on,i:e=>""+e+on},ln=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(sn.blue("\n ──────")),t.forEach(e=>{console.log(sn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=sn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=sn.blue(" │ ")+sn.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 sn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},un=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(sn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(sn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(sn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(sn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},cn=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]}${sn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const dn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var hn=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()}},mn={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;a>2]|=(i.charCodeAt(u)||128)<>6)+14]=8*s,u=0;u>4]+(bn[r]+(0|o[[r,5*r+1,3*r+5,7*r][s]%16+u])))<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+r++%4])|a>>>32-s),t,n];for(r=4;r;)l[--r]=l[r]+s[r]}for(e="";r<32;)e+=(l[r>>3]>>4*(1^7&r++)&15).toString(16);return e}}}};const vn=function(e,t){if(e[0]!==t[0])return!1;let[,n,a]=e,[,r,o]=t;return n<=r&&a>r||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},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}}},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},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},Gn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Nn={union:function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=Gn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=jn(e,this);let t=In(this.fullPointer,e.fullPointer);return t=Gn(t,this.document),this.toView(t)},Nn.not=function(e){e=jn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Gn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=En(e.fullPointer,this.fullPointer);return t=Gn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=Gn(e,this.document),this.update(e)};var Dn={methods:Pn,api:function(e){Object.assign(e.prototype,Nn)}};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},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})},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=>0===e.wants.length||e.wants.filter(e=>a.has(e)).length>=e.minWant)})},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},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;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===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),1!=(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,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},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)}},da=function(e){Object.assign(e.prototype,ca)},ha={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:da,lib:ha};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}},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},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},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=Na(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})}}}},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)},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=dr},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=hr(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=36,yr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",vr=yr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var wr=function(e){if(void 0!==vr[e])return vr[e];let t=0,n=1,a=br,r=1;for(;n=0;n--,r*=br){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},kr=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=Ar(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Er(fr[e]);Nr.test(e)?Object.keys(t).forEach(t=>{if(xr[t]=e,"Noun|Verb"===e){let e=Gr(t,Tr);xr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Dr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Dr[e]="Emoticon"),delete Dr[""],delete Dr.null,delete Dr[" "];const Cr="Adjective";var Or={beforeTags:{Determiner:Cr,Possessive:Cr},afterTags:{Adjective:Cr},beforeWords:{seem:Cr,seemed:Cr,seems:Cr,feel:Cr,feels:Cr,felt:Cr,appear:Cr,appears:Cr,appeared:Cr,also:Cr,over:Cr,under:Cr,too:Cr,it:Cr,but:Cr,still:Cr,really:Cr,quite:Cr,well:Cr,very:Cr,deeply:Cr,profoundly:Cr,extremely:Cr,so:Cr,badly:Cr,mostly:Cr,totally:Cr,awfully:Cr,rather:Cr,nothing:Cr,something:Cr,anything:Cr},afterWords:{too:Cr,also:Cr,or:Cr}};const Br="Gerund";var zr={beforeTags:{Adverb:Br,Preposition:Br,Conjunction:Br},afterTags:{Adverb:Br,Possessive:Br,Person:Br,Pronoun:Br,Determiner:Br,Copula:Br,Preposition:Br,Conjunction:Br,Comparative:Br},beforeWords:{been:Br,keep:Br,continue:Br,stop:Br,am:Br,be:Br,me:Br,began:Br,start:Br,starts:Br,started:Br,stops:Br,stopped:Br,help:Br,helps:Br,avoid:Br,avoids:Br,love:Br,loves:Br,loved:Br,hate:Br,hates:Br,hated:Br},afterWords:{you:Br,me:Br,her:Br,him:Br,them:Br,their:Br,it:Br,this:Br,there:Br,on:Br,about:Br,for:Br}},Vr={beforeTags:Object.assign({},Or.beforeTags,zr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Or.afterTags,zr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Or.beforeWords,zr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Or.afterWords,zr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Fr="Singular";var $r={beforeTags:{Determiner:Fr,Possessive:Fr,Acronym:Fr,Noun:Fr,Adjective:Fr,PresentTense:Fr,Gerund:Fr,PastTense:Fr,Infinitive:Fr,Date:Fr},afterTags:{Value:Fr,Modal:Fr,Copula:Fr,PresentTense:Fr,PastTense:Fr,Demonym:Fr},beforeWords:{the:Fr,with:Fr,without:Fr,of:Fr,for:Fr,any:Fr,all:Fr,on:Fr,cut:Fr,cuts:Fr,save:Fr,saved:Fr,saves:Fr,make:Fr,makes:Fr,made:Fr,minus:Fr,plus:Fr,than:Fr,another:Fr,versus:Fr,neither:Fr,favorite:Fr,best:Fr,daily:Fr,weekly:Fr,linear:Fr,binary:Fr,mobile:Fr,lexical:Fr,technical:Fr,computer:Fr,scientific:Fr,formal:Fr},afterWords:{of:Fr,system:Fr,aid:Fr,method:Fr,utility:Fr,tool:Fr,reform:Fr,therapy:Fr,philosophy:Fr,room:Fr,authority:Fr,says:Fr,said:Fr,wants:Fr,wanted:Fr}};const Sr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Hr={beforeTags:Object.assign({},Or.beforeTags,$r.beforeTags,Sr.beforeTags),afterTags:Object.assign({},Or.afterTags,$r.afterTags),beforeWords:Object.assign({},Or.beforeWords,$r.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Or.afterWords,$r.afterWords)};const Jr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Mr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Lr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Wr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Kr={beforeTags:Object.assign({},Or.beforeTags,Jr),afterTags:Object.assign({},Or.afterTags,Mr),beforeWords:Object.assign({},Or.beforeWords,Lr),afterWords:Object.assign({},Or.afterWords,Wr)};const qr="Infinitive";var Rr={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 Ur={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Qr={beforeTags:Object.assign({},Or.beforeTags,Rr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Or.afterTags,Rr.afterTags,Ur.afterTags),beforeWords:Object.assign({},Or.beforeWords,Rr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Or.afterWords,Rr.afterWords,{to:void 0})};const Zr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},_r={},Yr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Xr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var eo={beforeTags:Object.assign({},zr.beforeTags,$r.beforeTags,Zr),afterTags:Object.assign({},zr.afterTags,$r.afterTags,_r),beforeWords:Object.assign({},zr.beforeWords,$r.beforeWords,Yr),afterWords:Object.assign({},zr.afterWords,$r.afterWords,Xr)},to={beforeTags:Object.assign({},Rr.beforeTags,$r.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Rr.afterTags,$r.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Rr.beforeWords,$r.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Rr.afterWords,$r.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const no="Person";var ao={beforeTags:{Honorific:no,Person:no,Preposition:no},afterTags:{Person:no,ProperNoun:no,Verb:no},ownTags:{ProperNoun:no},beforeWords:{hi:no,hey:no,yo:no,dear:no,hello:no},afterWords:{said:no,says:no,told:no,tells:no,feels:no,felt:no,seems:no,thinks:no,thought:no,spends:no,spendt:no,plays:no,played:no,sing:no,sang:no,learn:no,learned:no,wants:no,wanted:no}};const ro="Month",oo={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 io={beforeTags:Object.assign({},ao.beforeTags,oo.beforeTags),afterTags:Object.assign({},ao.afterTags,oo.afterTags),beforeWords:Object.assign({},ao.beforeWords,oo.beforeWords),afterWords:Object.assign({},ao.afterWords,oo.afterWords)};const so={Place:"Place"},lo={Place:"Place",Abbreviation:"Place"},uo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},ho={"Adj|Gerund":Vr,"Adj|Noun":Hr,"Adj|Past":Kr,"Adj|Present":Qr,"Noun|Verb":to,"Noun|Gerund":eo,"Person|Noun":{beforeTags:Object.assign({},$r.beforeTags,ao.beforeTags),afterTags:Object.assign({},$r.afterTags,ao.afterTags),beforeWords:Object.assign({},$r.beforeWords,ao.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},$r.afterWords,ao.afterWords)},"Person|Date":io,"Person|Verb":{beforeTags:Object.assign({},ao.beforeTags,Rr.beforeTags),afterTags:Object.assign({},ao.afterTags,Rr.afterTags),beforeWords:Object.assign({},ao.beforeWords,Rr.beforeWords),afterWords:Object.assign({},ao.afterWords,Rr.afterWords)},"Person|Place":{beforeTags:Object.assign({},so,ao.beforeTags),afterTags:Object.assign({},lo,ao.afterTags),beforeWords:Object.assign({},uo,ao.beforeWords),afterWords:Object.assign({},co,ao.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)};ho["Plural|Verb"]={beforeWords:go(ho["Noun|Verb"].beforeWords,{}),afterWords:go(ho["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:go(ho["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:go(ho["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var mo=ho;const po="Adjective",fo="Infinitive",bo="PresentTense",yo="Singular",vo="PastTense",wo="Adverb",ko="Plural",Po="Actor",Ao="Verb",Eo="Noun",Io="LastName",jo="Modal",Go="Participle";var No=[null,null,{ea:yo,ia:Eo,ic:po,ly:wo,"'n":Ao,"'t":Ao},{oed:vo,ued:vo,xed:vo," so":wo,"'ll":jo,"'re":"Copula",azy:po,eer:Eo,end:Ao,ped:vo,ffy:po,ify:fo,ing:"Gerund",ize:fo,ibe:fo,lar:po,mum:po,nes:bo,nny:po,ous:po,que:po,rol:yo,sis:yo,ogy:yo,oid:yo,ian:yo,zes:bo,eld:vo,ken:Go,ven:Go,ten:Go,ect:fo,ict:fo,ign:fo,ful:po,bal:po},{amed:vo,aped:vo,ched:vo,lked:vo,rked:vo,reed:vo,nded:vo,mned:po,cted:vo,dged:vo,ield:yo,akis:Io,cede:fo,chuk:Io,czyk:Io,ects:bo,ends:Ao,enko:Io,ette:yo,wner:yo,fies:bo,fore:wo,gate:fo,gone:po,ices:ko,ints:ko,ruct:fo,ines:ko,ions:ko,less:po,llen:po,made:po,nsen:Io,oses:bo,ould:jo,some:po,sson:Io,tion:yo,tage:Eo,ique:yo,tive:po,tors:Eo,vice:yo,lier:yo,fier:yo,wned:vo,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:po,vide:fo,ract:fo,duce:fo,pose:fo,eive:fo,lyze:fo,lyse:fo,iant:po,nary:po},{elist:yo,holic:yo,phite:yo,tized:vo,urned:vo,eased:vo,ances:ko,bound:po,ettes:ko,fully:wo,ishes:bo,ities:ko,marek:Io,nssen:Io,ology:Eo,osome:yo,tment:yo,ports:ko,rough:po,tches:bo,tieth:"Ordinal",tures:ko,wards:wo,where:wo,archy:Eo,pathy:Eo,opoly:Eo,embly:Eo,phate:Eo,ndent:yo,scent:yo,onist:yo,anist:yo,alist:yo,olist:yo,icist:yo,ounce:fo,iable:po,borne:po,gnant:po,inant:po,igent:po,atory:po,rient:yo,dient:yo},{auskas:Io,parent:yo,cedent:yo,ionary:yo,cklist:yo,keeper:Po,logist:Po,teenth:"Value"},{opoulos:Io,borough:"Place",sdottir:Io}];const Do="Adjective",xo="Noun",To="Verb";var Co=[null,null,{},{neo:xo,bio:xo,"de-":To,"re-":To,"un-":To},{anti:xo,auto:xo,faux:Do,hexa:xo,kilo:xo,mono:xo,nano:xo,octa:xo,poly:xo,semi:Do,tele:xo,"pro-":Do,"mis-":To,"dis-":To,"pre-":Do},{anglo:xo,centi:xo,ethno:xo,ferro:xo,grand:xo,hepta:xo,hydro:xo,intro:xo,macro:xo,micro:xo,milli:xo,nitro:xo,penta:xo,quasi:Do,radio:xo,tetra:xo,"omni-":Do,"post-":Do},{pseudo:Do,"extra-":Do,"hyper-":Do,"inter-":Do,"intra-":Do,"deca-":Do},{electro:xo}];const Oo="Adjective",Bo="Infinitive",zo="PresentTense",Vo="Singular",Fo="PastTense",$o="Adverb",So="Expression",Ho="Actor",Jo="Verb",Mo="Noun",Lo="LastName";var Wo={a:[[/.[aeiou]na$/,Mo,"tuna"],[/.[oau][wvl]ska$/,Lo],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,So,"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$/,Lo,"..ovich"],[/^ug?h+$/,So,"ughh"],[/^uh[ -]?oh$/,So,"uhoh"],[/[a-z]-ish$/,Oo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Lo,"polish-male"]],k:[[/^(k){2}$/,So,"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+$/,So,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oo,"republican"],[/[^aeiou]ician$/,Ho,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,So,"noooo"],[/^(yo)+$/,So,"yoo"],[/^wo{2,}[pt]?$/,So,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Vo],[/[^i]fer$/,Bo],[/.[^aeiou][ao]pher$/,Ho],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oo],[/[aeiou].*ist$/,Oo],[/^[a-z]et$/,Jo]],s:[[/.[^aeiou]ises$/,zo],[/.[rln]ates$/,zo],[/.[^z]ens$/,Jo],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,zo],[/.[aeiou]kes$/,zo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,Mo],[/^yes+$/,So]],v:[[/.[^aeiou][ai][kln]ov$/,Lo]],y:[[/.[cts]hy$/,Oo],[/.[st]ty$/,Oo],[/.[tnl]ary$/,Oo],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,$o],[/.(gg|bb|zz)ly$/,Oo],[/...lly$/,$o],[/.[gk]y$/,Oo],[/[bszmp]{2}y$/,Oo],[/.[ai]my$/,Oo],[/[ea]{2}zy$/,Oo],[/.[^aeiou]ity$/,Vo]]};const Ko="Verb",qo="Noun";var Ro={leftTags:[["Adjective",qo],["Possessive",qo],["Determiner",qo],["Adverb",Ko],["Pronoun",Ko],["Value",qo],["Ordinal",qo],["Modal",Ko],["Superlative",qo],["Demonym",qo],["Honorific","Person"]],leftWords:[["i",Ko],["first",qo],["it",Ko],["there",Ko],["not",Ko],["because",qo],["if",qo],["but",qo],["who",Ko],["this",qo],["his",qo],["when",qo],["you",Ko],["very","Adjective"],["old",qo],["never",Ko],["before",qo],["a","Singular"],["the",qo],["been",Ko]],rightTags:[["Copula",qo],["PastTense",qo],["Conjunction",qo],["Modal",qo]],rightWords:[["there",Ko],["me",Ko],["man","Adjective"],["only",Ko],["him",Ko],["it",Ko],["were",qo],["took",qo],["himself",Ko],["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"},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"},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"},_o={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"},Yo={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 ei=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(Xo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Xo,"")}(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},ni=/^([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(ni);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ni,"")]}(n[0],n[1])})};var ri=function(e={}){return(e=Object.assign({},e)).rules=ai(e.rules),e.rules=ti(e.rules),e.rev&&(e.rev=ai(e.rev),e.rev=ti(e.rev)),e.exceptions=ai(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},oi=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 ii=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"}),si=ri(_o),li=ri(Qo),ui=ri(Zo),ci=oi(ii),di=oi(si),hi=oi(li),gi=oi(ui),mi=ri(Uo),pi=ri(Yo);var fi={fromPast:ii,fromPresent:si,fromGerund:li,fromParticiple:ui,toPast:ci,toPresent:di,toGerund:hi,toParticiple:gi,toComparative:mi,toSuperlative:pi,fromComparative:oi(mi),fromSuperlative:oi(pi)},bi=["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,""]],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(wi[t].forEach(n=>e[n]=t),e),{});var ki=wi,Pi=function(e){let t=e.substring(e.length-3);if(!0===ki.hasOwnProperty(t))return ki[t];let n=e.substring(e.length-2);return!0===ki.hasOwnProperty(n)?ki[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ai={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ei=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=Pi(e)),Ai.hasOwnProperty(e))c=Ai[e];else if("Participle"===n)c=ei(l,i);else if("PastTense"===n)c=ei(l,a);else if("PresentTense"===n)c=ei(l,r);else{if("Gerund"!==n)return e;c=ei(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ii=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:ei(i,n),PresentTense:ei(i,a),Gerund:ei(i,r),FutureTense:"will "+e},u=ei(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},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 Gi="ically",Ni=new Set(["analyt"+Gi,"chem"+Gi,"class"+Gi,"clin"+Gi,"crit"+Gi,"ecolog"+Gi,"electr"+Gi,"empir"+Gi,"frant"+Gi,"grammat"+Gi,"ident"+Gi,"ideolog"+Gi,"log"+Gi,"mag"+Gi,"mathemat"+Gi,"mechan"+Gi,"med"+Gi,"method"+Gi,"method"+Gi,"mus"+Gi,"phys"+Gi,"phys"+Gi,"polit"+Gi,"pract"+Gi,"rad"+Gi,"satir"+Gi,"statist"+Gi,"techn"+Gi,"technolog"+Gi,"theoret"+Gi,"typ"+Gi,"vert"+Gi,"whims"+Gi]),Di=[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"]),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")?Ni.has(e)?e.replace(/ically/,"ical"):xi.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:ji(e,Di)||e:null};const Oi=[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=ji(e,Oi);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"}],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"},$i=new Set(["terrible","annoying"]),Si=function(e,t){const n=t.two.models.toSuperlative;return ei(e,n)},Hi=function(e,t){const n=t.two.models.toComparative;return ei(e,n)};var Ji={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"]}},Mi={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===Ji.hasOwnProperty(i)&&Ji[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Gr,nounToSingular:vi,verbToInfinitive:Ei,getTense:Pi,verbConjugate:Ii,adjToSuperlative:Si,adjToComparative:Hi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ei(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ei(e,n)},advToAdjective:Ci,adjToAdverb:zi,adjToNoun:function(e){if(Fi.hasOwnProperty(e))return Fi[e];if($i.has(e))return null;let t=ji(e,Vi);return t||e+"ness"}}}},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,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Ki=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=Wi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Wi(a,"Infinitive","Verb"),Object.assign(s,l),l=Wi(r,"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:fi}};const Ri={"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:a,_multi:r}=Mi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Qi=function(e,t,n){let a=Ii(e,qi);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]=Ri[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Qi(r,a,!1),"Adj|Present"===o&&(Qi(r,a,!0),function(e,t,n){let a=Si(e,n);t[a]=t[a]||"Superlative";let r=Hi(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ei(r,qi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ei(r,qi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Ui(n,t)};let _i={one:{_multiCache:{},lexicon:Dr},two:{irregularPlurals:pr,models:fi,suffixPatterns:No,prefixPatterns:Co,endsWith:Wo,neighbours:Ro,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:xr,clues:mo,uncountable:{},orgWords:bi}};_i=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=Ki(e),e=Li(e)}(_i);var Yi=_i;const Xi=/^(under|over|mis|re|un|dis|semi)-?/;var es=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(Xi.test(r.normal)){let e=r.normal.replace(Xi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},ts=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 ns={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"]),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 os=function(e){if(!e||e.length<=3)return!1;if(as.has(e))return!0;let t=e[e.length-1];return ns.hasOwnProperty(t)?ns[t].find(t=>e.endsWith(t)):"s"===t&&!rs.find(t=>e.endsWith(t))};const is=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ss=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(os(e.normal)?ts(e,"Plural","3-plural-guess"):ts(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Pi(e.normal);t&&ts(e,t,"3-verb-tense-guess")}}(a)};const ls=/^\p{Lu}[\p{Ll}'’]/u,us=/[0-9]/,cs=["Date","Month","WeekDay","Unit"],ds=/^[IVXLCDM]{2,}$/,hs=/^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 ms=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===ls.test(o)&&!1===us.test(o)?cs.find(e=>a.tags.has(e))?null:(ss(e,t,n),a.tags.has("Noun")||a.tags.clear(),ts(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&ds.test(o)&&hs.test(o)&&!gs[a.normal]?(ts(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 fs=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 ts(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=ps(a.implicit,n.two.suffixPatterns),null!==e))return ts(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const bs=/['‘’‛‵′`´]/,ys=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 ts(a,e,"2-prefix"),a.confidence=.5,!0}return null};const ks=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!!ks.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},As=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Es=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Is=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(Ps(r)||Ps(o))return ts(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(As(r)||As(o))return ts(n,"Year","2-tagYear-close");if(Es(e[t-2])||Es(e[t+2]))return ts(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 ts(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Gs=/^[A-Z-]+$/,Ns=/([A-Z]\.)+[A-Z]?,?$/,Ds=/[A-Z]{2,}('s|,)?$/,xs=/([a-z]\.)+[a-z]\.?$/,Ts={I:!0,A:!0};var Cs=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===Gs.test(n)||n.length>5||Ts.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ns.test(n)&&!0!==xs.test(n)&&!0!==js.test(n)&&!0!==Ds.test(n))}(a,n)?(a.tags.clear(),ts(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ts.hasOwnProperty(a.text)&&js.test(a.text)?(a.tags.clear(),ts(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(ts(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Gs.test(a.text)&&a.text.length<=6?(ts(a,"Acronym","3-titlecase-acronym"),!0):null};const Os=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: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||Os(e[t-1],r),l=l||Os(e[t+1],o),l=l||Bs(e[t-1],a),l=l||Bs(e[t+1],i),l)return ts(s,l,"3-[neighbour]"),ss(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 Fs=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]&&Vs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Vs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},$s=function(e,t,n){0===e[t].tags.size&&(ts(e[t],"Noun","3-[fallback]"),ss(e,t,n),e[t].confidence=.1)};const Ss=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Hs=(e,t,n)=>0!==t||e[1]?null:n;var Js={"Adj|Gerund":(e,t)=>Ss(e,t),"Adj|Noun":(e,t)=>Ss(e,t),"Adj|Past":(e,t)=>Ss(e,t),"Adj|Present":(e,t)=>Ss(e,t),"Noun|Gerund":(e,t)=>Ss(e,t),"Noun|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ss(e,t)||Hs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ss(e,t),"Person|Verb":(e,t)=>0!==t&&Ss(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 a=t[n];return a&&Ms.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ks=(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&&Ms.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},qs={tagSwitch:es,checkSuffix:fs,checkRegex:vs,checkCase:ms,checkPrefix:ws,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")&&(ts(o,"Verb","3-[prefix]"),ts(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(ts(o,"Adjective","3-[prefix]"),ts(o,"Prefix","3-[prefix]")))},checkYear:Is},Rs={checkAcronym:Cs,neighbours:zs,orgWords:Fs,nounFallback:$s,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(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=Ws(e[t+1],n.afterWords);return o=o||Ws(e[t-1],n.beforeWords),o=o||Ks(e[t-1],n.beforeTags,r),o=o||Ks(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Js[o]&&(u=Js[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Ms.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)},_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 Ys={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 ul=/'/;var cl=function(e,t){let n=e[t].normal.split(ul)[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 hl=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"]},gl=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 fl=(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 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 bl=/'/,yl=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)=>gl(e,t),s:(e,t,n)=>fl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):cl(e,t)},wl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var kl={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===bl.test(a[o].normal)&&([,i]=a[o].normal.split(bl));let s=null;vl.hasOwnProperty(i)&&(s=vl[i](a,o,t)),s&&(s=wl(s,e),ll(n,[r,o],s),yl(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=sl.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=il},hooks:["contractionTwo"]};const Pl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Al=["i","we","they"];let El=[].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: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:"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:Al,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:Al,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Al,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"}]),Il=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:a}=t;Il=Il||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(Il),e.uncache(),e}},model:{two:{matches:El}},hooks:["postTagger"]},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)},Nl=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},Dl={api:function(e){e.prototype.swap=Nl}};return m.plugin(al),m.plugin(kl),m.plugin(jl),m.plugin(Dl),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]);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 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 c30a0f6b7..d5f3e18f9 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 d=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 h=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=d(e,s,h);return e&&n.compute(h.hooks),n};Object.defineProperty(g,"_world",{value:h,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=d(e,s,h);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.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=(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,d=a[c],h=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);h=function(e){return e.map(e=>(e.id=E(e),e))}(h),n?(I(t.update([u]).firstTerm()),k(d,u,h,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=/'/,de=/^[0-9][^-–—]*[-–—].*?[0-9]/,he=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),he(n[i],e,s,c.length)):de.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),he(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 dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var ht=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,d=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=d[r-1][o]+1,(c=d[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=d[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;const Yt={text:!0,terms:!0};let Xt={case:"none",unicode:"some",form:"machine",punctuation:"some"};const en=function(e,t){return Object.assign({},e,t)},tn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,en(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,en(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,Xt,!1),root:e=>Qt(e,en(Xt,{form:"root"}),!1),offset:e=>{let t=tn.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)};tn.sentences=tn.sentence,tn.clean=tn.normal,tn.reduced=tn.root;const nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},Yt,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&tn[o]&&(r[o]=tn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};nn.data=nn.json;var an=nn;var rn=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 on={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 sn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(on.blue("\n ──────")),t.forEach(e=>{console.log(on.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=on.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=on.blue(" │ ")+on.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 on[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var ln=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(on.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(on.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(on.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(on.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var un=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]}${on.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const cn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var dn=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 gn={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;a>2]|=(i.charCodeAt(u)||128)<>6)+14]=8*s,u=0;u>4]+(fn[r]+(0|o[[r,5*r+1,3*r+5,7*r][s]%16+u])))<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+r++%4])|a>>>32-s),t,n];for(r=4;r;)l[--r]=l[r]+s[r]}for(e="";r<32;)e+=(l[r>>3]>>4*(1^7&r++)&15).toString(16);return e}}}};const yn=function(e,t){if(e[0]!==t[0])return!1;let[,n,a]=e,[,r,o]=t;return n<=r&&a>r||r<=n&&o>n},vn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var wn=function(e,t){let n=vn(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 kn={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:vn,splitAll:wn}}};var Pn=function(e,t){let n=e.concat(t),a=vn(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=>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);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 En=function(e,t){let n=vn(t),a=[];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},jn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Nn={union:function(e){e=In(e,this);let t=Pn(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)}};Nn.and=Nn.union,Nn.intersection=function(e){e=In(e,this);let t=En(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.not=function(e){e=In(e,this);let t=An(this.fullPointer,e.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.difference=Nn.not,Nn.complement=function(){let e=this.all(),t=An(e.fullPointer,this.fullPointer);return t=jn(t,this.document),this.toView(t)},Nn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Pn(e,[t])}),e=jn(e,this.document),this.update(e)};var Gn={methods:kn,api:function(e){Object.assign(e.prototype,Nn)}};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 xn=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: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=Dn(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 Tn=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 Cn=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 On=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 Bn=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=xn(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=Tn(r,t.hooks);return o=Cn(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),On(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===Bn(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 Vn=/ /,Fn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},$n=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(),Vn.test(t))!function(e,t,n,a){let r=t.split(Vn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),$n(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nSn(e,t,n,a))};var Hn=Sn;var Jn=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=>Mn({id:e})),t}return[Mn({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},qn=e=>"[object Array]"===Object.prototype.toString.call(e),Rn=e=>(e=e||"").trim(),Un=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Ln.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:Wn(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=Mn({});return e.forEach(e=>{if((e=Mn(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(Mn),t);var t},Qn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Kn(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},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},_n={text:Qn,txt:Qn,array:Zn,flat:Zn},Yn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Qn(e,!0)),null):_n.hasOwnProperty(t)?_n[t](e):e},Xn=e=>{Kn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},ea=/\//;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=Rn(e),!ea.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)||Mn({});return new g$1(t)}add(e,t={}){if(qn(e))return e.forEach(e=>this.add(Rn(e),t)),this;e=Rn(e);let n=Mn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Rn(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 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 qn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){Xn(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 Xn(this.json),Yn(this.json,e)}debug(){return Xn(this.json),Yn(this.json,"debug"),this}}const ta=function(e){let t=Un(e);return new g$1(t)};ta.prototype.plugin=function(e){e(this)};var na={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const aa=function(e){if(na.hasOwnProperty(e.id))return na[e.id];if(na.hasOwnProperty(e.is))return na[e.is];let t=e._cache.parents.find(e=>na[e]);return na[t]};var ra=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:aa(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 oa=function(e){return e?"string"==typeof e?[e]:e:[]};var ia=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=oa(e[t].children),e[t].not=oa(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 sa={one:{setTag:Hn,unTag:Jn,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=ia(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 ta(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ra(n)}}};const la=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ua={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||""),la(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 la(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 ca=function(e){Object.assign(e.prototype,ua)};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 ha=new Set(["Auxiliary","Possessive"]);var ga={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(ha.has(e)||!t.hasOwnProperty(n))return 1;if(ha.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:sa,api:ca,lib:da};const ma=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,pa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var fa=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 Ba=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,za=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Va=/['’]/,Fa=/^[a-z]\.([a-z]\.)+/i,$a=/^[-+.][0-9]/,Sa=/^'[0-9]{2}/;var Ha=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ba,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!$a.test(e)?"'"===n&&Sa.test(e)?(n="",t):"":(n="",t)))).replace(za,r=>(a=r,Va.test(r)&&/[sn]['’]$/.test(t)&&!1===Va.test(n)?(a=a.replace(Va,""),"'"):!0===Fa.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Ja=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 Ma=/([A-Z]\.)+[A-Z]?,?$/,La=/^[A-Z]\.,?$/,Wa=/[A-Z]{2,}('s|,)?$/,Ka=/([a-z]\.)+[a-z]\.?$/;var qa=function(e){return function(e){return!0===Ma.test(e)||!0===Ka.test(e)||!0===La.test(e)||!0===Wa.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ra=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ja(a),a=n(a,t),a=qa(a),e.normal=a};var Ua={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:Ea,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(Ca);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=Da(n),n=Na(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ha(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=>{Ra(e,t)}),n})}}}};var Qa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Za={},_a={};[[["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=>{Za[t]=!0,_a[t]="Abbreviation",void 0!==e[1]&&(_a[t]=[_a[t],e[1]])})});var Ya=["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 Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",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:"ŹźŻżŽžƵƶȤȥɀΖ"},er={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){er[t]=e}))}));const tr=/\//,nr=/[a-z]\.[a-z]/i,ar=/[0-9]/;var rr=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])),tr.test(n)&&!nr.test(n)&&!ar.test(n)){let t=n.split(tr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const or=/^\p{Letter}+-\p{Letter}+$/u;var ir=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"),or.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var sr=function(e){let t=0,n=0,a=e.document;for(let e=0;elr(e,rr),machine:e=>lr(e,ir),normal:e=>lr(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 a[e]}),a};const hr={safe:!0,min:3};var gr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=cr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},hr,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(bn),m.extend(St),m.extend(Gn),m.extend(ga),m.plugin(be),m.extend(ur),m.plugin(f),m.extend(De),m.extend(gr),m.extend(Pe),m.extend(zn);var mr={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",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 fr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",br=fr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var yr=function(e){if(void 0!==br[e])return br[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 vr=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=kr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Pr(pr[e]);jr.test(e)?Object.keys(t).forEach(t=>{if(Gr[t]=e,"Noun|Verb"===e){let e=Ir(t,Dr);Gr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Nr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Nr[e]="Emoticon"),delete Nr[""],delete Nr.null,delete Nr[" "];const xr="Adjective";var Tr={beforeTags:{Determiner:xr,Possessive:xr},afterTags:{Adjective:xr},beforeWords:{seem:xr,seemed:xr,seems:xr,feel:xr,feels:xr,felt:xr,appear:xr,appears:xr,appeared:xr,also:xr,over:xr,under:xr,too:xr,it:xr,but:xr,still:xr,really:xr,quite:xr,well:xr,very:xr,deeply:xr,profoundly:xr,extremely:xr,so:xr,badly:xr,mostly:xr,totally:xr,awfully:xr,rather:xr,nothing:xr,something:xr,anything:xr},afterWords:{too:xr,also:xr,or:xr}};const Cr="Gerund";var Or={beforeTags:{Adverb:Cr,Preposition:Cr,Conjunction:Cr},afterTags:{Adverb:Cr,Possessive:Cr,Person:Cr,Pronoun:Cr,Determiner:Cr,Copula:Cr,Preposition:Cr,Conjunction:Cr,Comparative:Cr},beforeWords:{been:Cr,keep:Cr,continue:Cr,stop:Cr,am:Cr,be:Cr,me:Cr,began:Cr,start:Cr,starts:Cr,started:Cr,stops:Cr,stopped:Cr,help:Cr,helps:Cr,avoid:Cr,avoids:Cr,love:Cr,loves:Cr,loved:Cr,hate:Cr,hates:Cr,hated:Cr},afterWords:{you:Cr,me:Cr,her:Cr,him:Cr,them:Cr,their:Cr,it:Cr,this:Cr,there:Cr,on:Cr,about:Cr,for:Cr}};var Br={beforeTags:Object.assign({},Tr.beforeTags,Or.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Tr.afterTags,Or.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Tr.beforeWords,Or.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Tr.afterWords,Or.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const zr="Singular";var Vr={beforeTags:{Determiner:zr,Possessive:zr,Acronym:zr,Noun:zr,Adjective:zr,PresentTense:zr,Gerund:zr,PastTense:zr,Infinitive:zr,Date:zr},afterTags:{Value:zr,Modal:zr,Copula:zr,PresentTense:zr,PastTense:zr,Demonym:zr},beforeWords:{the:zr,with:zr,without:zr,of:zr,for:zr,any:zr,all:zr,on:zr,cut:zr,cuts:zr,save:zr,saved:zr,saves:zr,make:zr,makes:zr,made:zr,minus:zr,plus:zr,than:zr,another:zr,versus:zr,neither:zr,favorite:zr,best:zr,daily:zr,weekly:zr,linear:zr,binary:zr,mobile:zr,lexical:zr,technical:zr,computer:zr,scientific:zr,formal:zr},afterWords:{of:zr,system:zr,aid:zr,method:zr,utility:zr,tool:zr,reform:zr,therapy:zr,philosophy:zr,room:zr,authority:zr,says:zr,said:zr,wants:zr,wanted:zr}};const Fr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var $r={beforeTags:Object.assign({},Tr.beforeTags,Vr.beforeTags,Fr.beforeTags),afterTags:Object.assign({},Tr.afterTags,Vr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Vr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,Vr.afterWords)};const Sr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Hr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Jr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Mr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Lr={beforeTags:Object.assign({},Tr.beforeTags,Sr),afterTags:Object.assign({},Tr.afterTags,Hr),beforeWords:Object.assign({},Tr.beforeWords,Jr),afterWords:Object.assign({},Tr.afterWords,Mr)};const Wr="Infinitive";var Kr={beforeTags:{Modal:Wr,Adverb:Wr,Negative:Wr,Plural:Wr},afterTags:{Determiner:Wr,Adverb:Wr,Possessive:Wr,Preposition:Wr},beforeWords:{i:Wr,we:Wr,you:Wr,they:Wr,to:Wr,please:Wr,will:Wr,have:Wr,had:Wr,would:Wr,could:Wr,should:Wr,do:Wr,did:Wr,does:Wr,can:Wr,must:Wr,us:Wr,me:Wr,he:Wr,she:Wr,it:Wr,being:Wr},afterWords:{the:Wr,me:Wr,you:Wr,him:Wr,her:Wr,them:Wr,it:Wr,a:Wr,an:Wr,up:Wr,down:Wr,by:Wr,out:Wr,off:Wr,under:Wr,when:Wr,all:Wr,to:Wr,because:Wr,although:Wr,before:Wr,how:Wr,otherwise:Wr,together:Wr,though:Wr,yet:Wr}};const qr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Rr={beforeTags:Object.assign({},Tr.beforeTags,Kr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Tr.afterTags,Kr.afterTags,qr.afterTags),beforeWords:Object.assign({},Tr.beforeWords,Kr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Tr.afterWords,Kr.afterWords,{to:void 0})};const Ur={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Qr={},Zr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},_r={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Yr={beforeTags:Object.assign({},Or.beforeTags,Vr.beforeTags,Ur),afterTags:Object.assign({},Or.afterTags,Vr.afterTags,Qr),beforeWords:Object.assign({},Or.beforeWords,Vr.beforeWords,Zr),afterWords:Object.assign({},Or.afterWords,Vr.afterWords,_r)};var Xr={beforeTags:Object.assign({},Kr.beforeTags,Vr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Kr.afterTags,Vr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Kr.beforeWords,Vr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Kr.afterWords,Vr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const eo="Person";var to={beforeTags:{Honorific:eo,Person:eo,Preposition:eo},afterTags:{Person:eo,ProperNoun:eo,Verb:eo},ownTags:{ProperNoun:eo},beforeWords:{hi:eo,hey:eo,yo:eo,dear:eo,hello:eo},afterWords:{said:eo,says:eo,told:eo,tells:eo,feels:eo,felt:eo,seems:eo,thinks:eo,thought:eo,spends:eo,spendt:eo,plays:eo,played:eo,sing:eo,sang:eo,learn:eo,learned:eo,wants:eo,wanted:eo}};const no="Month",ao={beforeTags:{Date:no,Value:no},afterTags:{Date:no,Value:no},beforeWords:{by:no,in:no,on:no,during:no,after:no,before:no,between:no,until:no,til:no,sometime:no,of:no,this:no,next:no,last:no,previous:no,following:no},afterWords:{sometime:no,in:no,of:no,until:no,the:no}};var ro={beforeTags:Object.assign({},to.beforeTags,ao.beforeTags),afterTags:Object.assign({},to.afterTags,ao.afterTags),beforeWords:Object.assign({},to.beforeWords,ao.beforeWords),afterWords:Object.assign({},to.afterWords,ao.afterWords)};const oo={Place:"Place"},io={Place:"Place",Abbreviation:"Place"},so={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const uo={"Adj|Gerund":Br,"Adj|Noun":$r,"Adj|Past":Lr,"Adj|Present":Rr,"Noun|Verb":Xr,"Noun|Gerund":Yr,"Person|Noun":{beforeTags:Object.assign({},Vr.beforeTags,to.beforeTags),afterTags:Object.assign({},Vr.afterTags,to.afterTags),beforeWords:Object.assign({},Vr.beforeWords,to.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Vr.afterWords,to.afterWords)},"Person|Date":ro,"Person|Verb":{beforeTags:Object.assign({},to.beforeTags,Kr.beforeTags),afterTags:Object.assign({},to.afterTags,Kr.afterTags),beforeWords:Object.assign({},to.beforeWords,Kr.beforeWords),afterWords:Object.assign({},to.afterWords,Kr.afterWords)},"Person|Place":{beforeTags:Object.assign({},oo,to.beforeTags),afterTags:Object.assign({},io,to.afterTags),beforeWords:Object.assign({},so,to.beforeWords),afterWords:Object.assign({},lo,to.afterWords)}},co=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};uo["Plural|Verb"]={beforeWords:co(uo["Noun|Verb"].beforeWords,{}),afterWords:co(uo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:co(uo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:co(uo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ho=uo;const go="Adjective",mo="Infinitive",po="PresentTense",fo="Singular",bo="PastTense",yo="Adverb",vo="Plural",wo="Verb",ko="LastName",Po="Participle";var Ao=[null,null,{ea:fo,ia:"Noun",ic:go,ly:yo,"'n":wo,"'t":wo},{oed:bo,ued:bo,xed:bo," so":yo,"'ll":"Modal","'re":"Copula",azy:go,eer:"Noun",end:wo,ped:bo,ffy:go,ify:mo,ing:"Gerund",ize:mo,ibe:mo,lar:go,mum:go,nes:po,nny:go,ous:go,que:go,rol:fo,sis:fo,ogy:fo,oid:fo,ian:fo,zes:po,eld:bo,ken:Po,ven:Po,ten:Po,ect:mo,ict:mo,ign:mo,ful:go,bal:go},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:go,cted:bo,dged:bo,ield:fo,akis:ko,cede:mo,chuk:ko,czyk:ko,ects:po,ends:wo,enko:ko,ette:fo,wner:fo,fies:po,fore:yo,gate:mo,gone:go,ices:vo,ints:vo,ruct:mo,ines:vo,ions:vo,less:go,llen:go,made:go,nsen:ko,oses:po,ould:"Modal",some:go,sson:ko,tion:fo,tage:"Noun",ique:fo,tive:go,tors:"Noun",vice:fo,lier:fo,fier:fo,wned:bo,gent:fo,tist:fo,pist:fo,rist:fo,mist:fo,yist:fo,vist:fo,lite:fo,site:fo,rite:fo,mite:fo,bite:fo,mate:fo,date:fo,ndal:fo,vent:fo,uist:fo,gist:fo,note:fo,cide:fo,wide:go,vide:mo,ract:mo,duce:mo,pose:mo,eive:mo,lyze:mo,lyse:mo,iant:go,nary:go},{elist:fo,holic:fo,phite:fo,tized:bo,urned:bo,eased:bo,ances:vo,bound:go,ettes:vo,fully:yo,ishes:po,ities:vo,marek:ko,nssen:ko,ology:"Noun",osome:fo,tment:fo,ports:vo,rough:go,tches:po,tieth:"Ordinal",tures:vo,wards:yo,where:yo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:fo,scent:fo,onist:fo,anist:fo,alist:fo,olist:fo,icist:fo,ounce:mo,iable:go,borne:go,gnant:go,inant:go,igent:go,atory:go,rient:fo,dient:fo},{auskas:ko,parent:fo,cedent:fo,ionary:fo,cklist:fo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:ko,borough:"Place",sdottir:ko}];const Eo="Adjective";var Io=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Eo,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Eo,tele:"Noun","pro-":Eo,"mis-":"Verb","dis-":"Verb","pre-":Eo},{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:Eo,radio:"Noun",tetra:"Noun","omni-":Eo,"post-":Eo},{pseudo:Eo,"extra-":Eo,"hyper-":Eo,"inter-":Eo,"intra-":Eo,"deca-":Eo},{electro:"Noun"}];const jo="Adjective",No="Infinitive",Go="PresentTense",Do="Singular",xo="PastTense",To="Expression",Co="LastName";var Oo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Co],[/.[^aeiou]ica$/,Do,"harmonica"],[/^([hyj]a+)+$/,To,"haha"]],c:[[/.[^aeiou]ic$/,jo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,xo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,xo,"rammed"],[/.[aeiou][sg]hed$/,xo,"gushed"],[/.[aeiou]red$/,xo,"hired"],[/.[aeiou]r?ried$/,xo,"hurried"],[/[^aeiou]ard$/,Do,"steward"],[/[aeiou][^aeiou]id$/,jo,""],[/.[vrl]id$/,jo,"livid"],[/..led$/,xo,"hurled"],[/.[iao]sed$/,xo,""],[/[aeiou]n?[cs]ed$/,xo,""],[/[aeiou][rl]?[mnf]ed$/,xo,""],[/[aeiou][ns]?c?ked$/,xo,"bunked"],[/[aeiou]gned$/,xo],[/[aeiou][nl]?ged$/,xo],[/.[tdbwxyz]ed$/,xo],[/[^aeiou][aeiou][tvx]ed$/,xo],[/.[cdflmnprstv]ied$/,xo,"emptied"]],e:[[/.[lnr]ize$/,No,"antagonize"],[/.[^aeiou]ise$/,No,"antagonise"],[/.[aeiou]te$/,No,"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$/,Co,"..ovich"],[/^ug?h+$/,To,"ughh"],[/^uh[ -]?oh$/,To,"uhoh"],[/[a-z]-ish$/,jo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Co,"polish-male"]],k:[[/^(k){2}$/,To,"kkkk"]],l:[[/.[gl]ial$/,jo,"familial"],[/.[^aeiou]ful$/,jo,"fitful"],[/.[nrtumcd]al$/,jo,"natal"],[/.[^aeiou][ei]al$/,jo,"familial"]],m:[[/.[^aeiou]ium$/,Do,"magnesium"],[/[^aeiou]ism$/,Do,"schism"],[/^[hu]m+$/,To,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,jo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,To,"noooo"],[/^(yo)+$/,To,"yoo"],[/^wo{2,}[pt]?$/,To,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Do],[/[^i]fer$/,No],[/.[^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$/,Go],[/.[rln]ates$/,Go],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Do],[/.[aeiou]sks$/,Go],[/.[aeiou]kes$/,Go],[/[aeiou][^aeiou]is$/,Do],[/[a-z]'s$/,"Noun"],[/^yes+$/,To]],v:[[/.[^aeiou][ai][kln]ov$/,Co]],y:[[/.[cts]hy$/,jo],[/.[st]ty$/,jo],[/.[tnl]ary$/,jo],[/.[oe]ry$/,Do],[/[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$/,Do]]};const Bo="Verb",zo="Noun";var Vo={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"},$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"},So={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"},Ho={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"},Jo={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 Mo=/^.([0-9]+)/;var Lo=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(Mo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Mo,"")}(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},Ko=/^([0-9]+)/,qo=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 a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(Ko,"")]}(n[0],n[1])})};var Ro=function(e={}){return(e=Object.assign({},e)).rules=qo(e.rules),e.rules=Wo(e.rules),e.rev&&(e.rev=qo(e.rev),e.rev=Wo(e.rev)),e.exceptions=qo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Uo=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 Qo=Ro({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=Ro(Ho),_o=Ro($o),Yo=Ro(So),Xo=Uo(Qo),ei=Uo(Zo),ti=Uo(_o),ni=Uo(Yo),ai=Ro(Fo),ri=Ro(Jo);var oi={fromPast:Qo,fromPresent:Zo,fromGerund:_o,fromParticiple:Yo,toPast:Xo,toPresent:ei,toGerund:ti,toParticiple:ni,toComparative:ai,toSuperlative:ri,fromComparative:Uo(ai),fromSuperlative:Uo(ri)},ii=["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),{}),si=[[/([^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 li=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(ui[t].forEach(n=>e[n]=t),e),{});var ci=ui;var di=function(e){let t=e.substring(e.length-3);if(!0===ci.hasOwnProperty(t))return ci[t];let n=e.substring(e.length-2);return!0===ci.hasOwnProperty(n)?ci[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const hi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var gi=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)),hi.hasOwnProperty(e))c=hi[e];else if("Participle"===n)c=Lo(l,i);else if("PastTense"===n)c=Lo(l,a);else if("PresentTense"===n)c=Lo(l,r);else{if("Gerund"!==n)return e;c=Lo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var mi=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:Lo(i,n),PresentTense:Lo(i,a),Gerund:Lo(i,r),FutureTense:"will "+e},u=Lo(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 fi="ically",bi=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]),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"}],vi=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"]),wi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var ki=function(e){return e.endsWith("ly")?bi.has(e)?e.replace(/ically/,"ical"):vi.has(e)?null:wi.hasOwnProperty(e)?wi[e]:pi(e,yi)||e:null};const Pi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ai={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ei=function(e){if(Ai.hasOwnProperty(e))return Ai[e];let t=pi(e,Pi);return t||e+"ly"};const Ii=[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"},Ni=new Set(["terrible","annoying"]);const Gi=function(e,t){const n=t.two.models.toSuperlative;return Lo(e,n)},Di=function(e,t){const n=t.two.models.toComparative;return Lo(e,n)};var xi={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 Ti={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===xi.hasOwnProperty(i)&&xi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Ir,nounToSingular:li,verbToInfinitive:gi,getTense:di,verbConjugate:mi,adjToSuperlative:Gi,adjToComparative:Di,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Lo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Lo(e,n)},advToAdjective:ki,adjToAdverb:Ei,adjToNoun:function(e){if(ji.hasOwnProperty(e))return ji[e];if(Ni.has(e))return null;let t=pi(e,Ii);return t||e+"ness"}}}};var Ci=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 Oi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Bi=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=Oi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Oi(a,"Infinitive","Verb"),Object.assign(s,l),l=Oi(r,"Infinitive","Gerund"),Object.assign(s,l),l=Oi(o,"Adjective","Superlative"),Object.assign(s,l),l=Oi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let zi={two:{models:oi}};const Vi={"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:Ti};let{lex:a,_multi:r}=Ti.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},$i=function(e,t,n){let a=mi(e,zi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Si=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Vi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||$i(r,a,!1),"Adj|Present"===o&&($i(r,a,!0),function(e,t,n){let a=Gi(e,n);t[a]=t[a]||"Superlative";let r=Di(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=gi(r,zi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=gi(r,zi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Fi(n,t)};let Hi={one:{_multiCache:{},lexicon:Nr},two:{irregularPlurals:mr,models:oi,suffixPatterns:Ao,prefixPatterns:Io,endsWith:Oo,neighbours:Vo,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:Gr,clues:ho,uncountable:{},orgWords:ii}};Hi=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=Si(e.two.switches,e),e=Bi(e),e=Ci(e)}(Hi);var Ji=Hi;const Mi=/^(under|over|mis|re|un|dis|semi)-?/;var Li=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(Mi.test(r.normal)){let e=r.normal.replace(Mi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Wi=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 Ki={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},qi=new Set(["formulas","koalas","israelis","menus"]),Ri=["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 Ui=function(e){if(!e||e.length<=3)return!1;if(qi.has(e))return!0;let t=e[e.length-1];return Ki.hasOwnProperty(t)?Ki[t].find(t=>e.endsWith(t)):"s"===t&&!Ri.find(t=>e.endsWith(t))};const Qi=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Zi=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(Ui(e.normal)?Wi(e,"Plural","3-plural-guess"):Wi(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&&Wi(e,t,"3-verb-tense-guess")}}(a)};const _i=/^\p{Lu}[\p{Ll}'’]/u,Yi=/[0-9]/,Xi=["Date","Month","WeekDay","Unit"],es=/^[IVXLCDM]{2,}$/,ts=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ns={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var as=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===_i.test(o)&&!1===Yi.test(o)?Xi.find(e=>a.tags.has(e))?null:(Zi(e,t,n),a.tags.has("Noun")||a.tags.clear(),Wi(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&es.test(o)&&ts.test(o)&&!ns[a.normal]?(Wi(a,"RomanNumeral","2-xvii"),!0):null};const rs=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 os=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=rs(a.normal,n.two.suffixPatterns);if(null!==e)return Wi(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=rs(a.implicit,n.two.suffixPatterns),null!==e))return Wi(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const is=/['‘’‛‵′`´]/,ss=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 Wi(a,e,"2-prefix"),a.confidence=.5,!0}return null};const cs=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!!cs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},hs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},gs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ms=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 Wi(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(hs(r)||hs(o))return Wi(n,"Year","2-tagYear-close");if(gs(e[t-2])||gs(e[t+2]))return Wi(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 Wi(n,"Year","2-tagYear-noun")}}}return null};const ps=/^[A-Z]('s|,)?$/,fs=/^[A-Z-]+$/,bs=/([A-Z]\.)+[A-Z]?,?$/,ys=/[A-Z]{2,}('s|,)?$/,vs=/([a-z]\.)+[a-z]\.?$/,ws={I:!0,A:!0};var ks=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||ws.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==bs.test(n)&&!0!==vs.test(n)&&!0!==ps.test(n)&&!0!==ys.test(n))}(a,n)?(a.tags.clear(),Wi(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!ws.hasOwnProperty(a.text)&&ps.test(a.text)?(a.tags.clear(),Wi(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Wi(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&fs.test(a.text)&&a.text.length<=6?(Wi(a,"Acronym","3-titlecase-acronym"),!0):null};const Ps=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},As=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Es=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||Ps(e[t-1],r),l=l||Ps(e[t+1],o),l=l||As(e[t-1],a),l=l||As(e[t+1],i),l)return Wi(s,l,"3-[neighbour]"),Zi(e,t,n),e[t].confidence=.2,!0}return null};const Is=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 a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Is(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Is(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Ns=function(e,t,n){0===e[t].tags.size&&(Wi(e[t],"Noun","3-[fallback]"),Zi(e,t,n),e[t].confidence=.1)};const Gs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ds=(e,t,n)=>0!==t||e[1]?null:n;var xs={"Adj|Gerund":(e,t)=>Gs(e,t),"Adj|Noun":(e,t)=>Gs(e,t),"Adj|Past":(e,t)=>Gs(e,t),"Adj|Present":(e,t)=>Gs(e,t),"Noun|Gerund":(e,t)=>Gs(e,t),"Noun|Verb":(e,t)=>Gs(e,t)||Ds(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Gs(e,t)||Ds(e,t,"PresentTense"),"Person|Noun":(e,t)=>Gs(e,t),"Person|Verb":(e,t)=>0!==t&&Gs(e,t)};const Ts="undefined"!=typeof process&&process.env?process.env:self.env||{},Cs=/^(under|over|mis|re|un|dis|semi)-?/,Os=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Ts.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Bs=(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&&Ts.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const zs={tagSwitch:Li,checkSuffix:os,checkRegex:ls,checkCase:as,checkPrefix:us,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")&&(Wi(o,"Verb","3-[prefix]"),Wi(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Wi(o,"Adjective","3-[prefix]"),Wi(o,"Prefix","3-[prefix]")))},checkYear:ms},Vs={checkAcronym:ks,neighbours:Es,orgWords:js,nounFallback:Ns,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(Cs.test(l)&&!o[l]&&(l=l.replace(Cs,"")),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=Os(e[t+1],n.afterWords);return o=o||Os(e[t-1],n.beforeWords),o=o||Bs(e[t-1],n.beforeTags,r),o=o||Bs(e[t+1],n.afterTags,r),o}(e,t,i[o],a);xs[o]&&(u=xs[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Ts.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Fs=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 Hs={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 Js={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 Ys=/'/;var Xs=function(e,t){let n=e[t].normal.split(Ys)[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 el=/'/;var tl=function(e,t){let n=e[t].normal.split(el)[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 nl=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},rl={in:!0,by:!0,for:!0};var ol=(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 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===rl[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 il=/'/,sl=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)},ll={d:(e,t)=>tl(e,t),t:(e,t)=>nl(e,t),s:(e,t,n)=>ol(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Xs(e,t)},ul=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var cl={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===il.test(a[o].normal)&&([,i]=a[o].normal.split(il));let s=null;ll.hasOwnProperty(i)&&(s=ll[i](a,o,t)),s&&(s=ul(s,e),_s(n,[r,o],s),sl(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=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=Qs},hooks:["contractionTwo"]};const dl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const hl=["i","we","they"];let gl=[].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:hl,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:hl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:hl,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 ml=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(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;ml=ml||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(ml),e.uncache(),e}},model:{two:{matches:gl}},hooks:["postTagger"]};var fl=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 a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?fl(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 yl={api:function(e){e.prototype.swap=bl}};m.plugin(qs),m.plugin(cl),m.plugin(pl),m.plugin(yl);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]);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 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 79792a9f1..41825646e 100644 --- a/changelog.md +++ b/changelog.md @@ -7,9 +7,12 @@ 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] +- **[fix]** - missed caches in .sweep() +- **[new]** - .out('hash') and `.json({hash:true})` + #### 14.3.0 [June 2021] - **[fix]** - unwanted logging in compromise/one - **[fix]** - dependency export path for react-native builds #928 diff --git a/package.json b/package.json index 40feb4e53..11eda700b 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.0", + "version": "14.3.1", "main": "./src/three.js", "unpkg": "./builds/compromise.js", "type": "module", @@ -114,4 +114,4 @@ "_tests/**" ], "license": "MIT" -} +} \ No newline at end of file diff --git a/scratch.js b/scratch.js index cd5f1fb06..bc0935e25 100644 --- a/scratch.js +++ b/scratch.js @@ -38,7 +38,16 @@ 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?` // let txt = `There are no open wounds ` @@ -46,8 +55,10 @@ txt = "Let’s get you into wardrobe for a fitting." // { match: m } // ] // let net = nlp.buildNet(matches) -let doc = nlp('fruit salad. food-safety') -console.log(doc.json({ hash: true })) + + + + // banks wear // %Plural|Verb% %Noun|Verb% diff --git a/src/_version.js b/src/_version.js index b4a3335b3..7c99828e8 100644 --- a/src/_version.js +++ b/src/_version.js @@ -1 +1 @@ -export default '14.3.0' \ No newline at end of file +export default '14.3.1' \ No newline at end of file